diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/GPBMetadata/Google/Cloud/Dataform/V1Beta1/Dataform.php b/owl-bot-staging/Dataform/v1beta1/proto/src/GPBMetadata/Google/Cloud/Dataform/V1Beta1/Dataform.php
new file mode 100644
index 000000000000..6b6a0f331191
Binary files /dev/null and b/owl-bot-staging/Dataform/v1beta1/proto/src/GPBMetadata/Google/Cloud/Dataform/V1Beta1/Dataform.php differ
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CancelWorkflowInvocationRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CancelWorkflowInvocationRequest.php
new file mode 100644
index 000000000000..2e7c0859ce31
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CancelWorkflowInvocationRequest.php
@@ -0,0 +1,67 @@
+google.cloud.dataform.v1beta1.CancelWorkflowInvocationRequest
+ */
+class CancelWorkflowInvocationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The workflow invocation resource's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The workflow invocation resource's name.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The workflow invocation resource's 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 workflow invocation resource's 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/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CommitAuthor.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CommitAuthor.php
new file mode 100644
index 000000000000..90bc52fb50d3
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CommitAuthor.php
@@ -0,0 +1,101 @@
+google.cloud.dataform.v1beta1.CommitAuthor
+ */
+class CommitAuthor extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The commit author's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $name = '';
+ /**
+ * Required. The commit author's email address.
+ *
+ * Generated from protobuf field string email_address = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $email_address = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The commit author's name.
+ * @type string $email_address
+ * Required. The commit author's email address.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The commit author's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The commit author's 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;
+ }
+
+ /**
+ * Required. The commit author's email address.
+ *
+ * Generated from protobuf field string email_address = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getEmailAddress()
+ {
+ return $this->email_address;
+ }
+
+ /**
+ * Required. The commit author's email address.
+ *
+ * Generated from protobuf field string email_address = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setEmailAddress($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->email_address = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CommitWorkspaceChangesRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CommitWorkspaceChangesRequest.php
new file mode 100644
index 000000000000..e23db1332c62
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CommitWorkspaceChangesRequest.php
@@ -0,0 +1,183 @@
+google.cloud.dataform.v1beta1.CommitWorkspaceChangesRequest
+ */
+class CommitWorkspaceChangesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Required. The commit's author.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.CommitAuthor author = 4 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $author = null;
+ /**
+ * Optional. The commit's message.
+ *
+ * Generated from protobuf field string commit_message = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $commit_message = '';
+ /**
+ * Optional. Full file paths to commit including filename, rooted at workspace root. If
+ * left empty, all files will be committed.
+ *
+ * Generated from protobuf field repeated string paths = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $paths;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The workspace's name.
+ * @type \Google\Cloud\Dataform\V1beta1\CommitAuthor $author
+ * Required. The commit's author.
+ * @type string $commit_message
+ * Optional. The commit's message.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $paths
+ * Optional. Full file paths to commit including filename, rooted at workspace root. If
+ * left empty, all files will be committed.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The workspace's 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 workspace's 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 commit's author.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.CommitAuthor author = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Dataform\V1beta1\CommitAuthor|null
+ */
+ public function getAuthor()
+ {
+ return $this->author;
+ }
+
+ public function hasAuthor()
+ {
+ return isset($this->author);
+ }
+
+ public function clearAuthor()
+ {
+ unset($this->author);
+ }
+
+ /**
+ * Required. The commit's author.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.CommitAuthor author = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Dataform\V1beta1\CommitAuthor $var
+ * @return $this
+ */
+ public function setAuthor($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Dataform\V1beta1\CommitAuthor::class);
+ $this->author = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The commit's message.
+ *
+ * Generated from protobuf field string commit_message = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getCommitMessage()
+ {
+ return $this->commit_message;
+ }
+
+ /**
+ * Optional. The commit's message.
+ *
+ * Generated from protobuf field string commit_message = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setCommitMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->commit_message = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Full file paths to commit including filename, rooted at workspace root. If
+ * left empty, all files will be committed.
+ *
+ * Generated from protobuf field repeated string paths = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getPaths()
+ {
+ return $this->paths;
+ }
+
+ /**
+ * Optional. Full file paths to commit including filename, rooted at workspace root. If
+ * left empty, all files will be committed.
+ *
+ * Generated from protobuf field repeated string paths = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setPaths($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->paths = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResult.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResult.php
new file mode 100644
index 000000000000..13e36c93fe5a
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResult.php
@@ -0,0 +1,276 @@
+google.cloud.dataform.v1beta1.CompilationResult
+ */
+class CompilationResult extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The compilation result's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $name = '';
+ /**
+ * Immutable. If set, fields of `code_compilation_overrides` override the default
+ * compilation settings that are specified in dataform.json.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.CompilationResult.CodeCompilationConfig code_compilation_config = 4 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $code_compilation_config = null;
+ /**
+ * Output only. The version of `@dataform/core` that was used for compilation.
+ *
+ * Generated from protobuf field string dataform_core_version = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $dataform_core_version = '';
+ /**
+ * Output only. Errors encountered during project compilation.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.CompilationResult.CompilationError compilation_errors = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $compilation_errors;
+ protected $source;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. The compilation result's name.
+ * @type string $git_commitish
+ * Immutable. Git commit/tag/branch name at which the repository should be compiled.
+ * Must exist in the remote repository.
+ * Examples:
+ * - a commit SHA: `12ade345`
+ * - a tag: `tag1`
+ * - a branch name: `branch1`
+ * @type string $workspace
+ * Immutable. The name of the workspace to compile. Must be in the format
+ * `projects/*/locations/*/repositories/*/workspaces/*`.
+ * @type \Google\Cloud\Dataform\V1beta1\CompilationResult\CodeCompilationConfig $code_compilation_config
+ * Immutable. If set, fields of `code_compilation_overrides` override the default
+ * compilation settings that are specified in dataform.json.
+ * @type string $dataform_core_version
+ * Output only. The version of `@dataform/core` that was used for compilation.
+ * @type array<\Google\Cloud\Dataform\V1beta1\CompilationResult\CompilationError>|\Google\Protobuf\Internal\RepeatedField $compilation_errors
+ * Output only. Errors encountered during project compilation.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The compilation result's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. The compilation result's name.
+ *
+ * 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;
+ }
+
+ /**
+ * Immutable. Git commit/tag/branch name at which the repository should be compiled.
+ * Must exist in the remote repository.
+ * Examples:
+ * - a commit SHA: `12ade345`
+ * - a tag: `tag1`
+ * - a branch name: `branch1`
+ *
+ * Generated from protobuf field string git_commitish = 2 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return string
+ */
+ public function getGitCommitish()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasGitCommitish()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Immutable. Git commit/tag/branch name at which the repository should be compiled.
+ * Must exist in the remote repository.
+ * Examples:
+ * - a commit SHA: `12ade345`
+ * - a tag: `tag1`
+ * - a branch name: `branch1`
+ *
+ * Generated from protobuf field string git_commitish = 2 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param string $var
+ * @return $this
+ */
+ public function setGitCommitish($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Immutable. The name of the workspace to compile. Must be in the format
+ * `projects/*/locations/*/repositories/*/workspaces/*`.
+ *
+ * Generated from protobuf field string workspace = 3 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getWorkspace()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasWorkspace()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * Immutable. The name of the workspace to compile. Must be in the format
+ * `projects/*/locations/*/repositories/*/workspaces/*`.
+ *
+ * Generated from protobuf field string workspace = 3 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setWorkspace($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * Immutable. If set, fields of `code_compilation_overrides` override the default
+ * compilation settings that are specified in dataform.json.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.CompilationResult.CodeCompilationConfig code_compilation_config = 4 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return \Google\Cloud\Dataform\V1beta1\CompilationResult\CodeCompilationConfig|null
+ */
+ public function getCodeCompilationConfig()
+ {
+ return $this->code_compilation_config;
+ }
+
+ public function hasCodeCompilationConfig()
+ {
+ return isset($this->code_compilation_config);
+ }
+
+ public function clearCodeCompilationConfig()
+ {
+ unset($this->code_compilation_config);
+ }
+
+ /**
+ * Immutable. If set, fields of `code_compilation_overrides` override the default
+ * compilation settings that are specified in dataform.json.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.CompilationResult.CodeCompilationConfig code_compilation_config = 4 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param \Google\Cloud\Dataform\V1beta1\CompilationResult\CodeCompilationConfig $var
+ * @return $this
+ */
+ public function setCodeCompilationConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Dataform\V1beta1\CompilationResult\CodeCompilationConfig::class);
+ $this->code_compilation_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The version of `@dataform/core` that was used for compilation.
+ *
+ * Generated from protobuf field string dataform_core_version = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getDataformCoreVersion()
+ {
+ return $this->dataform_core_version;
+ }
+
+ /**
+ * Output only. The version of `@dataform/core` that was used for compilation.
+ *
+ * Generated from protobuf field string dataform_core_version = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setDataformCoreVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->dataform_core_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Errors encountered during project compilation.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.CompilationResult.CompilationError compilation_errors = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getCompilationErrors()
+ {
+ return $this->compilation_errors;
+ }
+
+ /**
+ * Output only. Errors encountered during project compilation.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.CompilationResult.CompilationError compilation_errors = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array<\Google\Cloud\Dataform\V1beta1\CompilationResult\CompilationError>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setCompilationErrors($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dataform\V1beta1\CompilationResult\CompilationError::class);
+ $this->compilation_errors = $arr;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getSource()
+ {
+ return $this->whichOneof("source");
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResult/CodeCompilationConfig.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResult/CodeCompilationConfig.php
new file mode 100644
index 000000000000..74b0e485f2f7
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResult/CodeCompilationConfig.php
@@ -0,0 +1,328 @@
+google.cloud.dataform.v1beta1.CompilationResult.CodeCompilationConfig
+ */
+class CodeCompilationConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. The default database (Google Cloud project ID).
+ *
+ * Generated from protobuf field string default_database = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $default_database = '';
+ /**
+ * Optional. The default schema (BigQuery dataset ID).
+ *
+ * Generated from protobuf field string default_schema = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $default_schema = '';
+ /**
+ * Optional. The default BigQuery location to use. Defaults to "US".
+ * See the BigQuery docs for a full list of locations:
+ * https://cloud.google.com/bigquery/docs/locations.
+ *
+ * Generated from protobuf field string default_location = 8 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $default_location = '';
+ /**
+ * Optional. The default schema (BigQuery dataset ID) for assertions.
+ *
+ * Generated from protobuf field string assertion_schema = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $assertion_schema = '';
+ /**
+ * Optional. User-defined variables that are made available to project code during
+ * compilation.
+ *
+ * Generated from protobuf field map vars = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $vars;
+ /**
+ * Optional. The suffix that should be appended to all database (Google Cloud project
+ * ID) names.
+ *
+ * Generated from protobuf field string database_suffix = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $database_suffix = '';
+ /**
+ * Optional. The suffix that should be appended to all schema (BigQuery dataset ID)
+ * names.
+ *
+ * Generated from protobuf field string schema_suffix = 6 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $schema_suffix = '';
+ /**
+ * Optional. The prefix that should be prepended to all table names.
+ *
+ * Generated from protobuf field string table_prefix = 7 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $table_prefix = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $default_database
+ * Optional. The default database (Google Cloud project ID).
+ * @type string $default_schema
+ * Optional. The default schema (BigQuery dataset ID).
+ * @type string $default_location
+ * Optional. The default BigQuery location to use. Defaults to "US".
+ * See the BigQuery docs for a full list of locations:
+ * https://cloud.google.com/bigquery/docs/locations.
+ * @type string $assertion_schema
+ * Optional. The default schema (BigQuery dataset ID) for assertions.
+ * @type array|\Google\Protobuf\Internal\MapField $vars
+ * Optional. User-defined variables that are made available to project code during
+ * compilation.
+ * @type string $database_suffix
+ * Optional. The suffix that should be appended to all database (Google Cloud project
+ * ID) names.
+ * @type string $schema_suffix
+ * Optional. The suffix that should be appended to all schema (BigQuery dataset ID)
+ * names.
+ * @type string $table_prefix
+ * Optional. The prefix that should be prepended to all table names.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. The default database (Google Cloud project ID).
+ *
+ * Generated from protobuf field string default_database = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getDefaultDatabase()
+ {
+ return $this->default_database;
+ }
+
+ /**
+ * Optional. The default database (Google Cloud project ID).
+ *
+ * Generated from protobuf field string default_database = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setDefaultDatabase($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->default_database = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The default schema (BigQuery dataset ID).
+ *
+ * Generated from protobuf field string default_schema = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getDefaultSchema()
+ {
+ return $this->default_schema;
+ }
+
+ /**
+ * Optional. The default schema (BigQuery dataset ID).
+ *
+ * Generated from protobuf field string default_schema = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setDefaultSchema($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->default_schema = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The default BigQuery location to use. Defaults to "US".
+ * See the BigQuery docs for a full list of locations:
+ * https://cloud.google.com/bigquery/docs/locations.
+ *
+ * Generated from protobuf field string default_location = 8 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getDefaultLocation()
+ {
+ return $this->default_location;
+ }
+
+ /**
+ * Optional. The default BigQuery location to use. Defaults to "US".
+ * See the BigQuery docs for a full list of locations:
+ * https://cloud.google.com/bigquery/docs/locations.
+ *
+ * Generated from protobuf field string default_location = 8 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setDefaultLocation($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->default_location = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The default schema (BigQuery dataset ID) for assertions.
+ *
+ * Generated from protobuf field string assertion_schema = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getAssertionSchema()
+ {
+ return $this->assertion_schema;
+ }
+
+ /**
+ * Optional. The default schema (BigQuery dataset ID) for assertions.
+ *
+ * Generated from protobuf field string assertion_schema = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setAssertionSchema($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->assertion_schema = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. User-defined variables that are made available to project code during
+ * compilation.
+ *
+ * Generated from protobuf field map vars = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getVars()
+ {
+ return $this->vars;
+ }
+
+ /**
+ * Optional. User-defined variables that are made available to project code during
+ * compilation.
+ *
+ * Generated from protobuf field map vars = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setVars($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->vars = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The suffix that should be appended to all database (Google Cloud project
+ * ID) names.
+ *
+ * Generated from protobuf field string database_suffix = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getDatabaseSuffix()
+ {
+ return $this->database_suffix;
+ }
+
+ /**
+ * Optional. The suffix that should be appended to all database (Google Cloud project
+ * ID) names.
+ *
+ * Generated from protobuf field string database_suffix = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setDatabaseSuffix($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->database_suffix = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The suffix that should be appended to all schema (BigQuery dataset ID)
+ * names.
+ *
+ * Generated from protobuf field string schema_suffix = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getSchemaSuffix()
+ {
+ return $this->schema_suffix;
+ }
+
+ /**
+ * Optional. The suffix that should be appended to all schema (BigQuery dataset ID)
+ * names.
+ *
+ * Generated from protobuf field string schema_suffix = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setSchemaSuffix($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->schema_suffix = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The prefix that should be prepended to all table names.
+ *
+ * Generated from protobuf field string table_prefix = 7 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getTablePrefix()
+ {
+ return $this->table_prefix;
+ }
+
+ /**
+ * Optional. The prefix that should be prepended to all table names.
+ *
+ * Generated from protobuf field string table_prefix = 7 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setTablePrefix($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->table_prefix = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(CodeCompilationConfig::class, \Google\Cloud\Dataform\V1beta1\CompilationResult_CodeCompilationConfig::class);
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResult/CompilationError.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResult/CompilationError.php
new file mode 100644
index 000000000000..f80e205e1272
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResult/CompilationError.php
@@ -0,0 +1,186 @@
+google.cloud.dataform.v1beta1.CompilationResult.CompilationError
+ */
+class CompilationError extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The error's top level message.
+ *
+ * Generated from protobuf field string message = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $message = '';
+ /**
+ * Output only. The error's full stack trace.
+ *
+ * Generated from protobuf field string stack = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $stack = '';
+ /**
+ * Output only. The path of the file where this error occurred, if available, relative to
+ * the project root.
+ *
+ * Generated from protobuf field string path = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $path = '';
+ /**
+ * Output only. The identifier of the action where this error occurred, if available.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Target action_target = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $action_target = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $message
+ * Output only. The error's top level message.
+ * @type string $stack
+ * Output only. The error's full stack trace.
+ * @type string $path
+ * Output only. The path of the file where this error occurred, if available, relative to
+ * the project root.
+ * @type \Google\Cloud\Dataform\V1beta1\Target $action_target
+ * Output only. The identifier of the action where this error occurred, if available.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The error's top level message.
+ *
+ * Generated from protobuf field string message = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getMessage()
+ {
+ return $this->message;
+ }
+
+ /**
+ * Output only. The error's top level message.
+ *
+ * Generated from protobuf field string message = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->message = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The error's full stack trace.
+ *
+ * Generated from protobuf field string stack = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getStack()
+ {
+ return $this->stack;
+ }
+
+ /**
+ * Output only. The error's full stack trace.
+ *
+ * Generated from protobuf field string stack = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setStack($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->stack = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The path of the file where this error occurred, if available, relative to
+ * the project root.
+ *
+ * Generated from protobuf field string path = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getPath()
+ {
+ return $this->path;
+ }
+
+ /**
+ * Output only. The path of the file where this error occurred, if available, relative to
+ * the project root.
+ *
+ * Generated from protobuf field string path = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setPath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->path = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The identifier of the action where this error occurred, if available.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Target action_target = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Dataform\V1beta1\Target|null
+ */
+ public function getActionTarget()
+ {
+ return $this->action_target;
+ }
+
+ public function hasActionTarget()
+ {
+ return isset($this->action_target);
+ }
+
+ public function clearActionTarget()
+ {
+ unset($this->action_target);
+ }
+
+ /**
+ * Output only. The identifier of the action where this error occurred, if available.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Target action_target = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Dataform\V1beta1\Target $var
+ * @return $this
+ */
+ public function setActionTarget($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Dataform\V1beta1\Target::class);
+ $this->action_target = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(CompilationError::class, \Google\Cloud\Dataform\V1beta1\CompilationResult_CompilationError::class);
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResultAction.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResultAction.php
new file mode 100644
index 000000000000..0a727609866c
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResultAction.php
@@ -0,0 +1,304 @@
+google.cloud.dataform.v1beta1.CompilationResultAction
+ */
+class CompilationResultAction extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * This action's identifier. Unique within the compilation result.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Target target = 1;
+ */
+ protected $target = null;
+ /**
+ * The action's identifier if the project had been compiled without any
+ * overrides configured. Unique within the compilation result.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Target canonical_target = 2;
+ */
+ protected $canonical_target = null;
+ /**
+ * The full path including filename in which this action is located, relative
+ * to the workspace root.
+ *
+ * Generated from protobuf field string file_path = 3;
+ */
+ protected $file_path = '';
+ protected $compiled_object;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Dataform\V1beta1\Target $target
+ * This action's identifier. Unique within the compilation result.
+ * @type \Google\Cloud\Dataform\V1beta1\Target $canonical_target
+ * The action's identifier if the project had been compiled without any
+ * overrides configured. Unique within the compilation result.
+ * @type string $file_path
+ * The full path including filename in which this action is located, relative
+ * to the workspace root.
+ * @type \Google\Cloud\Dataform\V1beta1\CompilationResultAction\Relation $relation
+ * The database relation created/updated by this action.
+ * @type \Google\Cloud\Dataform\V1beta1\CompilationResultAction\Operations $operations
+ * The database operations executed by this action.
+ * @type \Google\Cloud\Dataform\V1beta1\CompilationResultAction\Assertion $assertion
+ * The assertion executed by this action.
+ * @type \Google\Cloud\Dataform\V1beta1\CompilationResultAction\Declaration $declaration
+ * The declaration declared by this action.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * This action's identifier. Unique within the compilation result.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Target target = 1;
+ * @return \Google\Cloud\Dataform\V1beta1\Target|null
+ */
+ public function getTarget()
+ {
+ return $this->target;
+ }
+
+ public function hasTarget()
+ {
+ return isset($this->target);
+ }
+
+ public function clearTarget()
+ {
+ unset($this->target);
+ }
+
+ /**
+ * This action's identifier. Unique within the compilation result.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Target target = 1;
+ * @param \Google\Cloud\Dataform\V1beta1\Target $var
+ * @return $this
+ */
+ public function setTarget($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Dataform\V1beta1\Target::class);
+ $this->target = $var;
+
+ return $this;
+ }
+
+ /**
+ * The action's identifier if the project had been compiled without any
+ * overrides configured. Unique within the compilation result.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Target canonical_target = 2;
+ * @return \Google\Cloud\Dataform\V1beta1\Target|null
+ */
+ public function getCanonicalTarget()
+ {
+ return $this->canonical_target;
+ }
+
+ public function hasCanonicalTarget()
+ {
+ return isset($this->canonical_target);
+ }
+
+ public function clearCanonicalTarget()
+ {
+ unset($this->canonical_target);
+ }
+
+ /**
+ * The action's identifier if the project had been compiled without any
+ * overrides configured. Unique within the compilation result.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Target canonical_target = 2;
+ * @param \Google\Cloud\Dataform\V1beta1\Target $var
+ * @return $this
+ */
+ public function setCanonicalTarget($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Dataform\V1beta1\Target::class);
+ $this->canonical_target = $var;
+
+ return $this;
+ }
+
+ /**
+ * The full path including filename in which this action is located, relative
+ * to the workspace root.
+ *
+ * Generated from protobuf field string file_path = 3;
+ * @return string
+ */
+ public function getFilePath()
+ {
+ return $this->file_path;
+ }
+
+ /**
+ * The full path including filename in which this action is located, relative
+ * to the workspace root.
+ *
+ * Generated from protobuf field string file_path = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setFilePath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->file_path = $var;
+
+ return $this;
+ }
+
+ /**
+ * The database relation created/updated by this action.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.CompilationResultAction.Relation relation = 4;
+ * @return \Google\Cloud\Dataform\V1beta1\CompilationResultAction\Relation|null
+ */
+ public function getRelation()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasRelation()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * The database relation created/updated by this action.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.CompilationResultAction.Relation relation = 4;
+ * @param \Google\Cloud\Dataform\V1beta1\CompilationResultAction\Relation $var
+ * @return $this
+ */
+ public function setRelation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Dataform\V1beta1\CompilationResultAction\Relation::class);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * The database operations executed by this action.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.CompilationResultAction.Operations operations = 5;
+ * @return \Google\Cloud\Dataform\V1beta1\CompilationResultAction\Operations|null
+ */
+ public function getOperations()
+ {
+ return $this->readOneof(5);
+ }
+
+ public function hasOperations()
+ {
+ return $this->hasOneof(5);
+ }
+
+ /**
+ * The database operations executed by this action.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.CompilationResultAction.Operations operations = 5;
+ * @param \Google\Cloud\Dataform\V1beta1\CompilationResultAction\Operations $var
+ * @return $this
+ */
+ public function setOperations($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Dataform\V1beta1\CompilationResultAction\Operations::class);
+ $this->writeOneof(5, $var);
+
+ return $this;
+ }
+
+ /**
+ * The assertion executed by this action.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.CompilationResultAction.Assertion assertion = 6;
+ * @return \Google\Cloud\Dataform\V1beta1\CompilationResultAction\Assertion|null
+ */
+ public function getAssertion()
+ {
+ return $this->readOneof(6);
+ }
+
+ public function hasAssertion()
+ {
+ return $this->hasOneof(6);
+ }
+
+ /**
+ * The assertion executed by this action.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.CompilationResultAction.Assertion assertion = 6;
+ * @param \Google\Cloud\Dataform\V1beta1\CompilationResultAction\Assertion $var
+ * @return $this
+ */
+ public function setAssertion($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Dataform\V1beta1\CompilationResultAction\Assertion::class);
+ $this->writeOneof(6, $var);
+
+ return $this;
+ }
+
+ /**
+ * The declaration declared by this action.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.CompilationResultAction.Declaration declaration = 7;
+ * @return \Google\Cloud\Dataform\V1beta1\CompilationResultAction\Declaration|null
+ */
+ public function getDeclaration()
+ {
+ return $this->readOneof(7);
+ }
+
+ public function hasDeclaration()
+ {
+ return $this->hasOneof(7);
+ }
+
+ /**
+ * The declaration declared by this action.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.CompilationResultAction.Declaration declaration = 7;
+ * @param \Google\Cloud\Dataform\V1beta1\CompilationResultAction\Declaration $var
+ * @return $this
+ */
+ public function setDeclaration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Dataform\V1beta1\CompilationResultAction\Declaration::class);
+ $this->writeOneof(7, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getCompiledObject()
+ {
+ return $this->whichOneof("compiled_object");
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResultAction/Assertion.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResultAction/Assertion.php
new file mode 100644
index 000000000000..22202f67b388
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResultAction/Assertion.php
@@ -0,0 +1,273 @@
+google.cloud.dataform.v1beta1.CompilationResultAction.Assertion
+ */
+class Assertion extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A list of actions that this action depends on.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.Target dependency_targets = 1;
+ */
+ private $dependency_targets;
+ /**
+ * The parent action of this assertion. Only set if this assertion was
+ * automatically generated.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Target parent_action = 5;
+ */
+ protected $parent_action = null;
+ /**
+ * Whether this action is disabled (i.e. should not be run).
+ *
+ * Generated from protobuf field bool disabled = 2;
+ */
+ protected $disabled = false;
+ /**
+ * Arbitrary, user-defined tags on this action.
+ *
+ * Generated from protobuf field repeated string tags = 3;
+ */
+ private $tags;
+ /**
+ * The SELECT query which must return zero rows in order for this assertion
+ * to succeed.
+ *
+ * Generated from protobuf field string select_query = 4;
+ */
+ protected $select_query = '';
+ /**
+ * Descriptor for the assertion's automatically-generated view and its
+ * columns.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.RelationDescriptor relation_descriptor = 6;
+ */
+ protected $relation_descriptor = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Dataform\V1beta1\Target>|\Google\Protobuf\Internal\RepeatedField $dependency_targets
+ * A list of actions that this action depends on.
+ * @type \Google\Cloud\Dataform\V1beta1\Target $parent_action
+ * The parent action of this assertion. Only set if this assertion was
+ * automatically generated.
+ * @type bool $disabled
+ * Whether this action is disabled (i.e. should not be run).
+ * @type array|\Google\Protobuf\Internal\RepeatedField $tags
+ * Arbitrary, user-defined tags on this action.
+ * @type string $select_query
+ * The SELECT query which must return zero rows in order for this assertion
+ * to succeed.
+ * @type \Google\Cloud\Dataform\V1beta1\RelationDescriptor $relation_descriptor
+ * Descriptor for the assertion's automatically-generated view and its
+ * columns.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A list of actions that this action depends on.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.Target dependency_targets = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getDependencyTargets()
+ {
+ return $this->dependency_targets;
+ }
+
+ /**
+ * A list of actions that this action depends on.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.Target dependency_targets = 1;
+ * @param array<\Google\Cloud\Dataform\V1beta1\Target>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setDependencyTargets($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dataform\V1beta1\Target::class);
+ $this->dependency_targets = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The parent action of this assertion. Only set if this assertion was
+ * automatically generated.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Target parent_action = 5;
+ * @return \Google\Cloud\Dataform\V1beta1\Target|null
+ */
+ public function getParentAction()
+ {
+ return $this->parent_action;
+ }
+
+ public function hasParentAction()
+ {
+ return isset($this->parent_action);
+ }
+
+ public function clearParentAction()
+ {
+ unset($this->parent_action);
+ }
+
+ /**
+ * The parent action of this assertion. Only set if this assertion was
+ * automatically generated.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Target parent_action = 5;
+ * @param \Google\Cloud\Dataform\V1beta1\Target $var
+ * @return $this
+ */
+ public function setParentAction($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Dataform\V1beta1\Target::class);
+ $this->parent_action = $var;
+
+ return $this;
+ }
+
+ /**
+ * Whether this action is disabled (i.e. should not be run).
+ *
+ * Generated from protobuf field bool disabled = 2;
+ * @return bool
+ */
+ public function getDisabled()
+ {
+ return $this->disabled;
+ }
+
+ /**
+ * Whether this action is disabled (i.e. should not be run).
+ *
+ * Generated from protobuf field bool disabled = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setDisabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->disabled = $var;
+
+ return $this;
+ }
+
+ /**
+ * Arbitrary, user-defined tags on this action.
+ *
+ * Generated from protobuf field repeated string tags = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTags()
+ {
+ return $this->tags;
+ }
+
+ /**
+ * Arbitrary, user-defined tags on this action.
+ *
+ * Generated from protobuf field repeated string tags = 3;
+ * @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;
+ }
+
+ /**
+ * The SELECT query which must return zero rows in order for this assertion
+ * to succeed.
+ *
+ * Generated from protobuf field string select_query = 4;
+ * @return string
+ */
+ public function getSelectQuery()
+ {
+ return $this->select_query;
+ }
+
+ /**
+ * The SELECT query which must return zero rows in order for this assertion
+ * to succeed.
+ *
+ * Generated from protobuf field string select_query = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setSelectQuery($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->select_query = $var;
+
+ return $this;
+ }
+
+ /**
+ * Descriptor for the assertion's automatically-generated view and its
+ * columns.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.RelationDescriptor relation_descriptor = 6;
+ * @return \Google\Cloud\Dataform\V1beta1\RelationDescriptor|null
+ */
+ public function getRelationDescriptor()
+ {
+ return $this->relation_descriptor;
+ }
+
+ public function hasRelationDescriptor()
+ {
+ return isset($this->relation_descriptor);
+ }
+
+ public function clearRelationDescriptor()
+ {
+ unset($this->relation_descriptor);
+ }
+
+ /**
+ * Descriptor for the assertion's automatically-generated view and its
+ * columns.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.RelationDescriptor relation_descriptor = 6;
+ * @param \Google\Cloud\Dataform\V1beta1\RelationDescriptor $var
+ * @return $this
+ */
+ public function setRelationDescriptor($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Dataform\V1beta1\RelationDescriptor::class);
+ $this->relation_descriptor = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Assertion::class, \Google\Cloud\Dataform\V1beta1\CompilationResultAction_Assertion::class);
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResultAction/Declaration.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResultAction/Declaration.php
new file mode 100644
index 000000000000..1d20d7b3f3c2
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResultAction/Declaration.php
@@ -0,0 +1,85 @@
+google.cloud.dataform.v1beta1.CompilationResultAction.Declaration
+ */
+class Declaration extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Descriptor for the relation and its columns. Used as documentation only,
+ * i.e. values here will result in no changes to the relation's metadata.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.RelationDescriptor relation_descriptor = 1;
+ */
+ protected $relation_descriptor = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Dataform\V1beta1\RelationDescriptor $relation_descriptor
+ * Descriptor for the relation and its columns. Used as documentation only,
+ * i.e. values here will result in no changes to the relation's metadata.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Descriptor for the relation and its columns. Used as documentation only,
+ * i.e. values here will result in no changes to the relation's metadata.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.RelationDescriptor relation_descriptor = 1;
+ * @return \Google\Cloud\Dataform\V1beta1\RelationDescriptor|null
+ */
+ public function getRelationDescriptor()
+ {
+ return $this->relation_descriptor;
+ }
+
+ public function hasRelationDescriptor()
+ {
+ return isset($this->relation_descriptor);
+ }
+
+ public function clearRelationDescriptor()
+ {
+ unset($this->relation_descriptor);
+ }
+
+ /**
+ * Descriptor for the relation and its columns. Used as documentation only,
+ * i.e. values here will result in no changes to the relation's metadata.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.RelationDescriptor relation_descriptor = 1;
+ * @param \Google\Cloud\Dataform\V1beta1\RelationDescriptor $var
+ * @return $this
+ */
+ public function setRelationDescriptor($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Dataform\V1beta1\RelationDescriptor::class);
+ $this->relation_descriptor = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Declaration::class, \Google\Cloud\Dataform\V1beta1\CompilationResultAction_Declaration::class);
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResultAction/Operations.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResultAction/Operations.php
new file mode 100644
index 000000000000..4c5726990cf5
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResultAction/Operations.php
@@ -0,0 +1,258 @@
+google.cloud.dataform.v1beta1.CompilationResultAction.Operations
+ */
+class Operations extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A list of actions that this action depends on.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.Target dependency_targets = 1;
+ */
+ private $dependency_targets;
+ /**
+ * Whether this action is disabled (i.e. should not be run).
+ *
+ * Generated from protobuf field bool disabled = 2;
+ */
+ protected $disabled = false;
+ /**
+ * Arbitrary, user-defined tags on this action.
+ *
+ * Generated from protobuf field repeated string tags = 3;
+ */
+ private $tags;
+ /**
+ * Descriptor for any output relation and its columns. Only set if
+ * `has_output` is true.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.RelationDescriptor relation_descriptor = 6;
+ */
+ protected $relation_descriptor = null;
+ /**
+ * A list of arbitrary SQL statements that will be executed without
+ * alteration.
+ *
+ * Generated from protobuf field repeated string queries = 4;
+ */
+ private $queries;
+ /**
+ * Whether these operations produce an output relation.
+ *
+ * Generated from protobuf field bool has_output = 5;
+ */
+ protected $has_output = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Dataform\V1beta1\Target>|\Google\Protobuf\Internal\RepeatedField $dependency_targets
+ * A list of actions that this action depends on.
+ * @type bool $disabled
+ * Whether this action is disabled (i.e. should not be run).
+ * @type array|\Google\Protobuf\Internal\RepeatedField $tags
+ * Arbitrary, user-defined tags on this action.
+ * @type \Google\Cloud\Dataform\V1beta1\RelationDescriptor $relation_descriptor
+ * Descriptor for any output relation and its columns. Only set if
+ * `has_output` is true.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $queries
+ * A list of arbitrary SQL statements that will be executed without
+ * alteration.
+ * @type bool $has_output
+ * Whether these operations produce an output relation.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A list of actions that this action depends on.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.Target dependency_targets = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getDependencyTargets()
+ {
+ return $this->dependency_targets;
+ }
+
+ /**
+ * A list of actions that this action depends on.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.Target dependency_targets = 1;
+ * @param array<\Google\Cloud\Dataform\V1beta1\Target>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setDependencyTargets($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dataform\V1beta1\Target::class);
+ $this->dependency_targets = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Whether this action is disabled (i.e. should not be run).
+ *
+ * Generated from protobuf field bool disabled = 2;
+ * @return bool
+ */
+ public function getDisabled()
+ {
+ return $this->disabled;
+ }
+
+ /**
+ * Whether this action is disabled (i.e. should not be run).
+ *
+ * Generated from protobuf field bool disabled = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setDisabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->disabled = $var;
+
+ return $this;
+ }
+
+ /**
+ * Arbitrary, user-defined tags on this action.
+ *
+ * Generated from protobuf field repeated string tags = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTags()
+ {
+ return $this->tags;
+ }
+
+ /**
+ * Arbitrary, user-defined tags on this action.
+ *
+ * Generated from protobuf field repeated string tags = 3;
+ * @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;
+ }
+
+ /**
+ * Descriptor for any output relation and its columns. Only set if
+ * `has_output` is true.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.RelationDescriptor relation_descriptor = 6;
+ * @return \Google\Cloud\Dataform\V1beta1\RelationDescriptor|null
+ */
+ public function getRelationDescriptor()
+ {
+ return $this->relation_descriptor;
+ }
+
+ public function hasRelationDescriptor()
+ {
+ return isset($this->relation_descriptor);
+ }
+
+ public function clearRelationDescriptor()
+ {
+ unset($this->relation_descriptor);
+ }
+
+ /**
+ * Descriptor for any output relation and its columns. Only set if
+ * `has_output` is true.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.RelationDescriptor relation_descriptor = 6;
+ * @param \Google\Cloud\Dataform\V1beta1\RelationDescriptor $var
+ * @return $this
+ */
+ public function setRelationDescriptor($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Dataform\V1beta1\RelationDescriptor::class);
+ $this->relation_descriptor = $var;
+
+ return $this;
+ }
+
+ /**
+ * A list of arbitrary SQL statements that will be executed without
+ * alteration.
+ *
+ * Generated from protobuf field repeated string queries = 4;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getQueries()
+ {
+ return $this->queries;
+ }
+
+ /**
+ * A list of arbitrary SQL statements that will be executed without
+ * alteration.
+ *
+ * Generated from protobuf field repeated string queries = 4;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setQueries($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->queries = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Whether these operations produce an output relation.
+ *
+ * Generated from protobuf field bool has_output = 5;
+ * @return bool
+ */
+ public function getHasOutput()
+ {
+ return $this->has_output;
+ }
+
+ /**
+ * Whether these operations produce an output relation.
+ *
+ * Generated from protobuf field bool has_output = 5;
+ * @param bool $var
+ * @return $this
+ */
+ public function setHasOutput($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->has_output = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Operations::class, \Google\Cloud\Dataform\V1beta1\CompilationResultAction_Operations::class);
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResultAction/Relation.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResultAction/Relation.php
new file mode 100644
index 000000000000..89200a6f3a15
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResultAction/Relation.php
@@ -0,0 +1,552 @@
+google.cloud.dataform.v1beta1.CompilationResultAction.Relation
+ */
+class Relation extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A list of actions that this action depends on.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.Target dependency_targets = 1;
+ */
+ private $dependency_targets;
+ /**
+ * Whether this action is disabled (i.e. should not be run).
+ *
+ * Generated from protobuf field bool disabled = 2;
+ */
+ protected $disabled = false;
+ /**
+ * Arbitrary, user-defined tags on this action.
+ *
+ * Generated from protobuf field repeated string tags = 3;
+ */
+ private $tags;
+ /**
+ * Descriptor for the relation and its columns.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.RelationDescriptor relation_descriptor = 4;
+ */
+ protected $relation_descriptor = null;
+ /**
+ * The type of this relation.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.CompilationResultAction.Relation.RelationType relation_type = 5;
+ */
+ protected $relation_type = 0;
+ /**
+ * The SELECT query which returns rows which this relation should contain.
+ *
+ * Generated from protobuf field string select_query = 6;
+ */
+ protected $select_query = '';
+ /**
+ * SQL statements to be executed before creating the relation.
+ *
+ * Generated from protobuf field repeated string pre_operations = 7;
+ */
+ private $pre_operations;
+ /**
+ * SQL statements to be executed after creating the relation.
+ *
+ * Generated from protobuf field repeated string post_operations = 8;
+ */
+ private $post_operations;
+ /**
+ * Configures `INCREMENTAL_TABLE` settings for this relation. Only set if
+ * `relation_type` is `INCREMENTAL_TABLE`.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.CompilationResultAction.Relation.IncrementalTableConfig incremental_table_config = 9;
+ */
+ protected $incremental_table_config = null;
+ /**
+ * The SQL expression used to partition the relation.
+ *
+ * Generated from protobuf field string partition_expression = 10;
+ */
+ protected $partition_expression = '';
+ /**
+ * A list of columns or SQL expressions used to cluster the table.
+ *
+ * Generated from protobuf field repeated string cluster_expressions = 11;
+ */
+ private $cluster_expressions;
+ /**
+ * Sets the partition expiration in days.
+ *
+ * Generated from protobuf field int32 partition_expiration_days = 12;
+ */
+ protected $partition_expiration_days = 0;
+ /**
+ * Specifies whether queries on this table must include a predicate filter
+ * that filters on the partitioning column.
+ *
+ * Generated from protobuf field bool require_partition_filter = 13;
+ */
+ protected $require_partition_filter = false;
+ /**
+ * Additional options that will be provided as key/value pairs into the
+ * options clause of a create table/view statement. See
+ * https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language
+ * for more information on which options are supported.
+ *
+ * Generated from protobuf field map additional_options = 14;
+ */
+ private $additional_options;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Dataform\V1beta1\Target>|\Google\Protobuf\Internal\RepeatedField $dependency_targets
+ * A list of actions that this action depends on.
+ * @type bool $disabled
+ * Whether this action is disabled (i.e. should not be run).
+ * @type array|\Google\Protobuf\Internal\RepeatedField $tags
+ * Arbitrary, user-defined tags on this action.
+ * @type \Google\Cloud\Dataform\V1beta1\RelationDescriptor $relation_descriptor
+ * Descriptor for the relation and its columns.
+ * @type int $relation_type
+ * The type of this relation.
+ * @type string $select_query
+ * The SELECT query which returns rows which this relation should contain.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $pre_operations
+ * SQL statements to be executed before creating the relation.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $post_operations
+ * SQL statements to be executed after creating the relation.
+ * @type \Google\Cloud\Dataform\V1beta1\CompilationResultAction\Relation\IncrementalTableConfig $incremental_table_config
+ * Configures `INCREMENTAL_TABLE` settings for this relation. Only set if
+ * `relation_type` is `INCREMENTAL_TABLE`.
+ * @type string $partition_expression
+ * The SQL expression used to partition the relation.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $cluster_expressions
+ * A list of columns or SQL expressions used to cluster the table.
+ * @type int $partition_expiration_days
+ * Sets the partition expiration in days.
+ * @type bool $require_partition_filter
+ * Specifies whether queries on this table must include a predicate filter
+ * that filters on the partitioning column.
+ * @type array|\Google\Protobuf\Internal\MapField $additional_options
+ * Additional options that will be provided as key/value pairs into the
+ * options clause of a create table/view statement. See
+ * https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language
+ * for more information on which options are supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A list of actions that this action depends on.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.Target dependency_targets = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getDependencyTargets()
+ {
+ return $this->dependency_targets;
+ }
+
+ /**
+ * A list of actions that this action depends on.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.Target dependency_targets = 1;
+ * @param array<\Google\Cloud\Dataform\V1beta1\Target>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setDependencyTargets($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dataform\V1beta1\Target::class);
+ $this->dependency_targets = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Whether this action is disabled (i.e. should not be run).
+ *
+ * Generated from protobuf field bool disabled = 2;
+ * @return bool
+ */
+ public function getDisabled()
+ {
+ return $this->disabled;
+ }
+
+ /**
+ * Whether this action is disabled (i.e. should not be run).
+ *
+ * Generated from protobuf field bool disabled = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setDisabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->disabled = $var;
+
+ return $this;
+ }
+
+ /**
+ * Arbitrary, user-defined tags on this action.
+ *
+ * Generated from protobuf field repeated string tags = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTags()
+ {
+ return $this->tags;
+ }
+
+ /**
+ * Arbitrary, user-defined tags on this action.
+ *
+ * Generated from protobuf field repeated string tags = 3;
+ * @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;
+ }
+
+ /**
+ * Descriptor for the relation and its columns.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.RelationDescriptor relation_descriptor = 4;
+ * @return \Google\Cloud\Dataform\V1beta1\RelationDescriptor|null
+ */
+ public function getRelationDescriptor()
+ {
+ return $this->relation_descriptor;
+ }
+
+ public function hasRelationDescriptor()
+ {
+ return isset($this->relation_descriptor);
+ }
+
+ public function clearRelationDescriptor()
+ {
+ unset($this->relation_descriptor);
+ }
+
+ /**
+ * Descriptor for the relation and its columns.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.RelationDescriptor relation_descriptor = 4;
+ * @param \Google\Cloud\Dataform\V1beta1\RelationDescriptor $var
+ * @return $this
+ */
+ public function setRelationDescriptor($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Dataform\V1beta1\RelationDescriptor::class);
+ $this->relation_descriptor = $var;
+
+ return $this;
+ }
+
+ /**
+ * The type of this relation.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.CompilationResultAction.Relation.RelationType relation_type = 5;
+ * @return int
+ */
+ public function getRelationType()
+ {
+ return $this->relation_type;
+ }
+
+ /**
+ * The type of this relation.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.CompilationResultAction.Relation.RelationType relation_type = 5;
+ * @param int $var
+ * @return $this
+ */
+ public function setRelationType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Dataform\V1beta1\CompilationResultAction\Relation\RelationType::class);
+ $this->relation_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * The SELECT query which returns rows which this relation should contain.
+ *
+ * Generated from protobuf field string select_query = 6;
+ * @return string
+ */
+ public function getSelectQuery()
+ {
+ return $this->select_query;
+ }
+
+ /**
+ * The SELECT query which returns rows which this relation should contain.
+ *
+ * Generated from protobuf field string select_query = 6;
+ * @param string $var
+ * @return $this
+ */
+ public function setSelectQuery($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->select_query = $var;
+
+ return $this;
+ }
+
+ /**
+ * SQL statements to be executed before creating the relation.
+ *
+ * Generated from protobuf field repeated string pre_operations = 7;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getPreOperations()
+ {
+ return $this->pre_operations;
+ }
+
+ /**
+ * SQL statements to be executed before creating the relation.
+ *
+ * Generated from protobuf field repeated string pre_operations = 7;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setPreOperations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->pre_operations = $arr;
+
+ return $this;
+ }
+
+ /**
+ * SQL statements to be executed after creating the relation.
+ *
+ * Generated from protobuf field repeated string post_operations = 8;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getPostOperations()
+ {
+ return $this->post_operations;
+ }
+
+ /**
+ * SQL statements to be executed after creating the relation.
+ *
+ * Generated from protobuf field repeated string post_operations = 8;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setPostOperations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->post_operations = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Configures `INCREMENTAL_TABLE` settings for this relation. Only set if
+ * `relation_type` is `INCREMENTAL_TABLE`.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.CompilationResultAction.Relation.IncrementalTableConfig incremental_table_config = 9;
+ * @return \Google\Cloud\Dataform\V1beta1\CompilationResultAction\Relation\IncrementalTableConfig|null
+ */
+ public function getIncrementalTableConfig()
+ {
+ return $this->incremental_table_config;
+ }
+
+ public function hasIncrementalTableConfig()
+ {
+ return isset($this->incremental_table_config);
+ }
+
+ public function clearIncrementalTableConfig()
+ {
+ unset($this->incremental_table_config);
+ }
+
+ /**
+ * Configures `INCREMENTAL_TABLE` settings for this relation. Only set if
+ * `relation_type` is `INCREMENTAL_TABLE`.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.CompilationResultAction.Relation.IncrementalTableConfig incremental_table_config = 9;
+ * @param \Google\Cloud\Dataform\V1beta1\CompilationResultAction\Relation\IncrementalTableConfig $var
+ * @return $this
+ */
+ public function setIncrementalTableConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Dataform\V1beta1\CompilationResultAction\Relation\IncrementalTableConfig::class);
+ $this->incremental_table_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The SQL expression used to partition the relation.
+ *
+ * Generated from protobuf field string partition_expression = 10;
+ * @return string
+ */
+ public function getPartitionExpression()
+ {
+ return $this->partition_expression;
+ }
+
+ /**
+ * The SQL expression used to partition the relation.
+ *
+ * Generated from protobuf field string partition_expression = 10;
+ * @param string $var
+ * @return $this
+ */
+ public function setPartitionExpression($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->partition_expression = $var;
+
+ return $this;
+ }
+
+ /**
+ * A list of columns or SQL expressions used to cluster the table.
+ *
+ * Generated from protobuf field repeated string cluster_expressions = 11;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getClusterExpressions()
+ {
+ return $this->cluster_expressions;
+ }
+
+ /**
+ * A list of columns or SQL expressions used to cluster the table.
+ *
+ * Generated from protobuf field repeated string cluster_expressions = 11;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setClusterExpressions($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->cluster_expressions = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Sets the partition expiration in days.
+ *
+ * Generated from protobuf field int32 partition_expiration_days = 12;
+ * @return int
+ */
+ public function getPartitionExpirationDays()
+ {
+ return $this->partition_expiration_days;
+ }
+
+ /**
+ * Sets the partition expiration in days.
+ *
+ * Generated from protobuf field int32 partition_expiration_days = 12;
+ * @param int $var
+ * @return $this
+ */
+ public function setPartitionExpirationDays($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->partition_expiration_days = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specifies whether queries on this table must include a predicate filter
+ * that filters on the partitioning column.
+ *
+ * Generated from protobuf field bool require_partition_filter = 13;
+ * @return bool
+ */
+ public function getRequirePartitionFilter()
+ {
+ return $this->require_partition_filter;
+ }
+
+ /**
+ * Specifies whether queries on this table must include a predicate filter
+ * that filters on the partitioning column.
+ *
+ * Generated from protobuf field bool require_partition_filter = 13;
+ * @param bool $var
+ * @return $this
+ */
+ public function setRequirePartitionFilter($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->require_partition_filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * Additional options that will be provided as key/value pairs into the
+ * options clause of a create table/view statement. See
+ * https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language
+ * for more information on which options are supported.
+ *
+ * Generated from protobuf field map additional_options = 14;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getAdditionalOptions()
+ {
+ return $this->additional_options;
+ }
+
+ /**
+ * Additional options that will be provided as key/value pairs into the
+ * options clause of a create table/view statement. See
+ * https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language
+ * for more information on which options are supported.
+ *
+ * Generated from protobuf field map additional_options = 14;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setAdditionalOptions($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->additional_options = $arr;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Relation::class, \Google\Cloud\Dataform\V1beta1\CompilationResultAction_Relation::class);
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResultAction/Relation/IncrementalTableConfig.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResultAction/Relation/IncrementalTableConfig.php
new file mode 100644
index 000000000000..56ef96d5f042
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResultAction/Relation/IncrementalTableConfig.php
@@ -0,0 +1,272 @@
+google.cloud.dataform.v1beta1.CompilationResultAction.Relation.IncrementalTableConfig
+ */
+class IncrementalTableConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The SELECT query which returns rows which should be inserted into the
+ * relation if it already exists and is not being refreshed.
+ *
+ * Generated from protobuf field string incremental_select_query = 1;
+ */
+ protected $incremental_select_query = '';
+ /**
+ * Whether this table should be protected from being refreshed.
+ *
+ * Generated from protobuf field bool refresh_disabled = 2;
+ */
+ protected $refresh_disabled = false;
+ /**
+ * A set of columns or SQL expressions used to define row uniqueness.
+ * If any duplicates are discovered (as defined by `unique_key_parts`),
+ * only the newly selected rows (as defined by `incremental_select_query`)
+ * will be included in the relation.
+ *
+ * Generated from protobuf field repeated string unique_key_parts = 3;
+ */
+ private $unique_key_parts;
+ /**
+ * A SQL expression conditional used to limit the set of existing rows
+ * considered for a merge operation (see `unique_key_parts` for more
+ * information).
+ *
+ * Generated from protobuf field string update_partition_filter = 4;
+ */
+ protected $update_partition_filter = '';
+ /**
+ * SQL statements to be executed before inserting new rows into the
+ * relation.
+ *
+ * Generated from protobuf field repeated string incremental_pre_operations = 5;
+ */
+ private $incremental_pre_operations;
+ /**
+ * SQL statements to be executed after inserting new rows into the
+ * relation.
+ *
+ * Generated from protobuf field repeated string incremental_post_operations = 6;
+ */
+ private $incremental_post_operations;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $incremental_select_query
+ * The SELECT query which returns rows which should be inserted into the
+ * relation if it already exists and is not being refreshed.
+ * @type bool $refresh_disabled
+ * Whether this table should be protected from being refreshed.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $unique_key_parts
+ * A set of columns or SQL expressions used to define row uniqueness.
+ * If any duplicates are discovered (as defined by `unique_key_parts`),
+ * only the newly selected rows (as defined by `incremental_select_query`)
+ * will be included in the relation.
+ * @type string $update_partition_filter
+ * A SQL expression conditional used to limit the set of existing rows
+ * considered for a merge operation (see `unique_key_parts` for more
+ * information).
+ * @type array|\Google\Protobuf\Internal\RepeatedField $incremental_pre_operations
+ * SQL statements to be executed before inserting new rows into the
+ * relation.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $incremental_post_operations
+ * SQL statements to be executed after inserting new rows into the
+ * relation.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The SELECT query which returns rows which should be inserted into the
+ * relation if it already exists and is not being refreshed.
+ *
+ * Generated from protobuf field string incremental_select_query = 1;
+ * @return string
+ */
+ public function getIncrementalSelectQuery()
+ {
+ return $this->incremental_select_query;
+ }
+
+ /**
+ * The SELECT query which returns rows which should be inserted into the
+ * relation if it already exists and is not being refreshed.
+ *
+ * Generated from protobuf field string incremental_select_query = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setIncrementalSelectQuery($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->incremental_select_query = $var;
+
+ return $this;
+ }
+
+ /**
+ * Whether this table should be protected from being refreshed.
+ *
+ * Generated from protobuf field bool refresh_disabled = 2;
+ * @return bool
+ */
+ public function getRefreshDisabled()
+ {
+ return $this->refresh_disabled;
+ }
+
+ /**
+ * Whether this table should be protected from being refreshed.
+ *
+ * Generated from protobuf field bool refresh_disabled = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setRefreshDisabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->refresh_disabled = $var;
+
+ return $this;
+ }
+
+ /**
+ * A set of columns or SQL expressions used to define row uniqueness.
+ * If any duplicates are discovered (as defined by `unique_key_parts`),
+ * only the newly selected rows (as defined by `incremental_select_query`)
+ * will be included in the relation.
+ *
+ * Generated from protobuf field repeated string unique_key_parts = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUniqueKeyParts()
+ {
+ return $this->unique_key_parts;
+ }
+
+ /**
+ * A set of columns or SQL expressions used to define row uniqueness.
+ * If any duplicates are discovered (as defined by `unique_key_parts`),
+ * only the newly selected rows (as defined by `incremental_select_query`)
+ * will be included in the relation.
+ *
+ * Generated from protobuf field repeated string unique_key_parts = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setUniqueKeyParts($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->unique_key_parts = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A SQL expression conditional used to limit the set of existing rows
+ * considered for a merge operation (see `unique_key_parts` for more
+ * information).
+ *
+ * Generated from protobuf field string update_partition_filter = 4;
+ * @return string
+ */
+ public function getUpdatePartitionFilter()
+ {
+ return $this->update_partition_filter;
+ }
+
+ /**
+ * A SQL expression conditional used to limit the set of existing rows
+ * considered for a merge operation (see `unique_key_parts` for more
+ * information).
+ *
+ * Generated from protobuf field string update_partition_filter = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setUpdatePartitionFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->update_partition_filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * SQL statements to be executed before inserting new rows into the
+ * relation.
+ *
+ * Generated from protobuf field repeated string incremental_pre_operations = 5;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getIncrementalPreOperations()
+ {
+ return $this->incremental_pre_operations;
+ }
+
+ /**
+ * SQL statements to be executed before inserting new rows into the
+ * relation.
+ *
+ * Generated from protobuf field repeated string incremental_pre_operations = 5;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setIncrementalPreOperations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->incremental_pre_operations = $arr;
+
+ return $this;
+ }
+
+ /**
+ * SQL statements to be executed after inserting new rows into the
+ * relation.
+ *
+ * Generated from protobuf field repeated string incremental_post_operations = 6;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getIncrementalPostOperations()
+ {
+ return $this->incremental_post_operations;
+ }
+
+ /**
+ * SQL statements to be executed after inserting new rows into the
+ * relation.
+ *
+ * Generated from protobuf field repeated string incremental_post_operations = 6;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setIncrementalPostOperations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->incremental_post_operations = $arr;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(IncrementalTableConfig::class, \Google\Cloud\Dataform\V1beta1\CompilationResultAction_Relation_IncrementalTableConfig::class);
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResultAction/Relation/RelationType.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResultAction/Relation/RelationType.php
new file mode 100644
index 000000000000..5b0816a5700d
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResultAction/Relation/RelationType.php
@@ -0,0 +1,78 @@
+google.cloud.dataform.v1beta1.CompilationResultAction.Relation.RelationType
+ */
+class RelationType
+{
+ /**
+ * Default value. This value is unused.
+ *
+ * Generated from protobuf enum RELATION_TYPE_UNSPECIFIED = 0;
+ */
+ const RELATION_TYPE_UNSPECIFIED = 0;
+ /**
+ * The relation is a table.
+ *
+ * Generated from protobuf enum TABLE = 1;
+ */
+ const TABLE = 1;
+ /**
+ * The relation is a view.
+ *
+ * Generated from protobuf enum VIEW = 2;
+ */
+ const VIEW = 2;
+ /**
+ * The relation is an incrementalized table.
+ *
+ * Generated from protobuf enum INCREMENTAL_TABLE = 3;
+ */
+ const INCREMENTAL_TABLE = 3;
+ /**
+ * The relation is a materialized view.
+ *
+ * Generated from protobuf enum MATERIALIZED_VIEW = 4;
+ */
+ const MATERIALIZED_VIEW = 4;
+
+ private static $valueToName = [
+ self::RELATION_TYPE_UNSPECIFIED => 'RELATION_TYPE_UNSPECIFIED',
+ self::TABLE => 'TABLE',
+ self::VIEW => 'VIEW',
+ self::INCREMENTAL_TABLE => 'INCREMENTAL_TABLE',
+ self::MATERIALIZED_VIEW => 'MATERIALIZED_VIEW',
+ ];
+
+ 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(RelationType::class, \Google\Cloud\Dataform\V1beta1\CompilationResultAction_Relation_RelationType::class);
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResultAction_Assertion.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResultAction_Assertion.php
new file mode 100644
index 000000000000..1ab8a7a34fda
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CompilationResultAction_Assertion.php
@@ -0,0 +1,16 @@
+google.cloud.dataform.v1beta1.CreateCompilationResultRequest
+ */
+class CreateCompilationResultRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The repository in which to create the compilation result. Must be in the
+ * format `projects/*/locations/*/repositories/*`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The compilation result to create.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.CompilationResult compilation_result = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $compilation_result = null;
+
+ /**
+ * @param string $parent Required. The repository in which to create the compilation result. Must be in the
+ * format `projects/*/locations/*/repositories/*`. Please see
+ * {@see DataformClient::repositoryName()} for help formatting this field.
+ * @param \Google\Cloud\Dataform\V1beta1\CompilationResult $compilationResult Required. The compilation result to create.
+ *
+ * @return \Google\Cloud\Dataform\V1beta1\CreateCompilationResultRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\Dataform\V1beta1\CompilationResult $compilationResult): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setCompilationResult($compilationResult);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The repository in which to create the compilation result. Must be in the
+ * format `projects/*/locations/*/repositories/*`.
+ * @type \Google\Cloud\Dataform\V1beta1\CompilationResult $compilation_result
+ * Required. The compilation result to create.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The repository in which to create the compilation result. Must be in the
+ * format `projects/*/locations/*/repositories/*`.
+ *
+ * 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 repository in which to create the compilation result. Must be in the
+ * format `projects/*/locations/*/repositories/*`.
+ *
+ * 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 compilation result to create.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.CompilationResult compilation_result = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Dataform\V1beta1\CompilationResult|null
+ */
+ public function getCompilationResult()
+ {
+ return $this->compilation_result;
+ }
+
+ public function hasCompilationResult()
+ {
+ return isset($this->compilation_result);
+ }
+
+ public function clearCompilationResult()
+ {
+ unset($this->compilation_result);
+ }
+
+ /**
+ * Required. The compilation result to create.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.CompilationResult compilation_result = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Dataform\V1beta1\CompilationResult $var
+ * @return $this
+ */
+ public function setCompilationResult($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Dataform\V1beta1\CompilationResult::class);
+ $this->compilation_result = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CreateRepositoryRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CreateRepositoryRequest.php
new file mode 100644
index 000000000000..1d7571125c09
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CreateRepositoryRequest.php
@@ -0,0 +1,173 @@
+google.cloud.dataform.v1beta1.CreateRepositoryRequest
+ */
+class CreateRepositoryRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The location in which to create the repository. Must be in the format
+ * `projects/*/locations/*`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The repository to create.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Repository repository = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $repository = null;
+ /**
+ * Required. The ID to use for the repository, which will become the final component of
+ * the repository's resource name.
+ *
+ * Generated from protobuf field string repository_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $repository_id = '';
+
+ /**
+ * @param string $parent Required. The location in which to create the repository. Must be in the format
+ * `projects/*/locations/*`. Please see
+ * {@see DataformClient::locationName()} for help formatting this field.
+ * @param \Google\Cloud\Dataform\V1beta1\Repository $repository Required. The repository to create.
+ * @param string $repositoryId Required. The ID to use for the repository, which will become the final component of
+ * the repository's resource name.
+ *
+ * @return \Google\Cloud\Dataform\V1beta1\CreateRepositoryRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\Dataform\V1beta1\Repository $repository, string $repositoryId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setRepository($repository)
+ ->setRepositoryId($repositoryId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The location in which to create the repository. Must be in the format
+ * `projects/*/locations/*`.
+ * @type \Google\Cloud\Dataform\V1beta1\Repository $repository
+ * Required. The repository to create.
+ * @type string $repository_id
+ * Required. The ID to use for the repository, which will become the final component of
+ * the repository's resource name.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The location in which to create the repository. Must be in the format
+ * `projects/*/locations/*`.
+ *
+ * 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 location in which to create the repository. Must be in the format
+ * `projects/*/locations/*`.
+ *
+ * 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 repository to create.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Repository repository = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Dataform\V1beta1\Repository|null
+ */
+ public function getRepository()
+ {
+ return $this->repository;
+ }
+
+ public function hasRepository()
+ {
+ return isset($this->repository);
+ }
+
+ public function clearRepository()
+ {
+ unset($this->repository);
+ }
+
+ /**
+ * Required. The repository to create.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Repository repository = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Dataform\V1beta1\Repository $var
+ * @return $this
+ */
+ public function setRepository($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Dataform\V1beta1\Repository::class);
+ $this->repository = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The ID to use for the repository, which will become the final component of
+ * the repository's resource name.
+ *
+ * Generated from protobuf field string repository_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getRepositoryId()
+ {
+ return $this->repository_id;
+ }
+
+ /**
+ * Required. The ID to use for the repository, which will become the final component of
+ * the repository's resource name.
+ *
+ * Generated from protobuf field string repository_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setRepositoryId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->repository_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CreateWorkflowInvocationRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CreateWorkflowInvocationRequest.php
new file mode 100644
index 000000000000..463556d411b0
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CreateWorkflowInvocationRequest.php
@@ -0,0 +1,132 @@
+google.cloud.dataform.v1beta1.CreateWorkflowInvocationRequest
+ */
+class CreateWorkflowInvocationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The repository in which to create the workflow invocation. Must be in the
+ * format `projects/*/locations/*/repositories/*`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The workflow invocation resource to create.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.WorkflowInvocation workflow_invocation = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $workflow_invocation = null;
+
+ /**
+ * @param string $parent Required. The repository in which to create the workflow invocation. Must be in the
+ * format `projects/*/locations/*/repositories/*`. Please see
+ * {@see DataformClient::repositoryName()} for help formatting this field.
+ * @param \Google\Cloud\Dataform\V1beta1\WorkflowInvocation $workflowInvocation Required. The workflow invocation resource to create.
+ *
+ * @return \Google\Cloud\Dataform\V1beta1\CreateWorkflowInvocationRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\Dataform\V1beta1\WorkflowInvocation $workflowInvocation): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setWorkflowInvocation($workflowInvocation);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The repository in which to create the workflow invocation. Must be in the
+ * format `projects/*/locations/*/repositories/*`.
+ * @type \Google\Cloud\Dataform\V1beta1\WorkflowInvocation $workflow_invocation
+ * Required. The workflow invocation resource to create.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The repository in which to create the workflow invocation. Must be in the
+ * format `projects/*/locations/*/repositories/*`.
+ *
+ * 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 repository in which to create the workflow invocation. Must be in the
+ * format `projects/*/locations/*/repositories/*`.
+ *
+ * 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 workflow invocation resource to create.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.WorkflowInvocation workflow_invocation = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Dataform\V1beta1\WorkflowInvocation|null
+ */
+ public function getWorkflowInvocation()
+ {
+ return $this->workflow_invocation;
+ }
+
+ public function hasWorkflowInvocation()
+ {
+ return isset($this->workflow_invocation);
+ }
+
+ public function clearWorkflowInvocation()
+ {
+ unset($this->workflow_invocation);
+ }
+
+ /**
+ * Required. The workflow invocation resource to create.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.WorkflowInvocation workflow_invocation = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Dataform\V1beta1\WorkflowInvocation $var
+ * @return $this
+ */
+ public function setWorkflowInvocation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Dataform\V1beta1\WorkflowInvocation::class);
+ $this->workflow_invocation = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CreateWorkspaceRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CreateWorkspaceRequest.php
new file mode 100644
index 000000000000..9ff26ecda52b
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/CreateWorkspaceRequest.php
@@ -0,0 +1,173 @@
+google.cloud.dataform.v1beta1.CreateWorkspaceRequest
+ */
+class CreateWorkspaceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The repository in which to create the workspace. Must be in the format
+ * `projects/*/locations/*/repositories/*`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The workspace to create.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Workspace workspace = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $workspace = null;
+ /**
+ * Required. The ID to use for the workspace, which will become the final component of
+ * the workspace's resource name.
+ *
+ * Generated from protobuf field string workspace_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $workspace_id = '';
+
+ /**
+ * @param string $parent Required. The repository in which to create the workspace. Must be in the format
+ * `projects/*/locations/*/repositories/*`. Please see
+ * {@see DataformClient::repositoryName()} for help formatting this field.
+ * @param \Google\Cloud\Dataform\V1beta1\Workspace $workspace Required. The workspace to create.
+ * @param string $workspaceId Required. The ID to use for the workspace, which will become the final component of
+ * the workspace's resource name.
+ *
+ * @return \Google\Cloud\Dataform\V1beta1\CreateWorkspaceRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\Dataform\V1beta1\Workspace $workspace, string $workspaceId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setWorkspace($workspace)
+ ->setWorkspaceId($workspaceId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The repository in which to create the workspace. Must be in the format
+ * `projects/*/locations/*/repositories/*`.
+ * @type \Google\Cloud\Dataform\V1beta1\Workspace $workspace
+ * Required. The workspace to create.
+ * @type string $workspace_id
+ * Required. The ID to use for the workspace, which will become the final component of
+ * the workspace's resource name.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The repository in which to create the workspace. Must be in the format
+ * `projects/*/locations/*/repositories/*`.
+ *
+ * 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 repository in which to create the workspace. Must be in the format
+ * `projects/*/locations/*/repositories/*`.
+ *
+ * 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 workspace to create.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Workspace workspace = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Dataform\V1beta1\Workspace|null
+ */
+ public function getWorkspace()
+ {
+ return $this->workspace;
+ }
+
+ public function hasWorkspace()
+ {
+ return isset($this->workspace);
+ }
+
+ public function clearWorkspace()
+ {
+ unset($this->workspace);
+ }
+
+ /**
+ * Required. The workspace to create.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Workspace workspace = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Dataform\V1beta1\Workspace $var
+ * @return $this
+ */
+ public function setWorkspace($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Dataform\V1beta1\Workspace::class);
+ $this->workspace = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The ID to use for the workspace, which will become the final component of
+ * the workspace's resource name.
+ *
+ * Generated from protobuf field string workspace_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getWorkspaceId()
+ {
+ return $this->workspace_id;
+ }
+
+ /**
+ * Required. The ID to use for the workspace, which will become the final component of
+ * the workspace's resource name.
+ *
+ * Generated from protobuf field string workspace_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setWorkspaceId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->workspace_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/DataformGrpcClient.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/DataformGrpcClient.php
new file mode 100644
index 000000000000..80dffcce80e1
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/DataformGrpcClient.php
@@ -0,0 +1,577 @@
+_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/ListRepositories',
+ $argument,
+ ['\Google\Cloud\Dataform\V1beta1\ListRepositoriesResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Fetches a single Repository.
+ * @param \Google\Cloud\Dataform\V1beta1\GetRepositoryRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetRepository(\Google\Cloud\Dataform\V1beta1\GetRepositoryRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/GetRepository',
+ $argument,
+ ['\Google\Cloud\Dataform\V1beta1\Repository', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Creates a new Repository in a given project and location.
+ * @param \Google\Cloud\Dataform\V1beta1\CreateRepositoryRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CreateRepository(\Google\Cloud\Dataform\V1beta1\CreateRepositoryRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/CreateRepository',
+ $argument,
+ ['\Google\Cloud\Dataform\V1beta1\Repository', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Updates a single Repository.
+ * @param \Google\Cloud\Dataform\V1beta1\UpdateRepositoryRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function UpdateRepository(\Google\Cloud\Dataform\V1beta1\UpdateRepositoryRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/UpdateRepository',
+ $argument,
+ ['\Google\Cloud\Dataform\V1beta1\Repository', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Deletes a single Repository.
+ * @param \Google\Cloud\Dataform\V1beta1\DeleteRepositoryRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function DeleteRepository(\Google\Cloud\Dataform\V1beta1\DeleteRepositoryRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/DeleteRepository',
+ $argument,
+ ['\Google\Protobuf\GPBEmpty', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Fetches a Repository's remote branches.
+ * @param \Google\Cloud\Dataform\V1beta1\FetchRemoteBranchesRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function FetchRemoteBranches(\Google\Cloud\Dataform\V1beta1\FetchRemoteBranchesRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/FetchRemoteBranches',
+ $argument,
+ ['\Google\Cloud\Dataform\V1beta1\FetchRemoteBranchesResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Lists Workspaces in a given Repository.
+ * @param \Google\Cloud\Dataform\V1beta1\ListWorkspacesRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ListWorkspaces(\Google\Cloud\Dataform\V1beta1\ListWorkspacesRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/ListWorkspaces',
+ $argument,
+ ['\Google\Cloud\Dataform\V1beta1\ListWorkspacesResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Fetches a single Workspace.
+ * @param \Google\Cloud\Dataform\V1beta1\GetWorkspaceRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetWorkspace(\Google\Cloud\Dataform\V1beta1\GetWorkspaceRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/GetWorkspace',
+ $argument,
+ ['\Google\Cloud\Dataform\V1beta1\Workspace', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Creates a new Workspace in a given Repository.
+ * @param \Google\Cloud\Dataform\V1beta1\CreateWorkspaceRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CreateWorkspace(\Google\Cloud\Dataform\V1beta1\CreateWorkspaceRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/CreateWorkspace',
+ $argument,
+ ['\Google\Cloud\Dataform\V1beta1\Workspace', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Deletes a single Workspace.
+ * @param \Google\Cloud\Dataform\V1beta1\DeleteWorkspaceRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function DeleteWorkspace(\Google\Cloud\Dataform\V1beta1\DeleteWorkspaceRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/DeleteWorkspace',
+ $argument,
+ ['\Google\Protobuf\GPBEmpty', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Installs dependency NPM packages (inside a Workspace).
+ * @param \Google\Cloud\Dataform\V1beta1\InstallNpmPackagesRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function InstallNpmPackages(\Google\Cloud\Dataform\V1beta1\InstallNpmPackagesRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/InstallNpmPackages',
+ $argument,
+ ['\Google\Cloud\Dataform\V1beta1\InstallNpmPackagesResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Pulls Git commits from the Repository's remote into a Workspace.
+ * @param \Google\Cloud\Dataform\V1beta1\PullGitCommitsRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function PullGitCommits(\Google\Cloud\Dataform\V1beta1\PullGitCommitsRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/PullGitCommits',
+ $argument,
+ ['\Google\Protobuf\GPBEmpty', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Pushes Git commits from a Workspace to the Repository's remote.
+ * @param \Google\Cloud\Dataform\V1beta1\PushGitCommitsRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function PushGitCommits(\Google\Cloud\Dataform\V1beta1\PushGitCommitsRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/PushGitCommits',
+ $argument,
+ ['\Google\Protobuf\GPBEmpty', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Fetches Git statuses for the files in a Workspace.
+ * @param \Google\Cloud\Dataform\V1beta1\FetchFileGitStatusesRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function FetchFileGitStatuses(\Google\Cloud\Dataform\V1beta1\FetchFileGitStatusesRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/FetchFileGitStatuses',
+ $argument,
+ ['\Google\Cloud\Dataform\V1beta1\FetchFileGitStatusesResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Fetches Git ahead/behind against a remote branch.
+ * @param \Google\Cloud\Dataform\V1beta1\FetchGitAheadBehindRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function FetchGitAheadBehind(\Google\Cloud\Dataform\V1beta1\FetchGitAheadBehindRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/FetchGitAheadBehind',
+ $argument,
+ ['\Google\Cloud\Dataform\V1beta1\FetchGitAheadBehindResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Applies a Git commit for uncommitted files in a Workspace.
+ * @param \Google\Cloud\Dataform\V1beta1\CommitWorkspaceChangesRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CommitWorkspaceChanges(\Google\Cloud\Dataform\V1beta1\CommitWorkspaceChangesRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/CommitWorkspaceChanges',
+ $argument,
+ ['\Google\Protobuf\GPBEmpty', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Performs a Git reset for uncommitted files in a Workspace.
+ * @param \Google\Cloud\Dataform\V1beta1\ResetWorkspaceChangesRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ResetWorkspaceChanges(\Google\Cloud\Dataform\V1beta1\ResetWorkspaceChangesRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/ResetWorkspaceChanges',
+ $argument,
+ ['\Google\Protobuf\GPBEmpty', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Fetches Git diff for an uncommitted file in a Workspace.
+ * @param \Google\Cloud\Dataform\V1beta1\FetchFileDiffRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function FetchFileDiff(\Google\Cloud\Dataform\V1beta1\FetchFileDiffRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/FetchFileDiff',
+ $argument,
+ ['\Google\Cloud\Dataform\V1beta1\FetchFileDiffResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Returns the contents of a given Workspace directory.
+ * @param \Google\Cloud\Dataform\V1beta1\QueryDirectoryContentsRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function QueryDirectoryContents(\Google\Cloud\Dataform\V1beta1\QueryDirectoryContentsRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/QueryDirectoryContents',
+ $argument,
+ ['\Google\Cloud\Dataform\V1beta1\QueryDirectoryContentsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Creates a directory inside a Workspace.
+ * @param \Google\Cloud\Dataform\V1beta1\MakeDirectoryRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function MakeDirectory(\Google\Cloud\Dataform\V1beta1\MakeDirectoryRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/MakeDirectory',
+ $argument,
+ ['\Google\Cloud\Dataform\V1beta1\MakeDirectoryResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Deletes a directory (inside a Workspace) and all of its contents.
+ * @param \Google\Cloud\Dataform\V1beta1\RemoveDirectoryRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function RemoveDirectory(\Google\Cloud\Dataform\V1beta1\RemoveDirectoryRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/RemoveDirectory',
+ $argument,
+ ['\Google\Protobuf\GPBEmpty', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Moves a directory (inside a Workspace), and all of its contents, to a new
+ * location.
+ * @param \Google\Cloud\Dataform\V1beta1\MoveDirectoryRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function MoveDirectory(\Google\Cloud\Dataform\V1beta1\MoveDirectoryRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/MoveDirectory',
+ $argument,
+ ['\Google\Cloud\Dataform\V1beta1\MoveDirectoryResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Returns the contents of a file (inside a Workspace).
+ * @param \Google\Cloud\Dataform\V1beta1\ReadFileRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ReadFile(\Google\Cloud\Dataform\V1beta1\ReadFileRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/ReadFile',
+ $argument,
+ ['\Google\Cloud\Dataform\V1beta1\ReadFileResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Deletes a file (inside a Workspace).
+ * @param \Google\Cloud\Dataform\V1beta1\RemoveFileRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function RemoveFile(\Google\Cloud\Dataform\V1beta1\RemoveFileRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/RemoveFile',
+ $argument,
+ ['\Google\Protobuf\GPBEmpty', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Moves a file (inside a Workspace) to a new location.
+ * @param \Google\Cloud\Dataform\V1beta1\MoveFileRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function MoveFile(\Google\Cloud\Dataform\V1beta1\MoveFileRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/MoveFile',
+ $argument,
+ ['\Google\Cloud\Dataform\V1beta1\MoveFileResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Writes to a file (inside a Workspace).
+ * @param \Google\Cloud\Dataform\V1beta1\WriteFileRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function WriteFile(\Google\Cloud\Dataform\V1beta1\WriteFileRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/WriteFile',
+ $argument,
+ ['\Google\Cloud\Dataform\V1beta1\WriteFileResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Lists CompilationResults in a given Repository.
+ * @param \Google\Cloud\Dataform\V1beta1\ListCompilationResultsRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ListCompilationResults(\Google\Cloud\Dataform\V1beta1\ListCompilationResultsRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/ListCompilationResults',
+ $argument,
+ ['\Google\Cloud\Dataform\V1beta1\ListCompilationResultsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Fetches a single CompilationResult.
+ * @param \Google\Cloud\Dataform\V1beta1\GetCompilationResultRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetCompilationResult(\Google\Cloud\Dataform\V1beta1\GetCompilationResultRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/GetCompilationResult',
+ $argument,
+ ['\Google\Cloud\Dataform\V1beta1\CompilationResult', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Creates a new CompilationResult in a given project and location.
+ * @param \Google\Cloud\Dataform\V1beta1\CreateCompilationResultRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CreateCompilationResult(\Google\Cloud\Dataform\V1beta1\CreateCompilationResultRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/CreateCompilationResult',
+ $argument,
+ ['\Google\Cloud\Dataform\V1beta1\CompilationResult', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Returns CompilationResultActions in a given CompilationResult.
+ * @param \Google\Cloud\Dataform\V1beta1\QueryCompilationResultActionsRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function QueryCompilationResultActions(\Google\Cloud\Dataform\V1beta1\QueryCompilationResultActionsRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/QueryCompilationResultActions',
+ $argument,
+ ['\Google\Cloud\Dataform\V1beta1\QueryCompilationResultActionsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Lists WorkflowInvocations in a given Repository.
+ * @param \Google\Cloud\Dataform\V1beta1\ListWorkflowInvocationsRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ListWorkflowInvocations(\Google\Cloud\Dataform\V1beta1\ListWorkflowInvocationsRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/ListWorkflowInvocations',
+ $argument,
+ ['\Google\Cloud\Dataform\V1beta1\ListWorkflowInvocationsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Fetches a single WorkflowInvocation.
+ * @param \Google\Cloud\Dataform\V1beta1\GetWorkflowInvocationRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetWorkflowInvocation(\Google\Cloud\Dataform\V1beta1\GetWorkflowInvocationRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/GetWorkflowInvocation',
+ $argument,
+ ['\Google\Cloud\Dataform\V1beta1\WorkflowInvocation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Creates a new WorkflowInvocation in a given Repository.
+ * @param \Google\Cloud\Dataform\V1beta1\CreateWorkflowInvocationRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CreateWorkflowInvocation(\Google\Cloud\Dataform\V1beta1\CreateWorkflowInvocationRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/CreateWorkflowInvocation',
+ $argument,
+ ['\Google\Cloud\Dataform\V1beta1\WorkflowInvocation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Deletes a single WorkflowInvocation.
+ * @param \Google\Cloud\Dataform\V1beta1\DeleteWorkflowInvocationRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function DeleteWorkflowInvocation(\Google\Cloud\Dataform\V1beta1\DeleteWorkflowInvocationRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/DeleteWorkflowInvocation',
+ $argument,
+ ['\Google\Protobuf\GPBEmpty', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Requests cancellation of a running WorkflowInvocation.
+ * @param \Google\Cloud\Dataform\V1beta1\CancelWorkflowInvocationRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CancelWorkflowInvocation(\Google\Cloud\Dataform\V1beta1\CancelWorkflowInvocationRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/CancelWorkflowInvocation',
+ $argument,
+ ['\Google\Protobuf\GPBEmpty', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Returns WorkflowInvocationActions in a given WorkflowInvocation.
+ * @param \Google\Cloud\Dataform\V1beta1\QueryWorkflowInvocationActionsRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function QueryWorkflowInvocationActions(\Google\Cloud\Dataform\V1beta1\QueryWorkflowInvocationActionsRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.dataform.v1beta1.Dataform/QueryWorkflowInvocationActions',
+ $argument,
+ ['\Google\Cloud\Dataform\V1beta1\QueryWorkflowInvocationActionsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+}
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/DeleteRepositoryRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/DeleteRepositoryRequest.php
new file mode 100644
index 000000000000..4ab952474da0
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/DeleteRepositoryRequest.php
@@ -0,0 +1,123 @@
+google.cloud.dataform.v1beta1.DeleteRepositoryRequest
+ */
+class DeleteRepositoryRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The repository's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * If set to true, any child resources of this repository will also be
+ * deleted. (Otherwise, the request will only succeed if the repository has no
+ * child resources.)
+ *
+ * Generated from protobuf field bool force = 2;
+ */
+ protected $force = false;
+
+ /**
+ * @param string $name Required. The repository's name. Please see
+ * {@see DataformClient::repositoryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Dataform\V1beta1\DeleteRepositoryRequest
+ *
+ * @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 repository's name.
+ * @type bool $force
+ * If set to true, any child resources of this repository will also be
+ * deleted. (Otherwise, the request will only succeed if the repository has no
+ * child resources.)
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The repository's 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 repository's 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;
+ }
+
+ /**
+ * If set to true, any child resources of this repository will also be
+ * deleted. (Otherwise, the request will only succeed if the repository has no
+ * child resources.)
+ *
+ * Generated from protobuf field bool force = 2;
+ * @return bool
+ */
+ public function getForce()
+ {
+ return $this->force;
+ }
+
+ /**
+ * If set to true, any child resources of this repository will also be
+ * deleted. (Otherwise, the request will only succeed if the repository has no
+ * child resources.)
+ *
+ * Generated from protobuf field bool force = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setForce($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->force = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/DeleteWorkflowInvocationRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/DeleteWorkflowInvocationRequest.php
new file mode 100644
index 000000000000..bfd061a26936
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/DeleteWorkflowInvocationRequest.php
@@ -0,0 +1,81 @@
+google.cloud.dataform.v1beta1.DeleteWorkflowInvocationRequest
+ */
+class DeleteWorkflowInvocationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The workflow invocation resource's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The workflow invocation resource's name. Please see
+ * {@see DataformClient::workflowInvocationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Dataform\V1beta1\DeleteWorkflowInvocationRequest
+ *
+ * @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 workflow invocation resource's name.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The workflow invocation resource's 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 workflow invocation resource's 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/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/DeleteWorkspaceRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/DeleteWorkspaceRequest.php
new file mode 100644
index 000000000000..bf2989f15dd4
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/DeleteWorkspaceRequest.php
@@ -0,0 +1,81 @@
+google.cloud.dataform.v1beta1.DeleteWorkspaceRequest
+ */
+class DeleteWorkspaceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The workspace resource's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The workspace resource's name. Please see
+ * {@see DataformClient::workspaceName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Dataform\V1beta1\DeleteWorkspaceRequest
+ *
+ * @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 workspace resource's name.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The workspace resource's 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 workspace resource's 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/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchFileDiffRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchFileDiffRequest.php
new file mode 100644
index 000000000000..29807b0fe534
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchFileDiffRequest.php
@@ -0,0 +1,101 @@
+google.cloud.dataform.v1beta1.FetchFileDiffRequest
+ */
+class FetchFileDiffRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $workspace = '';
+ /**
+ * Required. The file's full path including filename, relative to the workspace root.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $path = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $workspace
+ * Required. The workspace's name.
+ * @type string $path
+ * Required. The file's full path including filename, relative to the workspace root.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getWorkspace()
+ {
+ return $this->workspace;
+ }
+
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setWorkspace($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->workspace = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The file's full path including filename, relative to the workspace root.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getPath()
+ {
+ return $this->path;
+ }
+
+ /**
+ * Required. The file's full path including filename, relative to the workspace root.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setPath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->path = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchFileDiffResponse.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchFileDiffResponse.php
new file mode 100644
index 000000000000..a6f86b5d5a6a
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchFileDiffResponse.php
@@ -0,0 +1,67 @@
+google.cloud.dataform.v1beta1.FetchFileDiffResponse
+ */
+class FetchFileDiffResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The raw formatted Git diff for the file.
+ *
+ * Generated from protobuf field string formatted_diff = 1;
+ */
+ protected $formatted_diff = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $formatted_diff
+ * The raw formatted Git diff for the file.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The raw formatted Git diff for the file.
+ *
+ * Generated from protobuf field string formatted_diff = 1;
+ * @return string
+ */
+ public function getFormattedDiff()
+ {
+ return $this->formatted_diff;
+ }
+
+ /**
+ * The raw formatted Git diff for the file.
+ *
+ * Generated from protobuf field string formatted_diff = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setFormattedDiff($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->formatted_diff = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchFileGitStatusesRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchFileGitStatusesRequest.php
new file mode 100644
index 000000000000..842203ba1a95
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchFileGitStatusesRequest.php
@@ -0,0 +1,67 @@
+google.cloud.dataform.v1beta1.FetchFileGitStatusesRequest
+ */
+class FetchFileGitStatusesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The workspace's name.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The workspace's 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 workspace's 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/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchFileGitStatusesResponse.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchFileGitStatusesResponse.php
new file mode 100644
index 000000000000..bd9423c0a369
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchFileGitStatusesResponse.php
@@ -0,0 +1,71 @@
+google.cloud.dataform.v1beta1.FetchFileGitStatusesResponse
+ */
+class FetchFileGitStatusesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A list of all files which have uncommitted Git changes. There will only be
+ * a single entry for any given file.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.FetchFileGitStatusesResponse.UncommittedFileChange uncommitted_file_changes = 1;
+ */
+ private $uncommitted_file_changes;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Dataform\V1beta1\FetchFileGitStatusesResponse\UncommittedFileChange>|\Google\Protobuf\Internal\RepeatedField $uncommitted_file_changes
+ * A list of all files which have uncommitted Git changes. There will only be
+ * a single entry for any given file.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A list of all files which have uncommitted Git changes. There will only be
+ * a single entry for any given file.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.FetchFileGitStatusesResponse.UncommittedFileChange uncommitted_file_changes = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUncommittedFileChanges()
+ {
+ return $this->uncommitted_file_changes;
+ }
+
+ /**
+ * A list of all files which have uncommitted Git changes. There will only be
+ * a single entry for any given file.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.FetchFileGitStatusesResponse.UncommittedFileChange uncommitted_file_changes = 1;
+ * @param array<\Google\Cloud\Dataform\V1beta1\FetchFileGitStatusesResponse\UncommittedFileChange>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setUncommittedFileChanges($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dataform\V1beta1\FetchFileGitStatusesResponse\UncommittedFileChange::class);
+ $this->uncommitted_file_changes = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchFileGitStatusesResponse/UncommittedFileChange.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchFileGitStatusesResponse/UncommittedFileChange.php
new file mode 100644
index 000000000000..18b9d5675fd0
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchFileGitStatusesResponse/UncommittedFileChange.php
@@ -0,0 +1,104 @@
+google.cloud.dataform.v1beta1.FetchFileGitStatusesResponse.UncommittedFileChange
+ */
+class UncommittedFileChange extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The file's full path including filename, relative to the workspace root.
+ *
+ * Generated from protobuf field string path = 1;
+ */
+ protected $path = '';
+ /**
+ * Indicates the status of the file.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.FetchFileGitStatusesResponse.UncommittedFileChange.State state = 2;
+ */
+ protected $state = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $path
+ * The file's full path including filename, relative to the workspace root.
+ * @type int $state
+ * Indicates the status of the file.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The file's full path including filename, relative to the workspace root.
+ *
+ * Generated from protobuf field string path = 1;
+ * @return string
+ */
+ public function getPath()
+ {
+ return $this->path;
+ }
+
+ /**
+ * The file's full path including filename, relative to the workspace root.
+ *
+ * Generated from protobuf field string path = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setPath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->path = $var;
+
+ return $this;
+ }
+
+ /**
+ * Indicates the status of the file.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.FetchFileGitStatusesResponse.UncommittedFileChange.State state = 2;
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Indicates the status of the file.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.FetchFileGitStatusesResponse.UncommittedFileChange.State state = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Dataform\V1beta1\FetchFileGitStatusesResponse\UncommittedFileChange\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(UncommittedFileChange::class, \Google\Cloud\Dataform\V1beta1\FetchFileGitStatusesResponse_UncommittedFileChange::class);
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchFileGitStatusesResponse/UncommittedFileChange/State.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchFileGitStatusesResponse/UncommittedFileChange/State.php
new file mode 100644
index 000000000000..cb9467723386
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchFileGitStatusesResponse/UncommittedFileChange/State.php
@@ -0,0 +1,78 @@
+google.cloud.dataform.v1beta1.FetchFileGitStatusesResponse.UncommittedFileChange.State
+ */
+class State
+{
+ /**
+ * Default value. This value is unused.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The file has been newly added.
+ *
+ * Generated from protobuf enum ADDED = 1;
+ */
+ const ADDED = 1;
+ /**
+ * The file has been deleted.
+ *
+ * Generated from protobuf enum DELETED = 2;
+ */
+ const DELETED = 2;
+ /**
+ * The file has been modified.
+ *
+ * Generated from protobuf enum MODIFIED = 3;
+ */
+ const MODIFIED = 3;
+ /**
+ * The file contains merge conflicts.
+ *
+ * Generated from protobuf enum HAS_CONFLICTS = 4;
+ */
+ const HAS_CONFLICTS = 4;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::ADDED => 'ADDED',
+ self::DELETED => 'DELETED',
+ self::MODIFIED => 'MODIFIED',
+ self::HAS_CONFLICTS => 'HAS_CONFLICTS',
+ ];
+
+ 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\Dataform\V1beta1\FetchFileGitStatusesResponse_UncommittedFileChange_State::class);
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchFileGitStatusesResponse_UncommittedFileChange.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchFileGitStatusesResponse_UncommittedFileChange.php
new file mode 100644
index 000000000000..31a39d106c59
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchFileGitStatusesResponse_UncommittedFileChange.php
@@ -0,0 +1,16 @@
+google.cloud.dataform.v1beta1.FetchGitAheadBehindRequest
+ */
+class FetchGitAheadBehindRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. The name of the branch in the Git remote against which this workspace
+ * should be compared. If left unset, the repository's default branch name
+ * will be used.
+ *
+ * Generated from protobuf field string remote_branch = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $remote_branch = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The workspace's name.
+ * @type string $remote_branch
+ * Optional. The name of the branch in the Git remote against which this workspace
+ * should be compared. If left unset, the repository's default branch name
+ * will be used.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The workspace's 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 workspace's 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;
+ }
+
+ /**
+ * Optional. The name of the branch in the Git remote against which this workspace
+ * should be compared. If left unset, the repository's default branch name
+ * will be used.
+ *
+ * Generated from protobuf field string remote_branch = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRemoteBranch()
+ {
+ return $this->remote_branch;
+ }
+
+ /**
+ * Optional. The name of the branch in the Git remote against which this workspace
+ * should be compared. If left unset, the repository's default branch name
+ * will be used.
+ *
+ * Generated from protobuf field string remote_branch = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRemoteBranch($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->remote_branch = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchGitAheadBehindResponse.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchGitAheadBehindResponse.php
new file mode 100644
index 000000000000..27b1b288d80d
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchGitAheadBehindResponse.php
@@ -0,0 +1,101 @@
+google.cloud.dataform.v1beta1.FetchGitAheadBehindResponse
+ */
+class FetchGitAheadBehindResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The number of commits in the remote branch that are not in the workspace.
+ *
+ * Generated from protobuf field int32 commits_ahead = 1;
+ */
+ protected $commits_ahead = 0;
+ /**
+ * The number of commits in the workspace that are not in the remote branch.
+ *
+ * Generated from protobuf field int32 commits_behind = 2;
+ */
+ protected $commits_behind = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $commits_ahead
+ * The number of commits in the remote branch that are not in the workspace.
+ * @type int $commits_behind
+ * The number of commits in the workspace that are not in the remote branch.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The number of commits in the remote branch that are not in the workspace.
+ *
+ * Generated from protobuf field int32 commits_ahead = 1;
+ * @return int
+ */
+ public function getCommitsAhead()
+ {
+ return $this->commits_ahead;
+ }
+
+ /**
+ * The number of commits in the remote branch that are not in the workspace.
+ *
+ * Generated from protobuf field int32 commits_ahead = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setCommitsAhead($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->commits_ahead = $var;
+
+ return $this;
+ }
+
+ /**
+ * The number of commits in the workspace that are not in the remote branch.
+ *
+ * Generated from protobuf field int32 commits_behind = 2;
+ * @return int
+ */
+ public function getCommitsBehind()
+ {
+ return $this->commits_behind;
+ }
+
+ /**
+ * The number of commits in the workspace that are not in the remote branch.
+ *
+ * Generated from protobuf field int32 commits_behind = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setCommitsBehind($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->commits_behind = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchRemoteBranchesRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchRemoteBranchesRequest.php
new file mode 100644
index 000000000000..68515930cd47
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchRemoteBranchesRequest.php
@@ -0,0 +1,67 @@
+google.cloud.dataform.v1beta1.FetchRemoteBranchesRequest
+ */
+class FetchRemoteBranchesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The repository's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The repository's name.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The repository's 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 repository's 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/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchRemoteBranchesResponse.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchRemoteBranchesResponse.php
new file mode 100644
index 000000000000..bf0efee7b06e
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/FetchRemoteBranchesResponse.php
@@ -0,0 +1,67 @@
+google.cloud.dataform.v1beta1.FetchRemoteBranchesResponse
+ */
+class FetchRemoteBranchesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The remote repository's branch names.
+ *
+ * Generated from protobuf field repeated string branches = 1;
+ */
+ private $branches;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $branches
+ * The remote repository's branch names.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The remote repository's branch names.
+ *
+ * Generated from protobuf field repeated string branches = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getBranches()
+ {
+ return $this->branches;
+ }
+
+ /**
+ * The remote repository's branch names.
+ *
+ * Generated from protobuf field repeated string branches = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setBranches($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->branches = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/GetCompilationResultRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/GetCompilationResultRequest.php
new file mode 100644
index 000000000000..ff571e3e3e87
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/GetCompilationResultRequest.php
@@ -0,0 +1,81 @@
+google.cloud.dataform.v1beta1.GetCompilationResultRequest
+ */
+class GetCompilationResultRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The compilation result's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The compilation result's name. Please see
+ * {@see DataformClient::compilationResultName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Dataform\V1beta1\GetCompilationResultRequest
+ *
+ * @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 compilation result's name.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The compilation result's 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 compilation result's 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/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/GetRepositoryRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/GetRepositoryRequest.php
new file mode 100644
index 000000000000..faab65436cf9
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/GetRepositoryRequest.php
@@ -0,0 +1,81 @@
+google.cloud.dataform.v1beta1.GetRepositoryRequest
+ */
+class GetRepositoryRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The repository's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The repository's name. Please see
+ * {@see DataformClient::repositoryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Dataform\V1beta1\GetRepositoryRequest
+ *
+ * @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 repository's name.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The repository's 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 repository's 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/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/GetWorkflowInvocationRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/GetWorkflowInvocationRequest.php
new file mode 100644
index 000000000000..f071607835a7
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/GetWorkflowInvocationRequest.php
@@ -0,0 +1,81 @@
+google.cloud.dataform.v1beta1.GetWorkflowInvocationRequest
+ */
+class GetWorkflowInvocationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The workflow invocation resource's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The workflow invocation resource's name. Please see
+ * {@see DataformClient::workflowInvocationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Dataform\V1beta1\GetWorkflowInvocationRequest
+ *
+ * @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 workflow invocation resource's name.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The workflow invocation resource's 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 workflow invocation resource's 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/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/GetWorkspaceRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/GetWorkspaceRequest.php
new file mode 100644
index 000000000000..e4142c4e3257
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/GetWorkspaceRequest.php
@@ -0,0 +1,81 @@
+google.cloud.dataform.v1beta1.GetWorkspaceRequest
+ */
+class GetWorkspaceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The workspace's name. Please see
+ * {@see DataformClient::workspaceName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Dataform\V1beta1\GetWorkspaceRequest
+ *
+ * @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 workspace's name.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The workspace's 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 workspace's 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/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/InstallNpmPackagesRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/InstallNpmPackagesRequest.php
new file mode 100644
index 000000000000..a4f1c0cb7dd3
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/InstallNpmPackagesRequest.php
@@ -0,0 +1,67 @@
+google.cloud.dataform.v1beta1.InstallNpmPackagesRequest
+ */
+class InstallNpmPackagesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $workspace = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $workspace
+ * Required. The workspace's name.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getWorkspace()
+ {
+ return $this->workspace;
+ }
+
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setWorkspace($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->workspace = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/InstallNpmPackagesResponse.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/InstallNpmPackagesResponse.php
new file mode 100644
index 000000000000..3f490121e19c
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/InstallNpmPackagesResponse.php
@@ -0,0 +1,33 @@
+google.cloud.dataform.v1beta1.InstallNpmPackagesResponse
+ */
+class InstallNpmPackagesResponse extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ListCompilationResultsRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ListCompilationResultsRequest.php
new file mode 100644
index 000000000000..e8b2c9c177d3
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ListCompilationResultsRequest.php
@@ -0,0 +1,174 @@
+google.cloud.dataform.v1beta1.ListCompilationResultsRequest
+ */
+class ListCompilationResultsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The repository in which to list compilation results. Must be in the
+ * format `projects/*/locations/*/repositories/*`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. Maximum number of compilation results to return. The server may return
+ * fewer items than requested. If unspecified, the server will pick an
+ * appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. Page token received from a previous `ListCompilationResults` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListCompilationResults`
+ * 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 repository in which to list compilation results. Must be in the
+ * format `projects/*/locations/*/repositories/*`. Please see
+ * {@see DataformClient::repositoryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Dataform\V1beta1\ListCompilationResultsRequest
+ *
+ * @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 repository in which to list compilation results. Must be in the
+ * format `projects/*/locations/*/repositories/*`.
+ * @type int $page_size
+ * Optional. Maximum number of compilation results to return. The server may return
+ * fewer items than requested. If unspecified, the server will pick an
+ * appropriate default.
+ * @type string $page_token
+ * Optional. Page token received from a previous `ListCompilationResults` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListCompilationResults`
+ * must match the call that provided the page token.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The repository in which to list compilation results. Must be in the
+ * format `projects/*/locations/*/repositories/*`.
+ *
+ * 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 repository in which to list compilation results. Must be in the
+ * format `projects/*/locations/*/repositories/*`.
+ *
+ * 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. Maximum number of compilation results to return. The server may return
+ * fewer items than requested. If unspecified, the 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. Maximum number of compilation results to return. The server may return
+ * fewer items than requested. If unspecified, the 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. Page token received from a previous `ListCompilationResults` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListCompilationResults`
+ * 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. Page token received from a previous `ListCompilationResults` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListCompilationResults`
+ * 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/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ListCompilationResultsResponse.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ListCompilationResultsResponse.php
new file mode 100644
index 000000000000..047d9705ca8e
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ListCompilationResultsResponse.php
@@ -0,0 +1,139 @@
+google.cloud.dataform.v1beta1.ListCompilationResultsResponse
+ */
+class ListCompilationResultsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * List of compilation results.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.CompilationResult compilation_results = 1;
+ */
+ private $compilation_results;
+ /**
+ * A token, which 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 which 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\Dataform\V1beta1\CompilationResult>|\Google\Protobuf\Internal\RepeatedField $compilation_results
+ * List of compilation results.
+ * @type string $next_page_token
+ * A token, which 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 which could not be reached.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * List of compilation results.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.CompilationResult compilation_results = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getCompilationResults()
+ {
+ return $this->compilation_results;
+ }
+
+ /**
+ * List of compilation results.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.CompilationResult compilation_results = 1;
+ * @param array<\Google\Cloud\Dataform\V1beta1\CompilationResult>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setCompilationResults($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dataform\V1beta1\CompilationResult::class);
+ $this->compilation_results = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token, which 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, which 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 which could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUnreachable()
+ {
+ return $this->unreachable;
+ }
+
+ /**
+ * Locations which 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/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ListRepositoriesRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ListRepositoriesRequest.php
new file mode 100644
index 000000000000..ba24c91287e7
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ListRepositoriesRequest.php
@@ -0,0 +1,250 @@
+google.cloud.dataform.v1beta1.ListRepositoriesRequest
+ */
+class ListRepositoriesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The location in which to list repositories. Must be in the format
+ * `projects/*/locations/*`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. Maximum number of repositories to return. The server may return fewer
+ * items than requested. If unspecified, the server will pick an appropriate
+ * default.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. Page token received from a previous `ListRepositories` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListRepositories`
+ * 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. This field only supports ordering by `name`. If unspecified, the server
+ * will choose the ordering. If specified, the default order is ascending for
+ * the `name` field.
+ *
+ * Generated from protobuf field string order_by = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $order_by = '';
+ /**
+ * Optional. Filter for the returned list.
+ *
+ * Generated from protobuf field string filter = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+
+ /**
+ * @param string $parent Required. The location in which to list repositories. Must be in the format
+ * `projects/*/locations/*`. Please see
+ * {@see DataformClient::locationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Dataform\V1beta1\ListRepositoriesRequest
+ *
+ * @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 location in which to list repositories. Must be in the format
+ * `projects/*/locations/*`.
+ * @type int $page_size
+ * Optional. Maximum number of repositories to return. The server may return fewer
+ * items than requested. If unspecified, the server will pick an appropriate
+ * default.
+ * @type string $page_token
+ * Optional. Page token received from a previous `ListRepositories` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListRepositories`
+ * must match the call that provided the page token.
+ * @type string $order_by
+ * Optional. This field only supports ordering by `name`. If unspecified, the server
+ * will choose the ordering. If specified, the default order is ascending for
+ * the `name` field.
+ * @type string $filter
+ * Optional. Filter for the returned list.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The location in which to list repositories. Must be in the format
+ * `projects/*/locations/*`.
+ *
+ * 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 location in which to list repositories. Must be in the format
+ * `projects/*/locations/*`.
+ *
+ * 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. Maximum number of repositories to return. The server may return fewer
+ * items than requested. If unspecified, the 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. Maximum number of repositories to return. The server may return fewer
+ * items than requested. If unspecified, the 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. Page token received from a previous `ListRepositories` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListRepositories`
+ * 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. Page token received from a previous `ListRepositories` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListRepositories`
+ * 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. This field only supports ordering by `name`. If unspecified, the server
+ * will choose the ordering. If specified, the default order is ascending for
+ * the `name` field.
+ *
+ * Generated from protobuf field string order_by = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Optional. This field only supports ordering by `name`. If unspecified, the server
+ * will choose the ordering. If specified, the default order is ascending for
+ * the `name` field.
+ *
+ * Generated from protobuf field string order_by = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Filter for the returned list.
+ *
+ * Generated from protobuf field string filter = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. Filter for the returned list.
+ *
+ * Generated from protobuf field string filter = 5 [(.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/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ListRepositoriesResponse.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ListRepositoriesResponse.php
new file mode 100644
index 000000000000..7852d0e1266a
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ListRepositoriesResponse.php
@@ -0,0 +1,139 @@
+google.cloud.dataform.v1beta1.ListRepositoriesResponse
+ */
+class ListRepositoriesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * List of repositories.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.Repository repositories = 1;
+ */
+ private $repositories;
+ /**
+ * A token which 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 which 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\Dataform\V1beta1\Repository>|\Google\Protobuf\Internal\RepeatedField $repositories
+ * List of repositories.
+ * @type string $next_page_token
+ * A token which 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 which could not be reached.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * List of repositories.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.Repository repositories = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRepositories()
+ {
+ return $this->repositories;
+ }
+
+ /**
+ * List of repositories.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.Repository repositories = 1;
+ * @param array<\Google\Cloud\Dataform\V1beta1\Repository>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRepositories($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dataform\V1beta1\Repository::class);
+ $this->repositories = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token which 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 which 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 which could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUnreachable()
+ {
+ return $this->unreachable;
+ }
+
+ /**
+ * Locations which 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/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ListWorkflowInvocationsRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ListWorkflowInvocationsRequest.php
new file mode 100644
index 000000000000..1fe33b0296da
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ListWorkflowInvocationsRequest.php
@@ -0,0 +1,174 @@
+google.cloud.dataform.v1beta1.ListWorkflowInvocationsRequest
+ */
+class ListWorkflowInvocationsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The parent resource of the WorkflowInvocation type. Must be in the
+ * format `projects/*/locations/*/repositories/*`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. Maximum number of workflow invocations to return. The server may return
+ * fewer items than requested. If unspecified, the server will pick an
+ * appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. Page token received from a previous `ListWorkflowInvocations` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListWorkflowInvocations`
+ * 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 resource of the WorkflowInvocation type. Must be in the
+ * format `projects/*/locations/*/repositories/*`. Please see
+ * {@see DataformClient::repositoryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Dataform\V1beta1\ListWorkflowInvocationsRequest
+ *
+ * @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 resource of the WorkflowInvocation type. Must be in the
+ * format `projects/*/locations/*/repositories/*`.
+ * @type int $page_size
+ * Optional. Maximum number of workflow invocations to return. The server may return
+ * fewer items than requested. If unspecified, the server will pick an
+ * appropriate default.
+ * @type string $page_token
+ * Optional. Page token received from a previous `ListWorkflowInvocations` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListWorkflowInvocations`
+ * must match the call that provided the page token.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The parent resource of the WorkflowInvocation type. Must be in the
+ * format `projects/*/locations/*/repositories/*`.
+ *
+ * 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 resource of the WorkflowInvocation type. Must be in the
+ * format `projects/*/locations/*/repositories/*`.
+ *
+ * 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. Maximum number of workflow invocations to return. The server may return
+ * fewer items than requested. If unspecified, the 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. Maximum number of workflow invocations to return. The server may return
+ * fewer items than requested. If unspecified, the 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. Page token received from a previous `ListWorkflowInvocations` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListWorkflowInvocations`
+ * 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. Page token received from a previous `ListWorkflowInvocations` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListWorkflowInvocations`
+ * 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/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ListWorkflowInvocationsResponse.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ListWorkflowInvocationsResponse.php
new file mode 100644
index 000000000000..d9fcb85b2e33
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ListWorkflowInvocationsResponse.php
@@ -0,0 +1,139 @@
+google.cloud.dataform.v1beta1.ListWorkflowInvocationsResponse
+ */
+class ListWorkflowInvocationsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * List of workflow invocations.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.WorkflowInvocation workflow_invocations = 1;
+ */
+ private $workflow_invocations;
+ /**
+ * A token, which 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 which 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\Dataform\V1beta1\WorkflowInvocation>|\Google\Protobuf\Internal\RepeatedField $workflow_invocations
+ * List of workflow invocations.
+ * @type string $next_page_token
+ * A token, which 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 which could not be reached.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * List of workflow invocations.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.WorkflowInvocation workflow_invocations = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getWorkflowInvocations()
+ {
+ return $this->workflow_invocations;
+ }
+
+ /**
+ * List of workflow invocations.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.WorkflowInvocation workflow_invocations = 1;
+ * @param array<\Google\Cloud\Dataform\V1beta1\WorkflowInvocation>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setWorkflowInvocations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dataform\V1beta1\WorkflowInvocation::class);
+ $this->workflow_invocations = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token, which 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, which 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 which could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUnreachable()
+ {
+ return $this->unreachable;
+ }
+
+ /**
+ * Locations which 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/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ListWorkspacesRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ListWorkspacesRequest.php
new file mode 100644
index 000000000000..b9e260f2fd13
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ListWorkspacesRequest.php
@@ -0,0 +1,250 @@
+google.cloud.dataform.v1beta1.ListWorkspacesRequest
+ */
+class ListWorkspacesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The repository in which to list workspaces. Must be in the
+ * format `projects/*/locations/*/repositories/*`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. Maximum number of workspaces to return. The server may return fewer
+ * items than requested. If unspecified, the server will pick an appropriate
+ * default.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. Page token received from a previous `ListWorkspaces` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListWorkspaces`
+ * 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. This field only supports ordering by `name`. If unspecified, the server
+ * will choose the ordering. If specified, the default order is ascending for
+ * the `name` field.
+ *
+ * Generated from protobuf field string order_by = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $order_by = '';
+ /**
+ * Optional. Filter for the returned list.
+ *
+ * Generated from protobuf field string filter = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+
+ /**
+ * @param string $parent Required. The repository in which to list workspaces. Must be in the
+ * format `projects/*/locations/*/repositories/*`. Please see
+ * {@see DataformClient::repositoryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Dataform\V1beta1\ListWorkspacesRequest
+ *
+ * @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 repository in which to list workspaces. Must be in the
+ * format `projects/*/locations/*/repositories/*`.
+ * @type int $page_size
+ * Optional. Maximum number of workspaces to return. The server may return fewer
+ * items than requested. If unspecified, the server will pick an appropriate
+ * default.
+ * @type string $page_token
+ * Optional. Page token received from a previous `ListWorkspaces` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListWorkspaces`
+ * must match the call that provided the page token.
+ * @type string $order_by
+ * Optional. This field only supports ordering by `name`. If unspecified, the server
+ * will choose the ordering. If specified, the default order is ascending for
+ * the `name` field.
+ * @type string $filter
+ * Optional. Filter for the returned list.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The repository in which to list workspaces. Must be in the
+ * format `projects/*/locations/*/repositories/*`.
+ *
+ * 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 repository in which to list workspaces. Must be in the
+ * format `projects/*/locations/*/repositories/*`.
+ *
+ * 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. Maximum number of workspaces to return. The server may return fewer
+ * items than requested. If unspecified, the 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. Maximum number of workspaces to return. The server may return fewer
+ * items than requested. If unspecified, the 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. Page token received from a previous `ListWorkspaces` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListWorkspaces`
+ * 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. Page token received from a previous `ListWorkspaces` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to `ListWorkspaces`
+ * 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. This field only supports ordering by `name`. If unspecified, the server
+ * will choose the ordering. If specified, the default order is ascending for
+ * the `name` field.
+ *
+ * Generated from protobuf field string order_by = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Optional. This field only supports ordering by `name`. If unspecified, the server
+ * will choose the ordering. If specified, the default order is ascending for
+ * the `name` field.
+ *
+ * Generated from protobuf field string order_by = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Filter for the returned list.
+ *
+ * Generated from protobuf field string filter = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. Filter for the returned list.
+ *
+ * Generated from protobuf field string filter = 5 [(.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/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ListWorkspacesResponse.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ListWorkspacesResponse.php
new file mode 100644
index 000000000000..54ef94dd2164
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ListWorkspacesResponse.php
@@ -0,0 +1,139 @@
+google.cloud.dataform.v1beta1.ListWorkspacesResponse
+ */
+class ListWorkspacesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * List of workspaces.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.Workspace workspaces = 1;
+ */
+ private $workspaces;
+ /**
+ * A token, which 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 which 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\Dataform\V1beta1\Workspace>|\Google\Protobuf\Internal\RepeatedField $workspaces
+ * List of workspaces.
+ * @type string $next_page_token
+ * A token, which 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 which could not be reached.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * List of workspaces.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.Workspace workspaces = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getWorkspaces()
+ {
+ return $this->workspaces;
+ }
+
+ /**
+ * List of workspaces.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.Workspace workspaces = 1;
+ * @param array<\Google\Cloud\Dataform\V1beta1\Workspace>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setWorkspaces($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dataform\V1beta1\Workspace::class);
+ $this->workspaces = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token, which 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, which 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 which could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUnreachable()
+ {
+ return $this->unreachable;
+ }
+
+ /**
+ * Locations which 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/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/MakeDirectoryRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/MakeDirectoryRequest.php
new file mode 100644
index 000000000000..1617b3114f83
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/MakeDirectoryRequest.php
@@ -0,0 +1,105 @@
+google.cloud.dataform.v1beta1.MakeDirectoryRequest
+ */
+class MakeDirectoryRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $workspace = '';
+ /**
+ * Required. The directory's full path including directory name, relative to the
+ * workspace root.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $path = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $workspace
+ * Required. The workspace's name.
+ * @type string $path
+ * Required. The directory's full path including directory name, relative to the
+ * workspace root.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getWorkspace()
+ {
+ return $this->workspace;
+ }
+
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setWorkspace($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->workspace = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The directory's full path including directory name, relative to the
+ * workspace root.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getPath()
+ {
+ return $this->path;
+ }
+
+ /**
+ * Required. The directory's full path including directory name, relative to the
+ * workspace root.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setPath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->path = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/MakeDirectoryResponse.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/MakeDirectoryResponse.php
new file mode 100644
index 000000000000..05d2d176a30e
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/MakeDirectoryResponse.php
@@ -0,0 +1,33 @@
+google.cloud.dataform.v1beta1.MakeDirectoryResponse
+ */
+class MakeDirectoryResponse extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/MoveDirectoryRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/MoveDirectoryRequest.php
new file mode 100644
index 000000000000..7b8f0cd213bb
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/MoveDirectoryRequest.php
@@ -0,0 +1,143 @@
+google.cloud.dataform.v1beta1.MoveDirectoryRequest
+ */
+class MoveDirectoryRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $workspace = '';
+ /**
+ * Required. The directory's full path including directory name, relative to the
+ * workspace root.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $path = '';
+ /**
+ * Required. The new path for the directory including directory name, rooted at
+ * workspace root.
+ *
+ * Generated from protobuf field string new_path = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $new_path = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $workspace
+ * Required. The workspace's name.
+ * @type string $path
+ * Required. The directory's full path including directory name, relative to the
+ * workspace root.
+ * @type string $new_path
+ * Required. The new path for the directory including directory name, rooted at
+ * workspace root.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getWorkspace()
+ {
+ return $this->workspace;
+ }
+
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setWorkspace($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->workspace = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The directory's full path including directory name, relative to the
+ * workspace root.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getPath()
+ {
+ return $this->path;
+ }
+
+ /**
+ * Required. The directory's full path including directory name, relative to the
+ * workspace root.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setPath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->path = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The new path for the directory including directory name, rooted at
+ * workspace root.
+ *
+ * Generated from protobuf field string new_path = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getNewPath()
+ {
+ return $this->new_path;
+ }
+
+ /**
+ * Required. The new path for the directory including directory name, rooted at
+ * workspace root.
+ *
+ * Generated from protobuf field string new_path = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setNewPath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->new_path = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/MoveDirectoryResponse.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/MoveDirectoryResponse.php
new file mode 100644
index 000000000000..a3e6cb5265e9
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/MoveDirectoryResponse.php
@@ -0,0 +1,33 @@
+google.cloud.dataform.v1beta1.MoveDirectoryResponse
+ */
+class MoveDirectoryResponse extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/MoveFileRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/MoveFileRequest.php
new file mode 100644
index 000000000000..07e452ca8cd2
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/MoveFileRequest.php
@@ -0,0 +1,135 @@
+google.cloud.dataform.v1beta1.MoveFileRequest
+ */
+class MoveFileRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $workspace = '';
+ /**
+ * Required. The file's full path including filename, relative to the workspace root.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $path = '';
+ /**
+ * Required. The file's new path including filename, relative to the workspace root.
+ *
+ * Generated from protobuf field string new_path = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $new_path = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $workspace
+ * Required. The workspace's name.
+ * @type string $path
+ * Required. The file's full path including filename, relative to the workspace root.
+ * @type string $new_path
+ * Required. The file's new path including filename, relative to the workspace root.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getWorkspace()
+ {
+ return $this->workspace;
+ }
+
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setWorkspace($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->workspace = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The file's full path including filename, relative to the workspace root.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getPath()
+ {
+ return $this->path;
+ }
+
+ /**
+ * Required. The file's full path including filename, relative to the workspace root.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setPath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->path = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The file's new path including filename, relative to the workspace root.
+ *
+ * Generated from protobuf field string new_path = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getNewPath()
+ {
+ return $this->new_path;
+ }
+
+ /**
+ * Required. The file's new path including filename, relative to the workspace root.
+ *
+ * Generated from protobuf field string new_path = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setNewPath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->new_path = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/MoveFileResponse.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/MoveFileResponse.php
new file mode 100644
index 000000000000..25d0cb19ced2
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/MoveFileResponse.php
@@ -0,0 +1,33 @@
+google.cloud.dataform.v1beta1.MoveFileResponse
+ */
+class MoveFileResponse extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/PullGitCommitsRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/PullGitCommitsRequest.php
new file mode 100644
index 000000000000..4569b6e493d8
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/PullGitCommitsRequest.php
@@ -0,0 +1,153 @@
+google.cloud.dataform.v1beta1.PullGitCommitsRequest
+ */
+class PullGitCommitsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. The name of the branch in the Git remote from which to pull commits.
+ * If left unset, the repository's default branch name will be used.
+ *
+ * Generated from protobuf field string remote_branch = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $remote_branch = '';
+ /**
+ * Required. The author of any merge commit which may be created as a result of merging
+ * fetched Git commits into this workspace.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.CommitAuthor author = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $author = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The workspace's name.
+ * @type string $remote_branch
+ * Optional. The name of the branch in the Git remote from which to pull commits.
+ * If left unset, the repository's default branch name will be used.
+ * @type \Google\Cloud\Dataform\V1beta1\CommitAuthor $author
+ * Required. The author of any merge commit which may be created as a result of merging
+ * fetched Git commits into this workspace.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The workspace's 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 workspace's 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;
+ }
+
+ /**
+ * Optional. The name of the branch in the Git remote from which to pull commits.
+ * If left unset, the repository's default branch name will be used.
+ *
+ * Generated from protobuf field string remote_branch = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRemoteBranch()
+ {
+ return $this->remote_branch;
+ }
+
+ /**
+ * Optional. The name of the branch in the Git remote from which to pull commits.
+ * If left unset, the repository's default branch name will be used.
+ *
+ * Generated from protobuf field string remote_branch = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRemoteBranch($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->remote_branch = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The author of any merge commit which may be created as a result of merging
+ * fetched Git commits into this workspace.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.CommitAuthor author = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Dataform\V1beta1\CommitAuthor|null
+ */
+ public function getAuthor()
+ {
+ return $this->author;
+ }
+
+ public function hasAuthor()
+ {
+ return isset($this->author);
+ }
+
+ public function clearAuthor()
+ {
+ unset($this->author);
+ }
+
+ /**
+ * Required. The author of any merge commit which may be created as a result of merging
+ * fetched Git commits into this workspace.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.CommitAuthor author = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Dataform\V1beta1\CommitAuthor $var
+ * @return $this
+ */
+ public function setAuthor($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Dataform\V1beta1\CommitAuthor::class);
+ $this->author = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/PushGitCommitsRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/PushGitCommitsRequest.php
new file mode 100644
index 000000000000..91c87fea4150
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/PushGitCommitsRequest.php
@@ -0,0 +1,105 @@
+google.cloud.dataform.v1beta1.PushGitCommitsRequest
+ */
+class PushGitCommitsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. The name of the branch in the Git remote to which commits should be pushed.
+ * If left unset, the repository's default branch name will be used.
+ *
+ * Generated from protobuf field string remote_branch = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $remote_branch = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The workspace's name.
+ * @type string $remote_branch
+ * Optional. The name of the branch in the Git remote to which commits should be pushed.
+ * If left unset, the repository's default branch name will be used.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The workspace's 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 workspace's 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;
+ }
+
+ /**
+ * Optional. The name of the branch in the Git remote to which commits should be pushed.
+ * If left unset, the repository's default branch name will be used.
+ *
+ * Generated from protobuf field string remote_branch = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRemoteBranch()
+ {
+ return $this->remote_branch;
+ }
+
+ /**
+ * Optional. The name of the branch in the Git remote to which commits should be pushed.
+ * If left unset, the repository's default branch name will be used.
+ *
+ * Generated from protobuf field string remote_branch = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setRemoteBranch($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->remote_branch = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/QueryCompilationResultActionsRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/QueryCompilationResultActionsRequest.php
new file mode 100644
index 000000000000..8907e61d7e2f
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/QueryCompilationResultActionsRequest.php
@@ -0,0 +1,197 @@
+google.cloud.dataform.v1beta1.QueryCompilationResultActionsRequest
+ */
+class QueryCompilationResultActionsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The compilation result's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. Maximum number of compilation results to return. The server may return
+ * fewer items than requested. If unspecified, the server will pick an
+ * appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. Page token received from a previous `QueryCompilationResultActions` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to
+ * `QueryCompilationResultActions` 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. Optional filter for the returned list. Filtering is only currently
+ * supported on the `file_path` field.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The compilation result's name.
+ * @type int $page_size
+ * Optional. Maximum number of compilation results to return. The server may return
+ * fewer items than requested. If unspecified, the server will pick an
+ * appropriate default.
+ * @type string $page_token
+ * Optional. Page token received from a previous `QueryCompilationResultActions` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to
+ * `QueryCompilationResultActions` must match the call that provided the page
+ * token.
+ * @type string $filter
+ * Optional. Optional filter for the returned list. Filtering is only currently
+ * supported on the `file_path` field.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The compilation result's 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 compilation result's 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;
+ }
+
+ /**
+ * Optional. Maximum number of compilation results to return. The server may return
+ * fewer items than requested. If unspecified, the 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. Maximum number of compilation results to return. The server may return
+ * fewer items than requested. If unspecified, the 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. Page token received from a previous `QueryCompilationResultActions` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to
+ * `QueryCompilationResultActions` 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. Page token received from a previous `QueryCompilationResultActions` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to
+ * `QueryCompilationResultActions` 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. Optional filter for the returned list. Filtering is only currently
+ * supported on the `file_path` field.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. Optional filter for the returned list. Filtering is only currently
+ * supported on the `file_path` field.
+ *
+ * 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;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/QueryCompilationResultActionsResponse.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/QueryCompilationResultActionsResponse.php
new file mode 100644
index 000000000000..b21b880933e5
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/QueryCompilationResultActionsResponse.php
@@ -0,0 +1,105 @@
+google.cloud.dataform.v1beta1.QueryCompilationResultActionsResponse
+ */
+class QueryCompilationResultActionsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * List of compilation result actions.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.CompilationResultAction compilation_result_actions = 1;
+ */
+ private $compilation_result_actions;
+ /**
+ * A token, which 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 = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Dataform\V1beta1\CompilationResultAction>|\Google\Protobuf\Internal\RepeatedField $compilation_result_actions
+ * List of compilation result actions.
+ * @type string $next_page_token
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * List of compilation result actions.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.CompilationResultAction compilation_result_actions = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getCompilationResultActions()
+ {
+ return $this->compilation_result_actions;
+ }
+
+ /**
+ * List of compilation result actions.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.CompilationResultAction compilation_result_actions = 1;
+ * @param array<\Google\Cloud\Dataform\V1beta1\CompilationResultAction>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setCompilationResultActions($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dataform\V1beta1\CompilationResultAction::class);
+ $this->compilation_result_actions = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token, which 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, which 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;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/QueryDirectoryContentsRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/QueryDirectoryContentsRequest.php
new file mode 100644
index 000000000000..f91de87a6863
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/QueryDirectoryContentsRequest.php
@@ -0,0 +1,197 @@
+google.cloud.dataform.v1beta1.QueryDirectoryContentsRequest
+ */
+class QueryDirectoryContentsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $workspace = '';
+ /**
+ * Optional. The directory's full path including directory name, relative to the
+ * workspace root. If left unset, the workspace root is used.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $path = '';
+ /**
+ * Optional. Maximum number of paths to return. The server may return fewer
+ * items than requested. If unspecified, the server will pick an appropriate
+ * default.
+ *
+ * Generated from protobuf field int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. Page token received from a previous `QueryDirectoryContents` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to
+ * `QueryDirectoryContents` must match the call that provided the page
+ * token.
+ *
+ * Generated from protobuf field string page_token = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $workspace
+ * Required. The workspace's name.
+ * @type string $path
+ * Optional. The directory's full path including directory name, relative to the
+ * workspace root. If left unset, the workspace root is used.
+ * @type int $page_size
+ * Optional. Maximum number of paths to return. The server may return fewer
+ * items than requested. If unspecified, the server will pick an appropriate
+ * default.
+ * @type string $page_token
+ * Optional. Page token received from a previous `QueryDirectoryContents` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to
+ * `QueryDirectoryContents` must match the call that provided the page
+ * token.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getWorkspace()
+ {
+ return $this->workspace;
+ }
+
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setWorkspace($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->workspace = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The directory's full path including directory name, relative to the
+ * workspace root. If left unset, the workspace root is used.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getPath()
+ {
+ return $this->path;
+ }
+
+ /**
+ * Optional. The directory's full path including directory name, relative to the
+ * workspace root. If left unset, the workspace root is used.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setPath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->path = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Maximum number of paths to return. The server may return fewer
+ * items than requested. If unspecified, the server will pick an appropriate
+ * default.
+ *
+ * Generated from protobuf field int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Optional. Maximum number of paths to return. The server may return fewer
+ * items than requested. If unspecified, the server will pick an appropriate
+ * default.
+ *
+ * Generated from protobuf field int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Page token received from a previous `QueryDirectoryContents` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to
+ * `QueryDirectoryContents` must match the call that provided the page
+ * token.
+ *
+ * Generated from protobuf field string page_token = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Optional. Page token received from a previous `QueryDirectoryContents` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to
+ * `QueryDirectoryContents` must match the call that provided the page
+ * token.
+ *
+ * Generated from protobuf field string page_token = 4 [(.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/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/QueryDirectoryContentsResponse.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/QueryDirectoryContentsResponse.php
new file mode 100644
index 000000000000..7dd6d0787b66
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/QueryDirectoryContentsResponse.php
@@ -0,0 +1,105 @@
+google.cloud.dataform.v1beta1.QueryDirectoryContentsResponse
+ */
+class QueryDirectoryContentsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * List of entries in the directory.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.QueryDirectoryContentsResponse.DirectoryEntry directory_entries = 1;
+ */
+ private $directory_entries;
+ /**
+ * A token, which 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 = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Dataform\V1beta1\QueryDirectoryContentsResponse\DirectoryEntry>|\Google\Protobuf\Internal\RepeatedField $directory_entries
+ * List of entries in the directory.
+ * @type string $next_page_token
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * List of entries in the directory.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.QueryDirectoryContentsResponse.DirectoryEntry directory_entries = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getDirectoryEntries()
+ {
+ return $this->directory_entries;
+ }
+
+ /**
+ * List of entries in the directory.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.QueryDirectoryContentsResponse.DirectoryEntry directory_entries = 1;
+ * @param array<\Google\Cloud\Dataform\V1beta1\QueryDirectoryContentsResponse\DirectoryEntry>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setDirectoryEntries($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dataform\V1beta1\QueryDirectoryContentsResponse\DirectoryEntry::class);
+ $this->directory_entries = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token, which 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, which 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;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/QueryDirectoryContentsResponse/DirectoryEntry.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/QueryDirectoryContentsResponse/DirectoryEntry.php
new file mode 100644
index 000000000000..2b2d616acdd3
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/QueryDirectoryContentsResponse/DirectoryEntry.php
@@ -0,0 +1,111 @@
+google.cloud.dataform.v1beta1.QueryDirectoryContentsResponse.DirectoryEntry
+ */
+class DirectoryEntry extends \Google\Protobuf\Internal\Message
+{
+ protected $entry;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $file
+ * A file in the directory.
+ * @type string $directory
+ * A child directory in the directory.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A file in the directory.
+ *
+ * Generated from protobuf field string file = 1;
+ * @return string
+ */
+ public function getFile()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasFile()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * A file in the directory.
+ *
+ * Generated from protobuf field string file = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setFile($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * A child directory in the directory.
+ *
+ * Generated from protobuf field string directory = 2;
+ * @return string
+ */
+ public function getDirectory()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasDirectory()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * A child directory in the directory.
+ *
+ * Generated from protobuf field string directory = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setDirectory($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getEntry()
+ {
+ return $this->whichOneof("entry");
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(DirectoryEntry::class, \Google\Cloud\Dataform\V1beta1\QueryDirectoryContentsResponse_DirectoryEntry::class);
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/QueryDirectoryContentsResponse_DirectoryEntry.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/QueryDirectoryContentsResponse_DirectoryEntry.php
new file mode 100644
index 000000000000..af70ffbf85f8
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/QueryDirectoryContentsResponse_DirectoryEntry.php
@@ -0,0 +1,16 @@
+google.cloud.dataform.v1beta1.QueryWorkflowInvocationActionsRequest
+ */
+class QueryWorkflowInvocationActionsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The workflow invocation's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. Maximum number of workflow invocations to return. The server may return
+ * fewer items than requested. If unspecified, the server will pick an
+ * appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. Page token received from a previous `QueryWorkflowInvocationActions` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to
+ * `QueryWorkflowInvocationActions` 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 = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The workflow invocation's name.
+ * @type int $page_size
+ * Optional. Maximum number of workflow invocations to return. The server may return
+ * fewer items than requested. If unspecified, the server will pick an
+ * appropriate default.
+ * @type string $page_token
+ * Optional. Page token received from a previous `QueryWorkflowInvocationActions` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to
+ * `QueryWorkflowInvocationActions` must match the call that provided the page
+ * token.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The workflow invocation's 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 workflow invocation's 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;
+ }
+
+ /**
+ * Optional. Maximum number of workflow invocations to return. The server may return
+ * fewer items than requested. If unspecified, the 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. Maximum number of workflow invocations to return. The server may return
+ * fewer items than requested. If unspecified, the 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. Page token received from a previous `QueryWorkflowInvocationActions` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to
+ * `QueryWorkflowInvocationActions` 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. Page token received from a previous `QueryWorkflowInvocationActions` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to
+ * `QueryWorkflowInvocationActions` 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/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/QueryWorkflowInvocationActionsResponse.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/QueryWorkflowInvocationActionsResponse.php
new file mode 100644
index 000000000000..0c7779e7964f
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/QueryWorkflowInvocationActionsResponse.php
@@ -0,0 +1,105 @@
+google.cloud.dataform.v1beta1.QueryWorkflowInvocationActionsResponse
+ */
+class QueryWorkflowInvocationActionsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * List of workflow invocation actions.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.WorkflowInvocationAction workflow_invocation_actions = 1;
+ */
+ private $workflow_invocation_actions;
+ /**
+ * A token, which 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 = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Dataform\V1beta1\WorkflowInvocationAction>|\Google\Protobuf\Internal\RepeatedField $workflow_invocation_actions
+ * List of workflow invocation actions.
+ * @type string $next_page_token
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * List of workflow invocation actions.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.WorkflowInvocationAction workflow_invocation_actions = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getWorkflowInvocationActions()
+ {
+ return $this->workflow_invocation_actions;
+ }
+
+ /**
+ * List of workflow invocation actions.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.WorkflowInvocationAction workflow_invocation_actions = 1;
+ * @param array<\Google\Cloud\Dataform\V1beta1\WorkflowInvocationAction>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setWorkflowInvocationActions($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dataform\V1beta1\WorkflowInvocationAction::class);
+ $this->workflow_invocation_actions = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token, which 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, which 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;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ReadFileRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ReadFileRequest.php
new file mode 100644
index 000000000000..0724e51eebef
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ReadFileRequest.php
@@ -0,0 +1,101 @@
+google.cloud.dataform.v1beta1.ReadFileRequest
+ */
+class ReadFileRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $workspace = '';
+ /**
+ * Required. The file's full path including filename, relative to the workspace root.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $path = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $workspace
+ * Required. The workspace's name.
+ * @type string $path
+ * Required. The file's full path including filename, relative to the workspace root.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getWorkspace()
+ {
+ return $this->workspace;
+ }
+
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setWorkspace($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->workspace = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The file's full path including filename, relative to the workspace root.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getPath()
+ {
+ return $this->path;
+ }
+
+ /**
+ * Required. The file's full path including filename, relative to the workspace root.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setPath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->path = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ReadFileResponse.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ReadFileResponse.php
new file mode 100644
index 000000000000..f9978e7e33d8
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/ReadFileResponse.php
@@ -0,0 +1,67 @@
+google.cloud.dataform.v1beta1.ReadFileResponse
+ */
+class ReadFileResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The file's contents.
+ *
+ * Generated from protobuf field bytes file_contents = 1;
+ */
+ protected $file_contents = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $file_contents
+ * The file's contents.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The file's contents.
+ *
+ * Generated from protobuf field bytes file_contents = 1;
+ * @return string
+ */
+ public function getFileContents()
+ {
+ return $this->file_contents;
+ }
+
+ /**
+ * The file's contents.
+ *
+ * Generated from protobuf field bytes file_contents = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setFileContents($var)
+ {
+ GPBUtil::checkString($var, False);
+ $this->file_contents = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/RelationDescriptor.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/RelationDescriptor.php
new file mode 100644
index 000000000000..eaa53f555348
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/RelationDescriptor.php
@@ -0,0 +1,135 @@
+google.cloud.dataform.v1beta1.RelationDescriptor
+ */
+class RelationDescriptor extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A text description of the relation.
+ *
+ * Generated from protobuf field string description = 1;
+ */
+ protected $description = '';
+ /**
+ * A list of descriptions of columns within the relation.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.RelationDescriptor.ColumnDescriptor columns = 2;
+ */
+ private $columns;
+ /**
+ * A set of BigQuery labels that should be applied to the relation.
+ *
+ * Generated from protobuf field map bigquery_labels = 3;
+ */
+ private $bigquery_labels;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $description
+ * A text description of the relation.
+ * @type array<\Google\Cloud\Dataform\V1beta1\RelationDescriptor\ColumnDescriptor>|\Google\Protobuf\Internal\RepeatedField $columns
+ * A list of descriptions of columns within the relation.
+ * @type array|\Google\Protobuf\Internal\MapField $bigquery_labels
+ * A set of BigQuery labels that should be applied to the relation.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A text description of the relation.
+ *
+ * Generated from protobuf field string description = 1;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * A text description of the relation.
+ *
+ * Generated from protobuf field string description = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * A list of descriptions of columns within the relation.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.RelationDescriptor.ColumnDescriptor columns = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getColumns()
+ {
+ return $this->columns;
+ }
+
+ /**
+ * A list of descriptions of columns within the relation.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.RelationDescriptor.ColumnDescriptor columns = 2;
+ * @param array<\Google\Cloud\Dataform\V1beta1\RelationDescriptor\ColumnDescriptor>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setColumns($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dataform\V1beta1\RelationDescriptor\ColumnDescriptor::class);
+ $this->columns = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A set of BigQuery labels that should be applied to the relation.
+ *
+ * Generated from protobuf field map bigquery_labels = 3;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getBigqueryLabels()
+ {
+ return $this->bigquery_labels;
+ }
+
+ /**
+ * A set of BigQuery labels that should be applied to the relation.
+ *
+ * Generated from protobuf field map bigquery_labels = 3;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setBigqueryLabels($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->bigquery_labels = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/RelationDescriptor/ColumnDescriptor.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/RelationDescriptor/ColumnDescriptor.php
new file mode 100644
index 000000000000..c2d4527016ee
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/RelationDescriptor/ColumnDescriptor.php
@@ -0,0 +1,142 @@
+google.cloud.dataform.v1beta1.RelationDescriptor.ColumnDescriptor
+ */
+class ColumnDescriptor extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The identifier for the column. Each entry in `path` represents one level
+ * of nesting.
+ *
+ * Generated from protobuf field repeated string path = 1;
+ */
+ private $path;
+ /**
+ * A textual description of the column.
+ *
+ * Generated from protobuf field string description = 2;
+ */
+ protected $description = '';
+ /**
+ * A list of BigQuery policy tags that will be applied to the column.
+ *
+ * Generated from protobuf field repeated string bigquery_policy_tags = 3;
+ */
+ private $bigquery_policy_tags;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $path
+ * The identifier for the column. Each entry in `path` represents one level
+ * of nesting.
+ * @type string $description
+ * A textual description of the column.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $bigquery_policy_tags
+ * A list of BigQuery policy tags that will be applied to the column.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The identifier for the column. Each entry in `path` represents one level
+ * of nesting.
+ *
+ * Generated from protobuf field repeated string path = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getPath()
+ {
+ return $this->path;
+ }
+
+ /**
+ * The identifier for the column. Each entry in `path` represents one level
+ * of nesting.
+ *
+ * Generated from protobuf field repeated string path = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setPath($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->path = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A textual description of the column.
+ *
+ * Generated from protobuf field string description = 2;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * A textual description of the column.
+ *
+ * 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 list of BigQuery policy tags that will be applied to the column.
+ *
+ * Generated from protobuf field repeated string bigquery_policy_tags = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getBigqueryPolicyTags()
+ {
+ return $this->bigquery_policy_tags;
+ }
+
+ /**
+ * A list of BigQuery policy tags that will be applied to the column.
+ *
+ * Generated from protobuf field repeated string bigquery_policy_tags = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setBigqueryPolicyTags($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->bigquery_policy_tags = $arr;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(ColumnDescriptor::class, \Google\Cloud\Dataform\V1beta1\RelationDescriptor_ColumnDescriptor::class);
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/RelationDescriptor_ColumnDescriptor.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/RelationDescriptor_ColumnDescriptor.php
new file mode 100644
index 000000000000..e7d0e023552e
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/RelationDescriptor_ColumnDescriptor.php
@@ -0,0 +1,16 @@
+google.cloud.dataform.v1beta1.RemoveDirectoryRequest
+ */
+class RemoveDirectoryRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $workspace = '';
+ /**
+ * Required. The directory's full path including directory name, relative to the
+ * workspace root.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $path = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $workspace
+ * Required. The workspace's name.
+ * @type string $path
+ * Required. The directory's full path including directory name, relative to the
+ * workspace root.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getWorkspace()
+ {
+ return $this->workspace;
+ }
+
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setWorkspace($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->workspace = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The directory's full path including directory name, relative to the
+ * workspace root.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getPath()
+ {
+ return $this->path;
+ }
+
+ /**
+ * Required. The directory's full path including directory name, relative to the
+ * workspace root.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setPath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->path = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/RemoveFileRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/RemoveFileRequest.php
new file mode 100644
index 000000000000..6ef2277d3292
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/RemoveFileRequest.php
@@ -0,0 +1,101 @@
+google.cloud.dataform.v1beta1.RemoveFileRequest
+ */
+class RemoveFileRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $workspace = '';
+ /**
+ * Required. The file's full path including filename, relative to the workspace root.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $path = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $workspace
+ * Required. The workspace's name.
+ * @type string $path
+ * Required. The file's full path including filename, relative to the workspace root.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getWorkspace()
+ {
+ return $this->workspace;
+ }
+
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setWorkspace($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->workspace = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The file's full path including filename, relative to the workspace root.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getPath()
+ {
+ return $this->path;
+ }
+
+ /**
+ * Required. The file's full path including filename, relative to the workspace root.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setPath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->path = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/Repository.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/Repository.php
new file mode 100644
index 000000000000..1d997963ba80
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/Repository.php
@@ -0,0 +1,111 @@
+google.cloud.dataform.v1beta1.Repository
+ */
+class Repository extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The repository's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $name = '';
+ /**
+ * Optional. If set, configures this repository to be linked to a Git remote.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Repository.GitRemoteSettings git_remote_settings = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $git_remote_settings = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. The repository's name.
+ * @type \Google\Cloud\Dataform\V1beta1\Repository\GitRemoteSettings $git_remote_settings
+ * Optional. If set, configures this repository to be linked to a Git remote.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The repository's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. The repository's name.
+ *
+ * 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;
+ }
+
+ /**
+ * Optional. If set, configures this repository to be linked to a Git remote.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Repository.GitRemoteSettings git_remote_settings = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\Dataform\V1beta1\Repository\GitRemoteSettings|null
+ */
+ public function getGitRemoteSettings()
+ {
+ return $this->git_remote_settings;
+ }
+
+ public function hasGitRemoteSettings()
+ {
+ return isset($this->git_remote_settings);
+ }
+
+ public function clearGitRemoteSettings()
+ {
+ unset($this->git_remote_settings);
+ }
+
+ /**
+ * Optional. If set, configures this repository to be linked to a Git remote.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Repository.GitRemoteSettings git_remote_settings = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\Dataform\V1beta1\Repository\GitRemoteSettings $var
+ * @return $this
+ */
+ public function setGitRemoteSettings($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Dataform\V1beta1\Repository\GitRemoteSettings::class);
+ $this->git_remote_settings = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/Repository/GitRemoteSettings.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/Repository/GitRemoteSettings.php
new file mode 100644
index 000000000000..bd9b0210e78c
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/Repository/GitRemoteSettings.php
@@ -0,0 +1,180 @@
+google.cloud.dataform.v1beta1.Repository.GitRemoteSettings
+ */
+class GitRemoteSettings extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The Git remote's URL.
+ *
+ * Generated from protobuf field string url = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $url = '';
+ /**
+ * Required. The Git remote's default branch name.
+ *
+ * Generated from protobuf field string default_branch = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $default_branch = '';
+ /**
+ * Required. The name of the Secret Manager secret version to use as an
+ * authentication token for Git operations. Must be in the format
+ * `projects/*/secrets/*/versions/*`.
+ *
+ * Generated from protobuf field string authentication_token_secret_version = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $authentication_token_secret_version = '';
+ /**
+ * Output only. Indicates the status of the Git access token.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Repository.GitRemoteSettings.TokenStatus token_status = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $token_status = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $url
+ * Required. The Git remote's URL.
+ * @type string $default_branch
+ * Required. The Git remote's default branch name.
+ * @type string $authentication_token_secret_version
+ * Required. The name of the Secret Manager secret version to use as an
+ * authentication token for Git operations. Must be in the format
+ * `projects/*/secrets/*/versions/*`.
+ * @type int $token_status
+ * Output only. Indicates the status of the Git access token.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The Git remote's URL.
+ *
+ * Generated from protobuf field string url = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getUrl()
+ {
+ return $this->url;
+ }
+
+ /**
+ * Required. The Git remote's URL.
+ *
+ * Generated from protobuf field string url = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setUrl($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->url = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The Git remote's default branch name.
+ *
+ * Generated from protobuf field string default_branch = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getDefaultBranch()
+ {
+ return $this->default_branch;
+ }
+
+ /**
+ * Required. The Git remote's default branch name.
+ *
+ * Generated from protobuf field string default_branch = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setDefaultBranch($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->default_branch = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The name of the Secret Manager secret version to use as an
+ * authentication token for Git operations. Must be in the format
+ * `projects/*/secrets/*/versions/*`.
+ *
+ * Generated from protobuf field string authentication_token_secret_version = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getAuthenticationTokenSecretVersion()
+ {
+ return $this->authentication_token_secret_version;
+ }
+
+ /**
+ * Required. The name of the Secret Manager secret version to use as an
+ * authentication token for Git operations. Must be in the format
+ * `projects/*/secrets/*/versions/*`.
+ *
+ * Generated from protobuf field string authentication_token_secret_version = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setAuthenticationTokenSecretVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->authentication_token_secret_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Indicates the status of the Git access token.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Repository.GitRemoteSettings.TokenStatus token_status = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getTokenStatus()
+ {
+ return $this->token_status;
+ }
+
+ /**
+ * Output only. Indicates the status of the Git access token.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Repository.GitRemoteSettings.TokenStatus token_status = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setTokenStatus($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Dataform\V1beta1\Repository\GitRemoteSettings\TokenStatus::class);
+ $this->token_status = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(GitRemoteSettings::class, \Google\Cloud\Dataform\V1beta1\Repository_GitRemoteSettings::class);
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/Repository/GitRemoteSettings/TokenStatus.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/Repository/GitRemoteSettings/TokenStatus.php
new file mode 100644
index 000000000000..2879131ecdd6
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/Repository/GitRemoteSettings/TokenStatus.php
@@ -0,0 +1,72 @@
+google.cloud.dataform.v1beta1.Repository.GitRemoteSettings.TokenStatus
+ */
+class TokenStatus
+{
+ /**
+ * Default value. This value is unused.
+ *
+ * Generated from protobuf enum TOKEN_STATUS_UNSPECIFIED = 0;
+ */
+ const TOKEN_STATUS_UNSPECIFIED = 0;
+ /**
+ * The token could not be found in Secret Manager (or the Dataform
+ * Service Account did not have permission to access it).
+ *
+ * Generated from protobuf enum NOT_FOUND = 1;
+ */
+ const NOT_FOUND = 1;
+ /**
+ * The token could not be used to authenticate against the Git remote.
+ *
+ * Generated from protobuf enum INVALID = 2;
+ */
+ const INVALID = 2;
+ /**
+ * The token was used successfully to authenticate against the Git remote.
+ *
+ * Generated from protobuf enum VALID = 3;
+ */
+ const VALID = 3;
+
+ private static $valueToName = [
+ self::TOKEN_STATUS_UNSPECIFIED => 'TOKEN_STATUS_UNSPECIFIED',
+ self::NOT_FOUND => 'NOT_FOUND',
+ self::INVALID => 'INVALID',
+ self::VALID => 'VALID',
+ ];
+
+ 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(TokenStatus::class, \Google\Cloud\Dataform\V1beta1\Repository_GitRemoteSettings_TokenStatus::class);
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/Repository_GitRemoteSettings.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/Repository_GitRemoteSettings.php
new file mode 100644
index 000000000000..7d3b6960f03d
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/Repository_GitRemoteSettings.php
@@ -0,0 +1,16 @@
+google.cloud.dataform.v1beta1.ResetWorkspaceChangesRequest
+ */
+class ResetWorkspaceChangesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. Full file paths to reset back to their committed state including filename,
+ * rooted at workspace root. If left empty, all files will be reset.
+ *
+ * Generated from protobuf field repeated string paths = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $paths;
+ /**
+ * Optional. If set to true, untracked files will be deleted.
+ *
+ * Generated from protobuf field bool clean = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $clean = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The workspace's name.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $paths
+ * Optional. Full file paths to reset back to their committed state including filename,
+ * rooted at workspace root. If left empty, all files will be reset.
+ * @type bool $clean
+ * Optional. If set to true, untracked files will be deleted.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The workspace's 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 workspace's 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;
+ }
+
+ /**
+ * Optional. Full file paths to reset back to their committed state including filename,
+ * rooted at workspace root. If left empty, all files will be reset.
+ *
+ * Generated from protobuf field repeated string paths = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getPaths()
+ {
+ return $this->paths;
+ }
+
+ /**
+ * Optional. Full file paths to reset back to their committed state including filename,
+ * rooted at workspace root. If left empty, all files will be reset.
+ *
+ * Generated from protobuf field repeated string paths = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setPaths($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->paths = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Optional. If set to true, untracked files will be deleted.
+ *
+ * Generated from protobuf field bool clean = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getClean()
+ {
+ return $this->clean;
+ }
+
+ /**
+ * Optional. If set to true, untracked files will be deleted.
+ *
+ * Generated from protobuf field bool clean = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setClean($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->clean = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/Target.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/Target.php
new file mode 100644
index 000000000000..2b0c0a40cdf1
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/Target.php
@@ -0,0 +1,136 @@
+google.cloud.dataform.v1beta1.Target
+ */
+class Target extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The action's database (Google Cloud project ID) .
+ *
+ * Generated from protobuf field string database = 1;
+ */
+ protected $database = '';
+ /**
+ * The action's schema (BigQuery dataset ID), within `database`.
+ *
+ * Generated from protobuf field string schema = 2;
+ */
+ protected $schema = '';
+ /**
+ * The action's name, within `database` and `schema`.
+ *
+ * Generated from protobuf field string name = 3;
+ */
+ protected $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $database
+ * The action's database (Google Cloud project ID) .
+ * @type string $schema
+ * The action's schema (BigQuery dataset ID), within `database`.
+ * @type string $name
+ * The action's name, within `database` and `schema`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The action's database (Google Cloud project ID) .
+ *
+ * Generated from protobuf field string database = 1;
+ * @return string
+ */
+ public function getDatabase()
+ {
+ return $this->database;
+ }
+
+ /**
+ * The action's database (Google Cloud project ID) .
+ *
+ * Generated from protobuf field string database = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setDatabase($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->database = $var;
+
+ return $this;
+ }
+
+ /**
+ * The action's schema (BigQuery dataset ID), within `database`.
+ *
+ * Generated from protobuf field string schema = 2;
+ * @return string
+ */
+ public function getSchema()
+ {
+ return $this->schema;
+ }
+
+ /**
+ * The action's schema (BigQuery dataset ID), within `database`.
+ *
+ * Generated from protobuf field string schema = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setSchema($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->schema = $var;
+
+ return $this;
+ }
+
+ /**
+ * The action's name, within `database` and `schema`.
+ *
+ * Generated from protobuf field string name = 3;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The action's name, within `database` and `schema`.
+ *
+ * Generated from protobuf field string name = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/UpdateRepositoryRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/UpdateRepositoryRequest.php
new file mode 100644
index 000000000000..c8cc67f4b8ef
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/UpdateRepositoryRequest.php
@@ -0,0 +1,141 @@
+google.cloud.dataform.v1beta1.UpdateRepositoryRequest
+ */
+class UpdateRepositoryRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. Specifies the fields to be updated in the repository. If left unset,
+ * all fields will be updated.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. The repository to update.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Repository repository = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $repository = null;
+
+ /**
+ * @param \Google\Cloud\Dataform\V1beta1\Repository $repository Required. The repository to update.
+ * @param \Google\Protobuf\FieldMask $updateMask Optional. Specifies the fields to be updated in the repository. If left unset,
+ * all fields will be updated.
+ *
+ * @return \Google\Cloud\Dataform\V1beta1\UpdateRepositoryRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\Dataform\V1beta1\Repository $repository, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setRepository($repository)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Optional. Specifies the fields to be updated in the repository. If left unset,
+ * all fields will be updated.
+ * @type \Google\Cloud\Dataform\V1beta1\Repository $repository
+ * Required. The repository to update.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. Specifies the fields to be updated in the repository. If left unset,
+ * all fields will be updated.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @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);
+ }
+
+ /**
+ * Optional. Specifies the fields to be updated in the repository. If left unset,
+ * all fields will be updated.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @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 repository to update.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Repository repository = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Dataform\V1beta1\Repository|null
+ */
+ public function getRepository()
+ {
+ return $this->repository;
+ }
+
+ public function hasRepository()
+ {
+ return isset($this->repository);
+ }
+
+ public function clearRepository()
+ {
+ unset($this->repository);
+ }
+
+ /**
+ * Required. The repository to update.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Repository repository = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Dataform\V1beta1\Repository $var
+ * @return $this
+ */
+ public function setRepository($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Dataform\V1beta1\Repository::class);
+ $this->repository = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WorkflowInvocation.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WorkflowInvocation.php
new file mode 100644
index 000000000000..2326bf69d751
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WorkflowInvocation.php
@@ -0,0 +1,227 @@
+google.cloud.dataform.v1beta1.WorkflowInvocation
+ */
+class WorkflowInvocation extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The workflow invocation's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $name = '';
+ /**
+ * Immutable. The name of the compilation result to compile. Must be in the format
+ * `projects/*/locations/*/repositories/*/compilationResults/*`.
+ *
+ * Generated from protobuf field string compilation_result = 2 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ */
+ protected $compilation_result = '';
+ /**
+ * Immutable. If left unset, a default InvocationConfig will be used.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.WorkflowInvocation.InvocationConfig invocation_config = 3 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $invocation_config = null;
+ /**
+ * Output only. This workflow invocation's current state.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.WorkflowInvocation.State state = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. This workflow invocation's timing details.
+ *
+ * Generated from protobuf field .google.type.Interval invocation_timing = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $invocation_timing = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. The workflow invocation's name.
+ * @type string $compilation_result
+ * Immutable. The name of the compilation result to compile. Must be in the format
+ * `projects/*/locations/*/repositories/*/compilationResults/*`.
+ * @type \Google\Cloud\Dataform\V1beta1\WorkflowInvocation\InvocationConfig $invocation_config
+ * Immutable. If left unset, a default InvocationConfig will be used.
+ * @type int $state
+ * Output only. This workflow invocation's current state.
+ * @type \Google\Type\Interval $invocation_timing
+ * Output only. This workflow invocation's timing details.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The workflow invocation's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. The workflow invocation's name.
+ *
+ * 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;
+ }
+
+ /**
+ * Immutable. The name of the compilation result to compile. Must be in the format
+ * `projects/*/locations/*/repositories/*/compilationResults/*`.
+ *
+ * Generated from protobuf field string compilation_result = 2 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getCompilationResult()
+ {
+ return $this->compilation_result;
+ }
+
+ /**
+ * Immutable. The name of the compilation result to compile. Must be in the format
+ * `projects/*/locations/*/repositories/*/compilationResults/*`.
+ *
+ * Generated from protobuf field string compilation_result = 2 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setCompilationResult($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->compilation_result = $var;
+
+ return $this;
+ }
+
+ /**
+ * Immutable. If left unset, a default InvocationConfig will be used.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.WorkflowInvocation.InvocationConfig invocation_config = 3 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return \Google\Cloud\Dataform\V1beta1\WorkflowInvocation\InvocationConfig|null
+ */
+ public function getInvocationConfig()
+ {
+ return $this->invocation_config;
+ }
+
+ public function hasInvocationConfig()
+ {
+ return isset($this->invocation_config);
+ }
+
+ public function clearInvocationConfig()
+ {
+ unset($this->invocation_config);
+ }
+
+ /**
+ * Immutable. If left unset, a default InvocationConfig will be used.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.WorkflowInvocation.InvocationConfig invocation_config = 3 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param \Google\Cloud\Dataform\V1beta1\WorkflowInvocation\InvocationConfig $var
+ * @return $this
+ */
+ public function setInvocationConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Dataform\V1beta1\WorkflowInvocation\InvocationConfig::class);
+ $this->invocation_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. This workflow invocation's current state.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.WorkflowInvocation.State state = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. This workflow invocation's current state.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.WorkflowInvocation.State state = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Dataform\V1beta1\WorkflowInvocation\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. This workflow invocation's timing details.
+ *
+ * Generated from protobuf field .google.type.Interval invocation_timing = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Type\Interval|null
+ */
+ public function getInvocationTiming()
+ {
+ return $this->invocation_timing;
+ }
+
+ public function hasInvocationTiming()
+ {
+ return isset($this->invocation_timing);
+ }
+
+ public function clearInvocationTiming()
+ {
+ unset($this->invocation_timing);
+ }
+
+ /**
+ * Output only. This workflow invocation's timing details.
+ *
+ * Generated from protobuf field .google.type.Interval invocation_timing = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Type\Interval $var
+ * @return $this
+ */
+ public function setInvocationTiming($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Interval::class);
+ $this->invocation_timing = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WorkflowInvocation/InvocationConfig.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WorkflowInvocation/InvocationConfig.php
new file mode 100644
index 000000000000..c91a11b1387c
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WorkflowInvocation/InvocationConfig.php
@@ -0,0 +1,216 @@
+google.cloud.dataform.v1beta1.WorkflowInvocation.InvocationConfig
+ */
+class InvocationConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Immutable. The set of action identifiers to include.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.Target included_targets = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ private $included_targets;
+ /**
+ * Immutable. The set of tags to include.
+ *
+ * Generated from protobuf field repeated string included_tags = 2 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ private $included_tags;
+ /**
+ * Immutable. When set to true, transitive dependencies of included actions will be
+ * executed.
+ *
+ * Generated from protobuf field bool transitive_dependencies_included = 3 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $transitive_dependencies_included = false;
+ /**
+ * Immutable. When set to true, transitive dependents of included actions will be
+ * executed.
+ *
+ * Generated from protobuf field bool transitive_dependents_included = 4 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $transitive_dependents_included = false;
+ /**
+ * Immutable. When set to true, any incremental tables will be fully refreshed.
+ *
+ * Generated from protobuf field bool fully_refresh_incremental_tables_enabled = 5 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $fully_refresh_incremental_tables_enabled = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Dataform\V1beta1\Target>|\Google\Protobuf\Internal\RepeatedField $included_targets
+ * Immutable. The set of action identifiers to include.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $included_tags
+ * Immutable. The set of tags to include.
+ * @type bool $transitive_dependencies_included
+ * Immutable. When set to true, transitive dependencies of included actions will be
+ * executed.
+ * @type bool $transitive_dependents_included
+ * Immutable. When set to true, transitive dependents of included actions will be
+ * executed.
+ * @type bool $fully_refresh_incremental_tables_enabled
+ * Immutable. When set to true, any incremental tables will be fully refreshed.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Immutable. The set of action identifiers to include.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.Target included_targets = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getIncludedTargets()
+ {
+ return $this->included_targets;
+ }
+
+ /**
+ * Immutable. The set of action identifiers to include.
+ *
+ * Generated from protobuf field repeated .google.cloud.dataform.v1beta1.Target included_targets = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param array<\Google\Cloud\Dataform\V1beta1\Target>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setIncludedTargets($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dataform\V1beta1\Target::class);
+ $this->included_targets = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Immutable. The set of tags to include.
+ *
+ * Generated from protobuf field repeated string included_tags = 2 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getIncludedTags()
+ {
+ return $this->included_tags;
+ }
+
+ /**
+ * Immutable. The set of tags to include.
+ *
+ * Generated from protobuf field repeated string included_tags = 2 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setIncludedTags($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->included_tags = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Immutable. When set to true, transitive dependencies of included actions will be
+ * executed.
+ *
+ * Generated from protobuf field bool transitive_dependencies_included = 3 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return bool
+ */
+ public function getTransitiveDependenciesIncluded()
+ {
+ return $this->transitive_dependencies_included;
+ }
+
+ /**
+ * Immutable. When set to true, transitive dependencies of included actions will be
+ * executed.
+ *
+ * Generated from protobuf field bool transitive_dependencies_included = 3 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param bool $var
+ * @return $this
+ */
+ public function setTransitiveDependenciesIncluded($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->transitive_dependencies_included = $var;
+
+ return $this;
+ }
+
+ /**
+ * Immutable. When set to true, transitive dependents of included actions will be
+ * executed.
+ *
+ * Generated from protobuf field bool transitive_dependents_included = 4 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return bool
+ */
+ public function getTransitiveDependentsIncluded()
+ {
+ return $this->transitive_dependents_included;
+ }
+
+ /**
+ * Immutable. When set to true, transitive dependents of included actions will be
+ * executed.
+ *
+ * Generated from protobuf field bool transitive_dependents_included = 4 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param bool $var
+ * @return $this
+ */
+ public function setTransitiveDependentsIncluded($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->transitive_dependents_included = $var;
+
+ return $this;
+ }
+
+ /**
+ * Immutable. When set to true, any incremental tables will be fully refreshed.
+ *
+ * Generated from protobuf field bool fully_refresh_incremental_tables_enabled = 5 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return bool
+ */
+ public function getFullyRefreshIncrementalTablesEnabled()
+ {
+ return $this->fully_refresh_incremental_tables_enabled;
+ }
+
+ /**
+ * Immutable. When set to true, any incremental tables will be fully refreshed.
+ *
+ * Generated from protobuf field bool fully_refresh_incremental_tables_enabled = 5 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param bool $var
+ * @return $this
+ */
+ public function setFullyRefreshIncrementalTablesEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->fully_refresh_incremental_tables_enabled = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(InvocationConfig::class, \Google\Cloud\Dataform\V1beta1\WorkflowInvocation_InvocationConfig::class);
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WorkflowInvocation/State.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WorkflowInvocation/State.php
new file mode 100644
index 000000000000..b5a080c906ee
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WorkflowInvocation/State.php
@@ -0,0 +1,86 @@
+google.cloud.dataform.v1beta1.WorkflowInvocation.State
+ */
+class State
+{
+ /**
+ * Default value. This value is unused.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The workflow invocation is currently running.
+ *
+ * Generated from protobuf enum RUNNING = 1;
+ */
+ const RUNNING = 1;
+ /**
+ * The workflow invocation succeeded. A terminal state.
+ *
+ * Generated from protobuf enum SUCCEEDED = 2;
+ */
+ const SUCCEEDED = 2;
+ /**
+ * The workflow invocation was cancelled. A terminal state.
+ *
+ * Generated from protobuf enum CANCELLED = 3;
+ */
+ const CANCELLED = 3;
+ /**
+ * The workflow invocation failed. A terminal state.
+ *
+ * Generated from protobuf enum FAILED = 4;
+ */
+ const FAILED = 4;
+ /**
+ * The workflow invocation is being cancelled, but some actions are still
+ * running.
+ *
+ * Generated from protobuf enum CANCELING = 5;
+ */
+ const CANCELING = 5;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::RUNNING => 'RUNNING',
+ self::SUCCEEDED => 'SUCCEEDED',
+ self::CANCELLED => 'CANCELLED',
+ self::FAILED => 'FAILED',
+ self::CANCELING => 'CANCELING',
+ ];
+
+ 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\Dataform\V1beta1\WorkflowInvocation_State::class);
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WorkflowInvocationAction.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WorkflowInvocationAction.php
new file mode 100644
index 000000000000..1c756c45f60d
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WorkflowInvocationAction.php
@@ -0,0 +1,297 @@
+google.cloud.dataform.v1beta1.WorkflowInvocationAction
+ */
+class WorkflowInvocationAction extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. This action's identifier. Unique within the workflow invocation.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Target target = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $target = null;
+ /**
+ * Output only. The action's identifier if the project had been compiled without any
+ * overrides configured. Unique within the compilation result.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Target canonical_target = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $canonical_target = null;
+ /**
+ * Output only. This action's current state.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.WorkflowInvocationAction.State state = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. If and only if action's state is FAILED a failure reason is set.
+ *
+ * Generated from protobuf field string failure_reason = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $failure_reason = '';
+ /**
+ * Output only. This action's timing details.
+ * `start_time` will be set if the action is in [RUNNING, SUCCEEDED,
+ * CANCELLED, FAILED] state.
+ * `end_time` will be set if the action is in [SUCCEEDED, CANCELLED, FAILED]
+ * state.
+ *
+ * Generated from protobuf field .google.type.Interval invocation_timing = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $invocation_timing = null;
+ /**
+ * Output only. The workflow action's bigquery action details.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.WorkflowInvocationAction.BigQueryAction bigquery_action = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $bigquery_action = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Dataform\V1beta1\Target $target
+ * Output only. This action's identifier. Unique within the workflow invocation.
+ * @type \Google\Cloud\Dataform\V1beta1\Target $canonical_target
+ * Output only. The action's identifier if the project had been compiled without any
+ * overrides configured. Unique within the compilation result.
+ * @type int $state
+ * Output only. This action's current state.
+ * @type string $failure_reason
+ * Output only. If and only if action's state is FAILED a failure reason is set.
+ * @type \Google\Type\Interval $invocation_timing
+ * Output only. This action's timing details.
+ * `start_time` will be set if the action is in [RUNNING, SUCCEEDED,
+ * CANCELLED, FAILED] state.
+ * `end_time` will be set if the action is in [SUCCEEDED, CANCELLED, FAILED]
+ * state.
+ * @type \Google\Cloud\Dataform\V1beta1\WorkflowInvocationAction\BigQueryAction $bigquery_action
+ * Output only. The workflow action's bigquery action details.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. This action's identifier. Unique within the workflow invocation.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Target target = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Dataform\V1beta1\Target|null
+ */
+ public function getTarget()
+ {
+ return $this->target;
+ }
+
+ public function hasTarget()
+ {
+ return isset($this->target);
+ }
+
+ public function clearTarget()
+ {
+ unset($this->target);
+ }
+
+ /**
+ * Output only. This action's identifier. Unique within the workflow invocation.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Target target = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Dataform\V1beta1\Target $var
+ * @return $this
+ */
+ public function setTarget($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Dataform\V1beta1\Target::class);
+ $this->target = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The action's identifier if the project had been compiled without any
+ * overrides configured. Unique within the compilation result.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Target canonical_target = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Dataform\V1beta1\Target|null
+ */
+ public function getCanonicalTarget()
+ {
+ return $this->canonical_target;
+ }
+
+ public function hasCanonicalTarget()
+ {
+ return isset($this->canonical_target);
+ }
+
+ public function clearCanonicalTarget()
+ {
+ unset($this->canonical_target);
+ }
+
+ /**
+ * Output only. The action's identifier if the project had been compiled without any
+ * overrides configured. Unique within the compilation result.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.Target canonical_target = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Dataform\V1beta1\Target $var
+ * @return $this
+ */
+ public function setCanonicalTarget($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Dataform\V1beta1\Target::class);
+ $this->canonical_target = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. This action's current state.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.WorkflowInvocationAction.State state = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. This action's current state.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.WorkflowInvocationAction.State state = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Dataform\V1beta1\WorkflowInvocationAction\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. If and only if action's state is FAILED a failure reason is set.
+ *
+ * Generated from protobuf field string failure_reason = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getFailureReason()
+ {
+ return $this->failure_reason;
+ }
+
+ /**
+ * Output only. If and only if action's state is FAILED a failure reason is set.
+ *
+ * Generated from protobuf field string failure_reason = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setFailureReason($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->failure_reason = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. This action's timing details.
+ * `start_time` will be set if the action is in [RUNNING, SUCCEEDED,
+ * CANCELLED, FAILED] state.
+ * `end_time` will be set if the action is in [SUCCEEDED, CANCELLED, FAILED]
+ * state.
+ *
+ * Generated from protobuf field .google.type.Interval invocation_timing = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Type\Interval|null
+ */
+ public function getInvocationTiming()
+ {
+ return $this->invocation_timing;
+ }
+
+ public function hasInvocationTiming()
+ {
+ return isset($this->invocation_timing);
+ }
+
+ public function clearInvocationTiming()
+ {
+ unset($this->invocation_timing);
+ }
+
+ /**
+ * Output only. This action's timing details.
+ * `start_time` will be set if the action is in [RUNNING, SUCCEEDED,
+ * CANCELLED, FAILED] state.
+ * `end_time` will be set if the action is in [SUCCEEDED, CANCELLED, FAILED]
+ * state.
+ *
+ * Generated from protobuf field .google.type.Interval invocation_timing = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Type\Interval $var
+ * @return $this
+ */
+ public function setInvocationTiming($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Interval::class);
+ $this->invocation_timing = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The workflow action's bigquery action details.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.WorkflowInvocationAction.BigQueryAction bigquery_action = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Dataform\V1beta1\WorkflowInvocationAction\BigQueryAction|null
+ */
+ public function getBigqueryAction()
+ {
+ return $this->bigquery_action;
+ }
+
+ public function hasBigqueryAction()
+ {
+ return isset($this->bigquery_action);
+ }
+
+ public function clearBigqueryAction()
+ {
+ unset($this->bigquery_action);
+ }
+
+ /**
+ * Output only. The workflow action's bigquery action details.
+ *
+ * Generated from protobuf field .google.cloud.dataform.v1beta1.WorkflowInvocationAction.BigQueryAction bigquery_action = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Dataform\V1beta1\WorkflowInvocationAction\BigQueryAction $var
+ * @return $this
+ */
+ public function setBigqueryAction($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Dataform\V1beta1\WorkflowInvocationAction\BigQueryAction::class);
+ $this->bigquery_action = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WorkflowInvocationAction/BigQueryAction.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WorkflowInvocationAction/BigQueryAction.php
new file mode 100644
index 000000000000..f65077ba1fea
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WorkflowInvocationAction/BigQueryAction.php
@@ -0,0 +1,70 @@
+google.cloud.dataform.v1beta1.WorkflowInvocationAction.BigQueryAction
+ */
+class BigQueryAction extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The generated BigQuery SQL script that will be executed.
+ *
+ * Generated from protobuf field string sql_script = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $sql_script = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $sql_script
+ * Output only. The generated BigQuery SQL script that will be executed.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The generated BigQuery SQL script that will be executed.
+ *
+ * Generated from protobuf field string sql_script = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getSqlScript()
+ {
+ return $this->sql_script;
+ }
+
+ /**
+ * Output only. The generated BigQuery SQL script that will be executed.
+ *
+ * Generated from protobuf field string sql_script = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setSqlScript($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->sql_script = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(BigQueryAction::class, \Google\Cloud\Dataform\V1beta1\WorkflowInvocationAction_BigQueryAction::class);
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WorkflowInvocationAction/State.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WorkflowInvocationAction/State.php
new file mode 100644
index 000000000000..e039c8c91ad3
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WorkflowInvocationAction/State.php
@@ -0,0 +1,94 @@
+google.cloud.dataform.v1beta1.WorkflowInvocationAction.State
+ */
+class State
+{
+ /**
+ * The action has not yet been considered for invocation.
+ *
+ * Generated from protobuf enum PENDING = 0;
+ */
+ const PENDING = 0;
+ /**
+ * The action is currently running.
+ *
+ * Generated from protobuf enum RUNNING = 1;
+ */
+ const RUNNING = 1;
+ /**
+ * Execution of the action was skipped because upstream dependencies did not
+ * all complete successfully. A terminal state.
+ *
+ * Generated from protobuf enum SKIPPED = 2;
+ */
+ const SKIPPED = 2;
+ /**
+ * Execution of the action was disabled as per the configuration of the
+ * corresponding compilation result action. A terminal state.
+ *
+ * Generated from protobuf enum DISABLED = 3;
+ */
+ const DISABLED = 3;
+ /**
+ * The action succeeded. A terminal state.
+ *
+ * Generated from protobuf enum SUCCEEDED = 4;
+ */
+ const SUCCEEDED = 4;
+ /**
+ * The action was cancelled. A terminal state.
+ *
+ * Generated from protobuf enum CANCELLED = 5;
+ */
+ const CANCELLED = 5;
+ /**
+ * The action failed. A terminal state.
+ *
+ * Generated from protobuf enum FAILED = 6;
+ */
+ const FAILED = 6;
+
+ private static $valueToName = [
+ self::PENDING => 'PENDING',
+ self::RUNNING => 'RUNNING',
+ self::SKIPPED => 'SKIPPED',
+ self::DISABLED => 'DISABLED',
+ self::SUCCEEDED => 'SUCCEEDED',
+ self::CANCELLED => 'CANCELLED',
+ 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\Dataform\V1beta1\WorkflowInvocationAction_State::class);
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WorkflowInvocationAction_BigQueryAction.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WorkflowInvocationAction_BigQueryAction.php
new file mode 100644
index 000000000000..59887d60cf60
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WorkflowInvocationAction_BigQueryAction.php
@@ -0,0 +1,16 @@
+google.cloud.dataform.v1beta1.Workspace
+ */
+class Workspace extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The workspace's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. The workspace's name.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The workspace's name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. The workspace's name.
+ *
+ * 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;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WriteFileRequest.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WriteFileRequest.php
new file mode 100644
index 000000000000..52c30bdc5692
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WriteFileRequest.php
@@ -0,0 +1,135 @@
+google.cloud.dataform.v1beta1.WriteFileRequest
+ */
+class WriteFileRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $workspace = '';
+ /**
+ * Required. The file.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $path = '';
+ /**
+ * Required. The file's contents.
+ *
+ * Generated from protobuf field bytes contents = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $contents = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $workspace
+ * Required. The workspace's name.
+ * @type string $path
+ * Required. The file.
+ * @type string $contents
+ * Required. The file's contents.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getWorkspace()
+ {
+ return $this->workspace;
+ }
+
+ /**
+ * Required. The workspace's name.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setWorkspace($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->workspace = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The file.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getPath()
+ {
+ return $this->path;
+ }
+
+ /**
+ * Required. The file.
+ *
+ * Generated from protobuf field string path = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setPath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->path = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The file's contents.
+ *
+ * Generated from protobuf field bytes contents = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getContents()
+ {
+ return $this->contents;
+ }
+
+ /**
+ * Required. The file's contents.
+ *
+ * Generated from protobuf field bytes contents = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setContents($var)
+ {
+ GPBUtil::checkString($var, False);
+ $this->contents = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WriteFileResponse.php b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WriteFileResponse.php
new file mode 100644
index 000000000000..610d4c47dfa2
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/proto/src/Google/Cloud/Dataform/V1beta1/WriteFileResponse.php
@@ -0,0 +1,33 @@
+google.cloud.dataform.v1beta1.WriteFileResponse
+ */
+class WriteFileResponse extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Dataform\V1Beta1\Dataform::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/cancel_workflow_invocation.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/cancel_workflow_invocation.php
new file mode 100644
index 000000000000..93b79c1720a1
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/cancel_workflow_invocation.php
@@ -0,0 +1,74 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ $dataformClient->cancelWorkflowInvocation($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 = DataformClient::workflowInvocationName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[WORKFLOW_INVOCATION]'
+ );
+
+ cancel_workflow_invocation_sample($formattedName);
+}
+// [END dataform_v1beta1_generated_Dataform_CancelWorkflowInvocation_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/commit_workspace_changes.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/commit_workspace_changes.php
new file mode 100644
index 000000000000..9094a1c4522c
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/commit_workspace_changes.php
@@ -0,0 +1,86 @@
+setName($authorName)
+ ->setEmailAddress($authorEmailAddress);
+ $request = (new CommitWorkspaceChangesRequest())
+ ->setName($formattedName)
+ ->setAuthor($author);
+
+ // Call the API and handle any network failures.
+ try {
+ $dataformClient->commitWorkspaceChanges($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 = DataformClient::workspaceName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[WORKSPACE]'
+ );
+ $authorName = '[NAME]';
+ $authorEmailAddress = '[EMAIL_ADDRESS]';
+
+ commit_workspace_changes_sample($formattedName, $authorName, $authorEmailAddress);
+}
+// [END dataform_v1beta1_generated_Dataform_CommitWorkspaceChanges_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/create_compilation_result.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/create_compilation_result.php
new file mode 100644
index 000000000000..d8bcf8d8fa1e
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/create_compilation_result.php
@@ -0,0 +1,74 @@
+setParent($formattedParent)
+ ->setCompilationResult($compilationResult);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var CompilationResult $response */
+ $response = $dataformClient->createCompilationResult($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 = DataformClient::repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+
+ create_compilation_result_sample($formattedParent);
+}
+// [END dataform_v1beta1_generated_Dataform_CreateCompilationResult_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/create_repository.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/create_repository.php
new file mode 100644
index 000000000000..5c8fb699f068
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/create_repository.php
@@ -0,0 +1,78 @@
+setParent($formattedParent)
+ ->setRepository($repository)
+ ->setRepositoryId($repositoryId);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Repository $response */
+ $response = $dataformClient->createRepository($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 = DataformClient::locationName('[PROJECT]', '[LOCATION]');
+ $repositoryId = '[REPOSITORY_ID]';
+
+ create_repository_sample($formattedParent, $repositoryId);
+}
+// [END dataform_v1beta1_generated_Dataform_CreateRepository_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/create_workflow_invocation.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/create_workflow_invocation.php
new file mode 100644
index 000000000000..154943e9c700
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/create_workflow_invocation.php
@@ -0,0 +1,74 @@
+setParent($formattedParent)
+ ->setWorkflowInvocation($workflowInvocation);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var WorkflowInvocation $response */
+ $response = $dataformClient->createWorkflowInvocation($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 = DataformClient::repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+
+ create_workflow_invocation_sample($formattedParent);
+}
+// [END dataform_v1beta1_generated_Dataform_CreateWorkflowInvocation_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/create_workspace.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/create_workspace.php
new file mode 100644
index 000000000000..e87e44e13694
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/create_workspace.php
@@ -0,0 +1,78 @@
+setParent($formattedParent)
+ ->setWorkspace($workspace)
+ ->setWorkspaceId($workspaceId);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Workspace $response */
+ $response = $dataformClient->createWorkspace($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 = DataformClient::repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $workspaceId = '[WORKSPACE_ID]';
+
+ create_workspace_sample($formattedParent, $workspaceId);
+}
+// [END dataform_v1beta1_generated_Dataform_CreateWorkspace_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/delete_repository.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/delete_repository.php
new file mode 100644
index 000000000000..6fc895b45215
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/delete_repository.php
@@ -0,0 +1,69 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ $dataformClient->deleteRepository($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 = DataformClient::repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+
+ delete_repository_sample($formattedName);
+}
+// [END dataform_v1beta1_generated_Dataform_DeleteRepository_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/delete_workflow_invocation.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/delete_workflow_invocation.php
new file mode 100644
index 000000000000..111b8969b589
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/delete_workflow_invocation.php
@@ -0,0 +1,74 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ $dataformClient->deleteWorkflowInvocation($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 = DataformClient::workflowInvocationName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[WORKFLOW_INVOCATION]'
+ );
+
+ delete_workflow_invocation_sample($formattedName);
+}
+// [END dataform_v1beta1_generated_Dataform_DeleteWorkflowInvocation_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/delete_workspace.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/delete_workspace.php
new file mode 100644
index 000000000000..24f3931ccf87
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/delete_workspace.php
@@ -0,0 +1,74 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ $dataformClient->deleteWorkspace($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 = DataformClient::workspaceName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[WORKSPACE]'
+ );
+
+ delete_workspace_sample($formattedName);
+}
+// [END dataform_v1beta1_generated_Dataform_DeleteWorkspace_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/fetch_file_diff.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/fetch_file_diff.php
new file mode 100644
index 000000000000..e92939b885b8
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/fetch_file_diff.php
@@ -0,0 +1,79 @@
+setWorkspace($formattedWorkspace)
+ ->setPath($path);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var FetchFileDiffResponse $response */
+ $response = $dataformClient->fetchFileDiff($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
+{
+ $formattedWorkspace = DataformClient::workspaceName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[WORKSPACE]'
+ );
+ $path = '[PATH]';
+
+ fetch_file_diff_sample($formattedWorkspace, $path);
+}
+// [END dataform_v1beta1_generated_Dataform_FetchFileDiff_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/fetch_file_git_statuses.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/fetch_file_git_statuses.php
new file mode 100644
index 000000000000..3c9d4c1a6e7e
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/fetch_file_git_statuses.php
@@ -0,0 +1,76 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var FetchFileGitStatusesResponse $response */
+ $response = $dataformClient->fetchFileGitStatuses($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 = DataformClient::workspaceName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[WORKSPACE]'
+ );
+
+ fetch_file_git_statuses_sample($formattedName);
+}
+// [END dataform_v1beta1_generated_Dataform_FetchFileGitStatuses_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/fetch_git_ahead_behind.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/fetch_git_ahead_behind.php
new file mode 100644
index 000000000000..d4c69639c056
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/fetch_git_ahead_behind.php
@@ -0,0 +1,76 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var FetchGitAheadBehindResponse $response */
+ $response = $dataformClient->fetchGitAheadBehind($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 = DataformClient::workspaceName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[WORKSPACE]'
+ );
+
+ fetch_git_ahead_behind_sample($formattedName);
+}
+// [END dataform_v1beta1_generated_Dataform_FetchGitAheadBehind_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/fetch_remote_branches.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/fetch_remote_branches.php
new file mode 100644
index 000000000000..3608ffd0969f
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/fetch_remote_branches.php
@@ -0,0 +1,71 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var FetchRemoteBranchesResponse $response */
+ $response = $dataformClient->fetchRemoteBranches($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 = DataformClient::repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+
+ fetch_remote_branches_sample($formattedName);
+}
+// [END dataform_v1beta1_generated_Dataform_FetchRemoteBranches_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/get_compilation_result.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/get_compilation_result.php
new file mode 100644
index 000000000000..4fcc6393d7ba
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/get_compilation_result.php
@@ -0,0 +1,76 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var CompilationResult $response */
+ $response = $dataformClient->getCompilationResult($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 = DataformClient::compilationResultName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[COMPILATION_RESULT]'
+ );
+
+ get_compilation_result_sample($formattedName);
+}
+// [END dataform_v1beta1_generated_Dataform_GetCompilationResult_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/get_location.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/get_location.php
new file mode 100644
index 000000000000..8a2e5f25ae60
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/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 dataform_v1beta1_generated_Dataform_GetLocation_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/get_repository.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/get_repository.php
new file mode 100644
index 000000000000..424d9c16876a
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/get_repository.php
@@ -0,0 +1,71 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Repository $response */
+ $response = $dataformClient->getRepository($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 = DataformClient::repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+
+ get_repository_sample($formattedName);
+}
+// [END dataform_v1beta1_generated_Dataform_GetRepository_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/get_workflow_invocation.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/get_workflow_invocation.php
new file mode 100644
index 000000000000..3b606e480758
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/get_workflow_invocation.php
@@ -0,0 +1,76 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var WorkflowInvocation $response */
+ $response = $dataformClient->getWorkflowInvocation($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 = DataformClient::workflowInvocationName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[WORKFLOW_INVOCATION]'
+ );
+
+ get_workflow_invocation_sample($formattedName);
+}
+// [END dataform_v1beta1_generated_Dataform_GetWorkflowInvocation_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/get_workspace.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/get_workspace.php
new file mode 100644
index 000000000000..32c39f4d1fa5
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/get_workspace.php
@@ -0,0 +1,76 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Workspace $response */
+ $response = $dataformClient->getWorkspace($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 = DataformClient::workspaceName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[WORKSPACE]'
+ );
+
+ get_workspace_sample($formattedName);
+}
+// [END dataform_v1beta1_generated_Dataform_GetWorkspace_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/install_npm_packages.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/install_npm_packages.php
new file mode 100644
index 000000000000..0a6bbfcb0a2b
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/install_npm_packages.php
@@ -0,0 +1,76 @@
+setWorkspace($formattedWorkspace);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var InstallNpmPackagesResponse $response */
+ $response = $dataformClient->installNpmPackages($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
+{
+ $formattedWorkspace = DataformClient::workspaceName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[WORKSPACE]'
+ );
+
+ install_npm_packages_sample($formattedWorkspace);
+}
+// [END dataform_v1beta1_generated_Dataform_InstallNpmPackages_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/list_compilation_results.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/list_compilation_results.php
new file mode 100644
index 000000000000..3bf6b760f658
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/list_compilation_results.php
@@ -0,0 +1,77 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $dataformClient->listCompilationResults($request);
+
+ /** @var CompilationResult $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 = DataformClient::repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+
+ list_compilation_results_sample($formattedParent);
+}
+// [END dataform_v1beta1_generated_Dataform_ListCompilationResults_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/list_locations.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/list_locations.php
new file mode 100644
index 000000000000..4eabf94975d2
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/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 dataform_v1beta1_generated_Dataform_ListLocations_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/list_repositories.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/list_repositories.php
new file mode 100644
index 000000000000..19130a6bc4ea
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/list_repositories.php
@@ -0,0 +1,77 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $dataformClient->listRepositories($request);
+
+ /** @var Repository $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 = DataformClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_repositories_sample($formattedParent);
+}
+// [END dataform_v1beta1_generated_Dataform_ListRepositories_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/list_workflow_invocations.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/list_workflow_invocations.php
new file mode 100644
index 000000000000..9a479725d542
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/list_workflow_invocations.php
@@ -0,0 +1,77 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $dataformClient->listWorkflowInvocations($request);
+
+ /** @var WorkflowInvocation $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 = DataformClient::repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+
+ list_workflow_invocations_sample($formattedParent);
+}
+// [END dataform_v1beta1_generated_Dataform_ListWorkflowInvocations_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/list_workspaces.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/list_workspaces.php
new file mode 100644
index 000000000000..341ab77511fc
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/list_workspaces.php
@@ -0,0 +1,77 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $dataformClient->listWorkspaces($request);
+
+ /** @var Workspace $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 = DataformClient::repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+
+ list_workspaces_sample($formattedParent);
+}
+// [END dataform_v1beta1_generated_Dataform_ListWorkspaces_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/make_directory.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/make_directory.php
new file mode 100644
index 000000000000..25ff47ad27aa
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/make_directory.php
@@ -0,0 +1,80 @@
+setWorkspace($formattedWorkspace)
+ ->setPath($path);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var MakeDirectoryResponse $response */
+ $response = $dataformClient->makeDirectory($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
+{
+ $formattedWorkspace = DataformClient::workspaceName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[WORKSPACE]'
+ );
+ $path = '[PATH]';
+
+ make_directory_sample($formattedWorkspace, $path);
+}
+// [END dataform_v1beta1_generated_Dataform_MakeDirectory_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/move_directory.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/move_directory.php
new file mode 100644
index 000000000000..d4d9093269dd
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/move_directory.php
@@ -0,0 +1,85 @@
+setWorkspace($formattedWorkspace)
+ ->setPath($path)
+ ->setNewPath($newPath);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var MoveDirectoryResponse $response */
+ $response = $dataformClient->moveDirectory($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
+{
+ $formattedWorkspace = DataformClient::workspaceName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[WORKSPACE]'
+ );
+ $path = '[PATH]';
+ $newPath = '[NEW_PATH]';
+
+ move_directory_sample($formattedWorkspace, $path, $newPath);
+}
+// [END dataform_v1beta1_generated_Dataform_MoveDirectory_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/move_file.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/move_file.php
new file mode 100644
index 000000000000..b78014c2d6d4
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/move_file.php
@@ -0,0 +1,82 @@
+setWorkspace($formattedWorkspace)
+ ->setPath($path)
+ ->setNewPath($newPath);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var MoveFileResponse $response */
+ $response = $dataformClient->moveFile($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
+{
+ $formattedWorkspace = DataformClient::workspaceName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[WORKSPACE]'
+ );
+ $path = '[PATH]';
+ $newPath = '[NEW_PATH]';
+
+ move_file_sample($formattedWorkspace, $path, $newPath);
+}
+// [END dataform_v1beta1_generated_Dataform_MoveFile_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/pull_git_commits.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/pull_git_commits.php
new file mode 100644
index 000000000000..0f6e6d698729
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/pull_git_commits.php
@@ -0,0 +1,86 @@
+setName($authorName)
+ ->setEmailAddress($authorEmailAddress);
+ $request = (new PullGitCommitsRequest())
+ ->setName($formattedName)
+ ->setAuthor($author);
+
+ // Call the API and handle any network failures.
+ try {
+ $dataformClient->pullGitCommits($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 = DataformClient::workspaceName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[WORKSPACE]'
+ );
+ $authorName = '[NAME]';
+ $authorEmailAddress = '[EMAIL_ADDRESS]';
+
+ pull_git_commits_sample($formattedName, $authorName, $authorEmailAddress);
+}
+// [END dataform_v1beta1_generated_Dataform_PullGitCommits_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/push_git_commits.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/push_git_commits.php
new file mode 100644
index 000000000000..1437eec6e54a
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/push_git_commits.php
@@ -0,0 +1,74 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ $dataformClient->pushGitCommits($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 = DataformClient::workspaceName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[WORKSPACE]'
+ );
+
+ push_git_commits_sample($formattedName);
+}
+// [END dataform_v1beta1_generated_Dataform_PushGitCommits_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/query_compilation_result_actions.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/query_compilation_result_actions.php
new file mode 100644
index 000000000000..3a82df8f5911
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/query_compilation_result_actions.php
@@ -0,0 +1,81 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $dataformClient->queryCompilationResultActions($request);
+
+ /** @var CompilationResultAction $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
+{
+ $formattedName = DataformClient::compilationResultName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[COMPILATION_RESULT]'
+ );
+
+ query_compilation_result_actions_sample($formattedName);
+}
+// [END dataform_v1beta1_generated_Dataform_QueryCompilationResultActions_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/query_directory_contents.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/query_directory_contents.php
new file mode 100644
index 000000000000..3ff1a5f3c355
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/query_directory_contents.php
@@ -0,0 +1,81 @@
+setWorkspace($formattedWorkspace);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $dataformClient->queryDirectoryContents($request);
+
+ /** @var DirectoryEntry $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
+{
+ $formattedWorkspace = DataformClient::workspaceName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[WORKSPACE]'
+ );
+
+ query_directory_contents_sample($formattedWorkspace);
+}
+// [END dataform_v1beta1_generated_Dataform_QueryDirectoryContents_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/query_workflow_invocation_actions.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/query_workflow_invocation_actions.php
new file mode 100644
index 000000000000..1ebc5ed8826a
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/query_workflow_invocation_actions.php
@@ -0,0 +1,81 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $dataformClient->queryWorkflowInvocationActions($request);
+
+ /** @var WorkflowInvocationAction $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
+{
+ $formattedName = DataformClient::workflowInvocationName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[WORKFLOW_INVOCATION]'
+ );
+
+ query_workflow_invocation_actions_sample($formattedName);
+}
+// [END dataform_v1beta1_generated_Dataform_QueryWorkflowInvocationActions_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/read_file.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/read_file.php
new file mode 100644
index 000000000000..47698c67e8b5
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/read_file.php
@@ -0,0 +1,79 @@
+setWorkspace($formattedWorkspace)
+ ->setPath($path);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var ReadFileResponse $response */
+ $response = $dataformClient->readFile($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
+{
+ $formattedWorkspace = DataformClient::workspaceName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[WORKSPACE]'
+ );
+ $path = '[PATH]';
+
+ read_file_sample($formattedWorkspace, $path);
+}
+// [END dataform_v1beta1_generated_Dataform_ReadFile_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/remove_directory.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/remove_directory.php
new file mode 100644
index 000000000000..3235af5b6415
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/remove_directory.php
@@ -0,0 +1,78 @@
+setWorkspace($formattedWorkspace)
+ ->setPath($path);
+
+ // Call the API and handle any network failures.
+ try {
+ $dataformClient->removeDirectory($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
+{
+ $formattedWorkspace = DataformClient::workspaceName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[WORKSPACE]'
+ );
+ $path = '[PATH]';
+
+ remove_directory_sample($formattedWorkspace, $path);
+}
+// [END dataform_v1beta1_generated_Dataform_RemoveDirectory_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/remove_file.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/remove_file.php
new file mode 100644
index 000000000000..5d9158b606c2
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/remove_file.php
@@ -0,0 +1,77 @@
+setWorkspace($formattedWorkspace)
+ ->setPath($path);
+
+ // Call the API and handle any network failures.
+ try {
+ $dataformClient->removeFile($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
+{
+ $formattedWorkspace = DataformClient::workspaceName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[WORKSPACE]'
+ );
+ $path = '[PATH]';
+
+ remove_file_sample($formattedWorkspace, $path);
+}
+// [END dataform_v1beta1_generated_Dataform_RemoveFile_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/reset_workspace_changes.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/reset_workspace_changes.php
new file mode 100644
index 000000000000..67305d6574f9
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/reset_workspace_changes.php
@@ -0,0 +1,74 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ $dataformClient->resetWorkspaceChanges($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 = DataformClient::workspaceName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[WORKSPACE]'
+ );
+
+ reset_workspace_changes_sample($formattedName);
+}
+// [END dataform_v1beta1_generated_Dataform_ResetWorkspaceChanges_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/update_repository.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/update_repository.php
new file mode 100644
index 000000000000..7860bd0cd09c
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/update_repository.php
@@ -0,0 +1,59 @@
+setRepository($repository);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Repository $response */
+ $response = $dataformClient->updateRepository($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END dataform_v1beta1_generated_Dataform_UpdateRepository_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/write_file.php b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/write_file.php
new file mode 100644
index 000000000000..6ac63e00e277
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/samples/V1beta1/DataformClient/write_file.php
@@ -0,0 +1,82 @@
+setWorkspace($formattedWorkspace)
+ ->setPath($path)
+ ->setContents($contents);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var WriteFileResponse $response */
+ $response = $dataformClient->writeFile($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
+{
+ $formattedWorkspace = DataformClient::workspaceName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[WORKSPACE]'
+ );
+ $path = '[PATH]';
+ $contents = '...';
+
+ write_file_sample($formattedWorkspace, $path, $contents);
+}
+// [END dataform_v1beta1_generated_Dataform_WriteFile_sync]
diff --git a/owl-bot-staging/Dataform/v1beta1/src/V1beta1/Client/BaseClient/DataformBaseClient.php b/owl-bot-staging/Dataform/v1beta1/src/V1beta1/Client/BaseClient/DataformBaseClient.php
new file mode 100644
index 000000000000..f03ea97cd316
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/src/V1beta1/Client/BaseClient/DataformBaseClient.php
@@ -0,0 +1,1393 @@
+ self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../../resources/dataform_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../../resources/dataform_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../../resources/dataform_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../../resources/dataform_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * compilation_result resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $repository
+ * @param string $compilationResult
+ *
+ * @return string The formatted compilation_result resource.
+ *
+ * @experimental
+ */
+ public static function compilationResultName(string $project, string $location, string $repository, string $compilationResult): string
+ {
+ return self::getPathTemplate('compilationResult')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'repository' => $repository,
+ 'compilation_result' => $compilationResult,
+ ]);
+ }
+
+ /**
+ * 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.
+ *
+ * @experimental
+ */
+ 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 repository
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $repository
+ *
+ * @return string The formatted repository resource.
+ *
+ * @experimental
+ */
+ public static function repositoryName(string $project, string $location, string $repository): string
+ {
+ return self::getPathTemplate('repository')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'repository' => $repository,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * secret_version resource.
+ *
+ * @param string $project
+ * @param string $secret
+ * @param string $version
+ *
+ * @return string The formatted secret_version resource.
+ *
+ * @experimental
+ */
+ public static function secretVersionName(string $project, string $secret, string $version): string
+ {
+ return self::getPathTemplate('secretVersion')->render([
+ 'project' => $project,
+ 'secret' => $secret,
+ 'version' => $version,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * workflow_invocation resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $repository
+ * @param string $workflowInvocation
+ *
+ * @return string The formatted workflow_invocation resource.
+ *
+ * @experimental
+ */
+ public static function workflowInvocationName(string $project, string $location, string $repository, string $workflowInvocation): string
+ {
+ return self::getPathTemplate('workflowInvocation')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'repository' => $repository,
+ 'workflow_invocation' => $workflowInvocation,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a workspace
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $repository
+ * @param string $workspace
+ *
+ * @return string The formatted workspace resource.
+ *
+ * @experimental
+ */
+ public static function workspaceName(string $project, string $location, string $repository, string $workspace): string
+ {
+ return self::getPathTemplate('workspace')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'repository' => $repository,
+ 'workspace' => $workspace,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - compilationResult: projects/{project}/locations/{location}/repositories/{repository}/compilationResults/{compilation_result}
+ * - location: projects/{project}/locations/{location}
+ * - repository: projects/{project}/locations/{location}/repositories/{repository}
+ * - secretVersion: projects/{project}/secrets/{secret}/versions/{version}
+ * - workflowInvocation: projects/{project}/locations/{location}/repositories/{repository}/workflowInvocations/{workflow_invocation}
+ * - workspace: projects/{project}/locations/{location}/repositories/{repository}/workspaces/{workspace}
+ *
+ * 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.
+ *
+ * @experimental
+ */
+ 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 'dataform.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);
+ }
+
+ /** 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);
+ }
+
+ /**
+ * Requests cancellation of a running WorkflowInvocation.
+ *
+ * The async variant is {@see self::cancelWorkflowInvocationAsync()} .
+ *
+ * @param CancelWorkflowInvocationRequest $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.
+ *
+ * @experimental
+ */
+ public function cancelWorkflowInvocation(CancelWorkflowInvocationRequest $request, array $callOptions = []): void
+ {
+ $this->startApiCall('CancelWorkflowInvocation', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Applies a Git commit for uncommitted files in a Workspace.
+ *
+ * The async variant is {@see self::commitWorkspaceChangesAsync()} .
+ *
+ * @param CommitWorkspaceChangesRequest $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.
+ *
+ * @experimental
+ */
+ public function commitWorkspaceChanges(CommitWorkspaceChangesRequest $request, array $callOptions = []): void
+ {
+ $this->startApiCall('CommitWorkspaceChanges', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates a new CompilationResult in a given project and location.
+ *
+ * The async variant is {@see self::createCompilationResultAsync()} .
+ *
+ * @param CreateCompilationResultRequest $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 CompilationResult
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function createCompilationResult(CreateCompilationResultRequest $request, array $callOptions = []): CompilationResult
+ {
+ return $this->startApiCall('CreateCompilationResult', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates a new Repository in a given project and location.
+ *
+ * The async variant is {@see self::createRepositoryAsync()} .
+ *
+ * @param CreateRepositoryRequest $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 Repository
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function createRepository(CreateRepositoryRequest $request, array $callOptions = []): Repository
+ {
+ return $this->startApiCall('CreateRepository', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates a new WorkflowInvocation in a given Repository.
+ *
+ * The async variant is {@see self::createWorkflowInvocationAsync()} .
+ *
+ * @param CreateWorkflowInvocationRequest $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 WorkflowInvocation
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function createWorkflowInvocation(CreateWorkflowInvocationRequest $request, array $callOptions = []): WorkflowInvocation
+ {
+ return $this->startApiCall('CreateWorkflowInvocation', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates a new Workspace in a given Repository.
+ *
+ * The async variant is {@see self::createWorkspaceAsync()} .
+ *
+ * @param CreateWorkspaceRequest $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 Workspace
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function createWorkspace(CreateWorkspaceRequest $request, array $callOptions = []): Workspace
+ {
+ return $this->startApiCall('CreateWorkspace', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a single Repository.
+ *
+ * The async variant is {@see self::deleteRepositoryAsync()} .
+ *
+ * @param DeleteRepositoryRequest $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.
+ *
+ * @experimental
+ */
+ public function deleteRepository(DeleteRepositoryRequest $request, array $callOptions = []): void
+ {
+ $this->startApiCall('DeleteRepository', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a single WorkflowInvocation.
+ *
+ * The async variant is {@see self::deleteWorkflowInvocationAsync()} .
+ *
+ * @param DeleteWorkflowInvocationRequest $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.
+ *
+ * @experimental
+ */
+ public function deleteWorkflowInvocation(DeleteWorkflowInvocationRequest $request, array $callOptions = []): void
+ {
+ $this->startApiCall('DeleteWorkflowInvocation', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a single Workspace.
+ *
+ * The async variant is {@see self::deleteWorkspaceAsync()} .
+ *
+ * @param DeleteWorkspaceRequest $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.
+ *
+ * @experimental
+ */
+ public function deleteWorkspace(DeleteWorkspaceRequest $request, array $callOptions = []): void
+ {
+ $this->startApiCall('DeleteWorkspace', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Fetches Git diff for an uncommitted file in a Workspace.
+ *
+ * The async variant is {@see self::fetchFileDiffAsync()} .
+ *
+ * @param FetchFileDiffRequest $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 FetchFileDiffResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function fetchFileDiff(FetchFileDiffRequest $request, array $callOptions = []): FetchFileDiffResponse
+ {
+ return $this->startApiCall('FetchFileDiff', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Fetches Git statuses for the files in a Workspace.
+ *
+ * The async variant is {@see self::fetchFileGitStatusesAsync()} .
+ *
+ * @param FetchFileGitStatusesRequest $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 FetchFileGitStatusesResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function fetchFileGitStatuses(FetchFileGitStatusesRequest $request, array $callOptions = []): FetchFileGitStatusesResponse
+ {
+ return $this->startApiCall('FetchFileGitStatuses', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Fetches Git ahead/behind against a remote branch.
+ *
+ * The async variant is {@see self::fetchGitAheadBehindAsync()} .
+ *
+ * @param FetchGitAheadBehindRequest $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 FetchGitAheadBehindResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function fetchGitAheadBehind(FetchGitAheadBehindRequest $request, array $callOptions = []): FetchGitAheadBehindResponse
+ {
+ return $this->startApiCall('FetchGitAheadBehind', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Fetches a Repository's remote branches.
+ *
+ * The async variant is {@see self::fetchRemoteBranchesAsync()} .
+ *
+ * @param FetchRemoteBranchesRequest $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 FetchRemoteBranchesResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function fetchRemoteBranches(FetchRemoteBranchesRequest $request, array $callOptions = []): FetchRemoteBranchesResponse
+ {
+ return $this->startApiCall('FetchRemoteBranches', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Fetches a single CompilationResult.
+ *
+ * The async variant is {@see self::getCompilationResultAsync()} .
+ *
+ * @param GetCompilationResultRequest $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 CompilationResult
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function getCompilationResult(GetCompilationResultRequest $request, array $callOptions = []): CompilationResult
+ {
+ return $this->startApiCall('GetCompilationResult', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Fetches a single Repository.
+ *
+ * The async variant is {@see self::getRepositoryAsync()} .
+ *
+ * @param GetRepositoryRequest $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 Repository
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function getRepository(GetRepositoryRequest $request, array $callOptions = []): Repository
+ {
+ return $this->startApiCall('GetRepository', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Fetches a single WorkflowInvocation.
+ *
+ * The async variant is {@see self::getWorkflowInvocationAsync()} .
+ *
+ * @param GetWorkflowInvocationRequest $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 WorkflowInvocation
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function getWorkflowInvocation(GetWorkflowInvocationRequest $request, array $callOptions = []): WorkflowInvocation
+ {
+ return $this->startApiCall('GetWorkflowInvocation', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Fetches a single Workspace.
+ *
+ * The async variant is {@see self::getWorkspaceAsync()} .
+ *
+ * @param GetWorkspaceRequest $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 Workspace
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function getWorkspace(GetWorkspaceRequest $request, array $callOptions = []): Workspace
+ {
+ return $this->startApiCall('GetWorkspace', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Installs dependency NPM packages (inside a Workspace).
+ *
+ * The async variant is {@see self::installNpmPackagesAsync()} .
+ *
+ * @param InstallNpmPackagesRequest $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 InstallNpmPackagesResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function installNpmPackages(InstallNpmPackagesRequest $request, array $callOptions = []): InstallNpmPackagesResponse
+ {
+ return $this->startApiCall('InstallNpmPackages', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Lists CompilationResults in a given Repository.
+ *
+ * The async variant is {@see self::listCompilationResultsAsync()} .
+ *
+ * @param ListCompilationResultsRequest $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.
+ *
+ * @experimental
+ */
+ public function listCompilationResults(ListCompilationResultsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListCompilationResults', $request, $callOptions);
+ }
+
+ /**
+ * Lists Repositories in a given project and location.
+ *
+ * The async variant is {@see self::listRepositoriesAsync()} .
+ *
+ * @param ListRepositoriesRequest $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.
+ *
+ * @experimental
+ */
+ public function listRepositories(ListRepositoriesRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListRepositories', $request, $callOptions);
+ }
+
+ /**
+ * Lists WorkflowInvocations in a given Repository.
+ *
+ * The async variant is {@see self::listWorkflowInvocationsAsync()} .
+ *
+ * @param ListWorkflowInvocationsRequest $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.
+ *
+ * @experimental
+ */
+ public function listWorkflowInvocations(ListWorkflowInvocationsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListWorkflowInvocations', $request, $callOptions);
+ }
+
+ /**
+ * Lists Workspaces in a given Repository.
+ *
+ * The async variant is {@see self::listWorkspacesAsync()} .
+ *
+ * @param ListWorkspacesRequest $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.
+ *
+ * @experimental
+ */
+ public function listWorkspaces(ListWorkspacesRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListWorkspaces', $request, $callOptions);
+ }
+
+ /**
+ * Creates a directory inside a Workspace.
+ *
+ * The async variant is {@see self::makeDirectoryAsync()} .
+ *
+ * @param MakeDirectoryRequest $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 MakeDirectoryResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function makeDirectory(MakeDirectoryRequest $request, array $callOptions = []): MakeDirectoryResponse
+ {
+ return $this->startApiCall('MakeDirectory', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Moves a directory (inside a Workspace), and all of its contents, to a new
+ * location.
+ *
+ * The async variant is {@see self::moveDirectoryAsync()} .
+ *
+ * @param MoveDirectoryRequest $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 MoveDirectoryResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function moveDirectory(MoveDirectoryRequest $request, array $callOptions = []): MoveDirectoryResponse
+ {
+ return $this->startApiCall('MoveDirectory', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Moves a file (inside a Workspace) to a new location.
+ *
+ * The async variant is {@see self::moveFileAsync()} .
+ *
+ * @param MoveFileRequest $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 MoveFileResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function moveFile(MoveFileRequest $request, array $callOptions = []): MoveFileResponse
+ {
+ return $this->startApiCall('MoveFile', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Pulls Git commits from the Repository's remote into a Workspace.
+ *
+ * The async variant is {@see self::pullGitCommitsAsync()} .
+ *
+ * @param PullGitCommitsRequest $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.
+ *
+ * @experimental
+ */
+ public function pullGitCommits(PullGitCommitsRequest $request, array $callOptions = []): void
+ {
+ $this->startApiCall('PullGitCommits', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Pushes Git commits from a Workspace to the Repository's remote.
+ *
+ * The async variant is {@see self::pushGitCommitsAsync()} .
+ *
+ * @param PushGitCommitsRequest $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.
+ *
+ * @experimental
+ */
+ public function pushGitCommits(PushGitCommitsRequest $request, array $callOptions = []): void
+ {
+ $this->startApiCall('PushGitCommits', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Returns CompilationResultActions in a given CompilationResult.
+ *
+ * The async variant is {@see self::queryCompilationResultActionsAsync()} .
+ *
+ * @param QueryCompilationResultActionsRequest $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.
+ *
+ * @experimental
+ */
+ public function queryCompilationResultActions(QueryCompilationResultActionsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('QueryCompilationResultActions', $request, $callOptions);
+ }
+
+ /**
+ * Returns the contents of a given Workspace directory.
+ *
+ * The async variant is {@see self::queryDirectoryContentsAsync()} .
+ *
+ * @param QueryDirectoryContentsRequest $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.
+ *
+ * @experimental
+ */
+ public function queryDirectoryContents(QueryDirectoryContentsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('QueryDirectoryContents', $request, $callOptions);
+ }
+
+ /**
+ * Returns WorkflowInvocationActions in a given WorkflowInvocation.
+ *
+ * The async variant is {@see self::queryWorkflowInvocationActionsAsync()} .
+ *
+ * @param QueryWorkflowInvocationActionsRequest $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.
+ *
+ * @experimental
+ */
+ public function queryWorkflowInvocationActions(QueryWorkflowInvocationActionsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('QueryWorkflowInvocationActions', $request, $callOptions);
+ }
+
+ /**
+ * Returns the contents of a file (inside a Workspace).
+ *
+ * The async variant is {@see self::readFileAsync()} .
+ *
+ * @param ReadFileRequest $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 ReadFileResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function readFile(ReadFileRequest $request, array $callOptions = []): ReadFileResponse
+ {
+ return $this->startApiCall('ReadFile', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a directory (inside a Workspace) and all of its contents.
+ *
+ * The async variant is {@see self::removeDirectoryAsync()} .
+ *
+ * @param RemoveDirectoryRequest $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.
+ *
+ * @experimental
+ */
+ public function removeDirectory(RemoveDirectoryRequest $request, array $callOptions = []): void
+ {
+ $this->startApiCall('RemoveDirectory', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a file (inside a Workspace).
+ *
+ * The async variant is {@see self::removeFileAsync()} .
+ *
+ * @param RemoveFileRequest $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.
+ *
+ * @experimental
+ */
+ public function removeFile(RemoveFileRequest $request, array $callOptions = []): void
+ {
+ $this->startApiCall('RemoveFile', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Performs a Git reset for uncommitted files in a Workspace.
+ *
+ * The async variant is {@see self::resetWorkspaceChangesAsync()} .
+ *
+ * @param ResetWorkspaceChangesRequest $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.
+ *
+ * @experimental
+ */
+ public function resetWorkspaceChanges(ResetWorkspaceChangesRequest $request, array $callOptions = []): void
+ {
+ $this->startApiCall('ResetWorkspaceChanges', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates a single Repository.
+ *
+ * The async variant is {@see self::updateRepositoryAsync()} .
+ *
+ * @param UpdateRepositoryRequest $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 Repository
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function updateRepository(UpdateRepositoryRequest $request, array $callOptions = []): Repository
+ {
+ return $this->startApiCall('UpdateRepository', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Writes to a file (inside a Workspace).
+ *
+ * The async variant is {@see self::writeFileAsync()} .
+ *
+ * @param WriteFileRequest $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 WriteFileResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function writeFile(WriteFileRequest $request, array $callOptions = []): WriteFileResponse
+ {
+ return $this->startApiCall('WriteFile', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets information about a location.
+ *
+ * The async variant is {@see self::getLocationAsync()} .
+ *
+ * @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.
+ *
+ * @experimental
+ */
+ 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 self::listLocationsAsync()} .
+ *
+ * @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.
+ *
+ * @experimental
+ */
+ public function listLocations(ListLocationsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListLocations', $request, $callOptions);
+ }
+}
diff --git a/owl-bot-staging/Dataform/v1beta1/src/V1beta1/Client/DataformClient.php b/owl-bot-staging/Dataform/v1beta1/src/V1beta1/Client/DataformClient.php
new file mode 100644
index 000000000000..7346334af3fe
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/src/V1beta1/Client/DataformClient.php
@@ -0,0 +1,42 @@
+workflowInvocationName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKFLOW_INVOCATION]');
+ * $dataformClient->cancelWorkflowInvocation($formattedName);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * Many parameters require resource names to be formatted in a particular way. To
+ * assist with these names, this class includes a format method for each type of
+ * name, and additionally a parseName method to extract the individual identifiers
+ * contained within formatted names that are returned by the API.
+ *
+ * @experimental
+ */
+class DataformGapicClient
+{
+ use GapicClientTrait;
+
+ /** The name of the service. */
+ const SERVICE_NAME = 'google.cloud.dataform.v1beta1.Dataform';
+
+ /** The default address of the service. */
+ const SERVICE_ADDRESS = 'dataform.googleapis.com';
+
+ /** 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 $compilationResultNameTemplate;
+
+ private static $locationNameTemplate;
+
+ private static $repositoryNameTemplate;
+
+ private static $secretVersionNameTemplate;
+
+ private static $workflowInvocationNameTemplate;
+
+ private static $workspaceNameTemplate;
+
+ private static $pathTemplateMap;
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/dataform_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/dataform_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/dataform_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/dataform_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ private static function getCompilationResultNameTemplate()
+ {
+ if (self::$compilationResultNameTemplate == null) {
+ self::$compilationResultNameTemplate = new PathTemplate('projects/{project}/locations/{location}/repositories/{repository}/compilationResults/{compilation_result}');
+ }
+
+ return self::$compilationResultNameTemplate;
+ }
+
+ private static function getLocationNameTemplate()
+ {
+ if (self::$locationNameTemplate == null) {
+ self::$locationNameTemplate = new PathTemplate('projects/{project}/locations/{location}');
+ }
+
+ return self::$locationNameTemplate;
+ }
+
+ private static function getRepositoryNameTemplate()
+ {
+ if (self::$repositoryNameTemplate == null) {
+ self::$repositoryNameTemplate = new PathTemplate('projects/{project}/locations/{location}/repositories/{repository}');
+ }
+
+ return self::$repositoryNameTemplate;
+ }
+
+ private static function getSecretVersionNameTemplate()
+ {
+ if (self::$secretVersionNameTemplate == null) {
+ self::$secretVersionNameTemplate = new PathTemplate('projects/{project}/secrets/{secret}/versions/{version}');
+ }
+
+ return self::$secretVersionNameTemplate;
+ }
+
+ private static function getWorkflowInvocationNameTemplate()
+ {
+ if (self::$workflowInvocationNameTemplate == null) {
+ self::$workflowInvocationNameTemplate = new PathTemplate('projects/{project}/locations/{location}/repositories/{repository}/workflowInvocations/{workflow_invocation}');
+ }
+
+ return self::$workflowInvocationNameTemplate;
+ }
+
+ private static function getWorkspaceNameTemplate()
+ {
+ if (self::$workspaceNameTemplate == null) {
+ self::$workspaceNameTemplate = new PathTemplate('projects/{project}/locations/{location}/repositories/{repository}/workspaces/{workspace}');
+ }
+
+ return self::$workspaceNameTemplate;
+ }
+
+ private static function getPathTemplateMap()
+ {
+ if (self::$pathTemplateMap == null) {
+ self::$pathTemplateMap = [
+ 'compilationResult' => self::getCompilationResultNameTemplate(),
+ 'location' => self::getLocationNameTemplate(),
+ 'repository' => self::getRepositoryNameTemplate(),
+ 'secretVersion' => self::getSecretVersionNameTemplate(),
+ 'workflowInvocation' => self::getWorkflowInvocationNameTemplate(),
+ 'workspace' => self::getWorkspaceNameTemplate(),
+ ];
+ }
+
+ return self::$pathTemplateMap;
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * compilation_result resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $repository
+ * @param string $compilationResult
+ *
+ * @return string The formatted compilation_result resource.
+ *
+ * @experimental
+ */
+ public static function compilationResultName($project, $location, $repository, $compilationResult)
+ {
+ return self::getCompilationResultNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'repository' => $repository,
+ 'compilation_result' => $compilationResult,
+ ]);
+ }
+
+ /**
+ * 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.
+ *
+ * @experimental
+ */
+ public static function locationName($project, $location)
+ {
+ return self::getLocationNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a repository
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $repository
+ *
+ * @return string The formatted repository resource.
+ *
+ * @experimental
+ */
+ public static function repositoryName($project, $location, $repository)
+ {
+ return self::getRepositoryNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'repository' => $repository,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * secret_version resource.
+ *
+ * @param string $project
+ * @param string $secret
+ * @param string $version
+ *
+ * @return string The formatted secret_version resource.
+ *
+ * @experimental
+ */
+ public static function secretVersionName($project, $secret, $version)
+ {
+ return self::getSecretVersionNameTemplate()->render([
+ 'project' => $project,
+ 'secret' => $secret,
+ 'version' => $version,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * workflow_invocation resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $repository
+ * @param string $workflowInvocation
+ *
+ * @return string The formatted workflow_invocation resource.
+ *
+ * @experimental
+ */
+ public static function workflowInvocationName($project, $location, $repository, $workflowInvocation)
+ {
+ return self::getWorkflowInvocationNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'repository' => $repository,
+ 'workflow_invocation' => $workflowInvocation,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a workspace
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $repository
+ * @param string $workspace
+ *
+ * @return string The formatted workspace resource.
+ *
+ * @experimental
+ */
+ public static function workspaceName($project, $location, $repository, $workspace)
+ {
+ return self::getWorkspaceNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'repository' => $repository,
+ 'workspace' => $workspace,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - compilationResult: projects/{project}/locations/{location}/repositories/{repository}/compilationResults/{compilation_result}
+ * - location: projects/{project}/locations/{location}
+ * - repository: projects/{project}/locations/{location}/repositories/{repository}
+ * - secretVersion: projects/{project}/secrets/{secret}/versions/{version}
+ * - workflowInvocation: projects/{project}/locations/{location}/repositories/{repository}/workflowInvocations/{workflow_invocation}
+ * - workspace: projects/{project}/locations/{location}/repositories/{repository}/workspaces/{workspace}
+ *
+ * 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.
+ *
+ * @experimental
+ */
+ public static function parseName($formattedName, $template = null)
+ {
+ $templateMap = self::getPathTemplateMap();
+ if ($template) {
+ if (!isset($templateMap[$template])) {
+ throw new ValidationException("Template name $template does not exist");
+ }
+
+ return $templateMap[$template]->match($formattedName);
+ }
+
+ foreach ($templateMap as $templateName => $pathTemplate) {
+ try {
+ return $pathTemplate->match($formattedName);
+ } catch (ValidationException $ex) {
+ // Swallow the exception to continue trying other path templates
+ }
+ }
+
+ throw new ValidationException("Input did not match any known format. Input: $formattedName");
+ }
+
+ /**
+ * 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 'dataform.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);
+ }
+
+ /**
+ * Requests cancellation of a running WorkflowInvocation.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedName = $dataformClient->workflowInvocationName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKFLOW_INVOCATION]');
+ * $dataformClient->cancelWorkflowInvocation($formattedName);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The workflow invocation resource's name.
+ * @param array $optionalArgs {
+ * 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 if the remote call fails
+ *
+ * @experimental
+ */
+ public function cancelWorkflowInvocation($name, array $optionalArgs = [])
+ {
+ $request = new CancelWorkflowInvocationRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('CancelWorkflowInvocation', GPBEmpty::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Applies a Git commit for uncommitted files in a Workspace.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedName = $dataformClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ * $author = new CommitAuthor();
+ * $dataformClient->commitWorkspaceChanges($formattedName, $author);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The workspace's name.
+ * @param CommitAuthor $author Required. The commit's author.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $commitMessage
+ * Optional. The commit's message.
+ * @type string[] $paths
+ * Optional. Full file paths to commit including filename, rooted at workspace root. If
+ * left empty, all files will be committed.
+ * @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 if the remote call fails
+ *
+ * @experimental
+ */
+ public function commitWorkspaceChanges($name, $author, array $optionalArgs = [])
+ {
+ $request = new CommitWorkspaceChangesRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $request->setAuthor($author);
+ $requestParamHeaders['name'] = $name;
+ if (isset($optionalArgs['commitMessage'])) {
+ $request->setCommitMessage($optionalArgs['commitMessage']);
+ }
+
+ if (isset($optionalArgs['paths'])) {
+ $request->setPaths($optionalArgs['paths']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('CommitWorkspaceChanges', GPBEmpty::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Creates a new CompilationResult in a given project and location.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedParent = $dataformClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ * $compilationResult = new CompilationResult();
+ * $response = $dataformClient->createCompilationResult($formattedParent, $compilationResult);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The repository in which to create the compilation result. Must be in the
+ * format `projects/*/locations/*/repositories/*`.
+ * @param CompilationResult $compilationResult Required. The compilation result to create.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Dataform\V1beta1\CompilationResult
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function createCompilationResult($parent, $compilationResult, array $optionalArgs = [])
+ {
+ $request = new CreateCompilationResultRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setCompilationResult($compilationResult);
+ $requestParamHeaders['parent'] = $parent;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('CreateCompilationResult', CompilationResult::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Creates a new Repository in a given project and location.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedParent = $dataformClient->locationName('[PROJECT]', '[LOCATION]');
+ * $repository = new Repository();
+ * $repositoryId = 'repository_id';
+ * $response = $dataformClient->createRepository($formattedParent, $repository, $repositoryId);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The location in which to create the repository. Must be in the format
+ * `projects/*/locations/*`.
+ * @param Repository $repository Required. The repository to create.
+ * @param string $repositoryId Required. The ID to use for the repository, which will become the final component of
+ * the repository's resource name.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Dataform\V1beta1\Repository
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function createRepository($parent, $repository, $repositoryId, array $optionalArgs = [])
+ {
+ $request = new CreateRepositoryRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setRepository($repository);
+ $request->setRepositoryId($repositoryId);
+ $requestParamHeaders['parent'] = $parent;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('CreateRepository', Repository::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Creates a new WorkflowInvocation in a given Repository.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedParent = $dataformClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ * $workflowInvocation = new WorkflowInvocation();
+ * $response = $dataformClient->createWorkflowInvocation($formattedParent, $workflowInvocation);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The repository in which to create the workflow invocation. Must be in the
+ * format `projects/*/locations/*/repositories/*`.
+ * @param WorkflowInvocation $workflowInvocation Required. The workflow invocation resource to create.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Dataform\V1beta1\WorkflowInvocation
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function createWorkflowInvocation($parent, $workflowInvocation, array $optionalArgs = [])
+ {
+ $request = new CreateWorkflowInvocationRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setWorkflowInvocation($workflowInvocation);
+ $requestParamHeaders['parent'] = $parent;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('CreateWorkflowInvocation', WorkflowInvocation::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Creates a new Workspace in a given Repository.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedParent = $dataformClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ * $workspace = new Workspace();
+ * $workspaceId = 'workspace_id';
+ * $response = $dataformClient->createWorkspace($formattedParent, $workspace, $workspaceId);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The repository in which to create the workspace. Must be in the format
+ * `projects/*/locations/*/repositories/*`.
+ * @param Workspace $workspace Required. The workspace to create.
+ * @param string $workspaceId Required. The ID to use for the workspace, which will become the final component of
+ * the workspace's resource name.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Dataform\V1beta1\Workspace
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function createWorkspace($parent, $workspace, $workspaceId, array $optionalArgs = [])
+ {
+ $request = new CreateWorkspaceRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setWorkspace($workspace);
+ $request->setWorkspaceId($workspaceId);
+ $requestParamHeaders['parent'] = $parent;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('CreateWorkspace', Workspace::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Deletes a single Repository.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedName = $dataformClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ * $dataformClient->deleteRepository($formattedName);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The repository's name.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type bool $force
+ * If set to true, any child resources of this repository will also be
+ * deleted. (Otherwise, the request will only succeed if the repository has no
+ * child resources.)
+ * @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 if the remote call fails
+ *
+ * @experimental
+ */
+ public function deleteRepository($name, array $optionalArgs = [])
+ {
+ $request = new DeleteRepositoryRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ if (isset($optionalArgs['force'])) {
+ $request->setForce($optionalArgs['force']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('DeleteRepository', GPBEmpty::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Deletes a single WorkflowInvocation.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedName = $dataformClient->workflowInvocationName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKFLOW_INVOCATION]');
+ * $dataformClient->deleteWorkflowInvocation($formattedName);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The workflow invocation resource's name.
+ * @param array $optionalArgs {
+ * 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 if the remote call fails
+ *
+ * @experimental
+ */
+ public function deleteWorkflowInvocation($name, array $optionalArgs = [])
+ {
+ $request = new DeleteWorkflowInvocationRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('DeleteWorkflowInvocation', GPBEmpty::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Deletes a single Workspace.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedName = $dataformClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ * $dataformClient->deleteWorkspace($formattedName);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The workspace resource's name.
+ * @param array $optionalArgs {
+ * 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 if the remote call fails
+ *
+ * @experimental
+ */
+ public function deleteWorkspace($name, array $optionalArgs = [])
+ {
+ $request = new DeleteWorkspaceRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('DeleteWorkspace', GPBEmpty::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Fetches Git diff for an uncommitted file in a Workspace.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedWorkspace = $dataformClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ * $path = 'path';
+ * $response = $dataformClient->fetchFileDiff($formattedWorkspace, $path);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $workspace Required. The workspace's name.
+ * @param string $path Required. The file's full path including filename, relative to the workspace root.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Dataform\V1beta1\FetchFileDiffResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function fetchFileDiff($workspace, $path, array $optionalArgs = [])
+ {
+ $request = new FetchFileDiffRequest();
+ $requestParamHeaders = [];
+ $request->setWorkspace($workspace);
+ $request->setPath($path);
+ $requestParamHeaders['workspace'] = $workspace;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('FetchFileDiff', FetchFileDiffResponse::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Fetches Git statuses for the files in a Workspace.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedName = $dataformClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ * $response = $dataformClient->fetchFileGitStatuses($formattedName);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The workspace's name.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Dataform\V1beta1\FetchFileGitStatusesResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function fetchFileGitStatuses($name, array $optionalArgs = [])
+ {
+ $request = new FetchFileGitStatusesRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('FetchFileGitStatuses', FetchFileGitStatusesResponse::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Fetches Git ahead/behind against a remote branch.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedName = $dataformClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ * $response = $dataformClient->fetchGitAheadBehind($formattedName);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The workspace's name.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $remoteBranch
+ * Optional. The name of the branch in the Git remote against which this workspace
+ * should be compared. If left unset, the repository's default branch name
+ * will be used.
+ * @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 \Google\Cloud\Dataform\V1beta1\FetchGitAheadBehindResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function fetchGitAheadBehind($name, array $optionalArgs = [])
+ {
+ $request = new FetchGitAheadBehindRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ if (isset($optionalArgs['remoteBranch'])) {
+ $request->setRemoteBranch($optionalArgs['remoteBranch']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('FetchGitAheadBehind', FetchGitAheadBehindResponse::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Fetches a Repository's remote branches.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedName = $dataformClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ * $response = $dataformClient->fetchRemoteBranches($formattedName);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The repository's name.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Dataform\V1beta1\FetchRemoteBranchesResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function fetchRemoteBranches($name, array $optionalArgs = [])
+ {
+ $request = new FetchRemoteBranchesRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('FetchRemoteBranches', FetchRemoteBranchesResponse::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Fetches a single CompilationResult.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedName = $dataformClient->compilationResultName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[COMPILATION_RESULT]');
+ * $response = $dataformClient->getCompilationResult($formattedName);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The compilation result's name.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Dataform\V1beta1\CompilationResult
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function getCompilationResult($name, array $optionalArgs = [])
+ {
+ $request = new GetCompilationResultRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetCompilationResult', CompilationResult::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Fetches a single Repository.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedName = $dataformClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ * $response = $dataformClient->getRepository($formattedName);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The repository's name.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Dataform\V1beta1\Repository
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function getRepository($name, array $optionalArgs = [])
+ {
+ $request = new GetRepositoryRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetRepository', Repository::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Fetches a single WorkflowInvocation.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedName = $dataformClient->workflowInvocationName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKFLOW_INVOCATION]');
+ * $response = $dataformClient->getWorkflowInvocation($formattedName);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The workflow invocation resource's name.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Dataform\V1beta1\WorkflowInvocation
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function getWorkflowInvocation($name, array $optionalArgs = [])
+ {
+ $request = new GetWorkflowInvocationRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetWorkflowInvocation', WorkflowInvocation::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Fetches a single Workspace.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedName = $dataformClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ * $response = $dataformClient->getWorkspace($formattedName);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The workspace's name.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Dataform\V1beta1\Workspace
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function getWorkspace($name, array $optionalArgs = [])
+ {
+ $request = new GetWorkspaceRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetWorkspace', Workspace::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Installs dependency NPM packages (inside a Workspace).
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedWorkspace = $dataformClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ * $response = $dataformClient->installNpmPackages($formattedWorkspace);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $workspace Required. The workspace's name.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Dataform\V1beta1\InstallNpmPackagesResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function installNpmPackages($workspace, array $optionalArgs = [])
+ {
+ $request = new InstallNpmPackagesRequest();
+ $requestParamHeaders = [];
+ $request->setWorkspace($workspace);
+ $requestParamHeaders['workspace'] = $workspace;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('InstallNpmPackages', InstallNpmPackagesResponse::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Lists CompilationResults in a given Repository.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedParent = $dataformClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataformClient->listCompilationResults($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataformClient->listCompilationResults($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The repository in which to list compilation results. Must be in the
+ * format `projects/*/locations/*/repositories/*`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function listCompilationResults($parent, array $optionalArgs = [])
+ {
+ $request = new ListCompilationResultsRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListCompilationResults', $optionalArgs, ListCompilationResultsResponse::class, $request);
+ }
+
+ /**
+ * Lists Repositories in a given project and location.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedParent = $dataformClient->locationName('[PROJECT]', '[LOCATION]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataformClient->listRepositories($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataformClient->listRepositories($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The location in which to list repositories. Must be in the format
+ * `projects/*/locations/*`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @type string $orderBy
+ * Optional. This field only supports ordering by `name`. If unspecified, the server
+ * will choose the ordering. If specified, the default order is ascending for
+ * the `name` field.
+ * @type string $filter
+ * Optional. Filter for the returned list.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function listRepositories($parent, array $optionalArgs = [])
+ {
+ $request = new ListRepositoriesRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ if (isset($optionalArgs['orderBy'])) {
+ $request->setOrderBy($optionalArgs['orderBy']);
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListRepositories', $optionalArgs, ListRepositoriesResponse::class, $request);
+ }
+
+ /**
+ * Lists WorkflowInvocations in a given Repository.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedParent = $dataformClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataformClient->listWorkflowInvocations($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataformClient->listWorkflowInvocations($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The parent resource of the WorkflowInvocation type. Must be in the
+ * format `projects/*/locations/*/repositories/*`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function listWorkflowInvocations($parent, array $optionalArgs = [])
+ {
+ $request = new ListWorkflowInvocationsRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListWorkflowInvocations', $optionalArgs, ListWorkflowInvocationsResponse::class, $request);
+ }
+
+ /**
+ * Lists Workspaces in a given Repository.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedParent = $dataformClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataformClient->listWorkspaces($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataformClient->listWorkspaces($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The repository in which to list workspaces. Must be in the
+ * format `projects/*/locations/*/repositories/*`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @type string $orderBy
+ * Optional. This field only supports ordering by `name`. If unspecified, the server
+ * will choose the ordering. If specified, the default order is ascending for
+ * the `name` field.
+ * @type string $filter
+ * Optional. Filter for the returned list.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function listWorkspaces($parent, array $optionalArgs = [])
+ {
+ $request = new ListWorkspacesRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ if (isset($optionalArgs['orderBy'])) {
+ $request->setOrderBy($optionalArgs['orderBy']);
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListWorkspaces', $optionalArgs, ListWorkspacesResponse::class, $request);
+ }
+
+ /**
+ * Creates a directory inside a Workspace.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedWorkspace = $dataformClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ * $path = 'path';
+ * $response = $dataformClient->makeDirectory($formattedWorkspace, $path);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $workspace Required. The workspace's name.
+ * @param string $path Required. The directory's full path including directory name, relative to the
+ * workspace root.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Dataform\V1beta1\MakeDirectoryResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function makeDirectory($workspace, $path, array $optionalArgs = [])
+ {
+ $request = new MakeDirectoryRequest();
+ $requestParamHeaders = [];
+ $request->setWorkspace($workspace);
+ $request->setPath($path);
+ $requestParamHeaders['workspace'] = $workspace;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('MakeDirectory', MakeDirectoryResponse::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Moves a directory (inside a Workspace), and all of its contents, to a new
+ * location.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedWorkspace = $dataformClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ * $path = 'path';
+ * $newPath = 'new_path';
+ * $response = $dataformClient->moveDirectory($formattedWorkspace, $path, $newPath);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $workspace Required. The workspace's name.
+ * @param string $path Required. The directory's full path including directory name, relative to the
+ * workspace root.
+ * @param string $newPath Required. The new path for the directory including directory name, rooted at
+ * workspace root.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Dataform\V1beta1\MoveDirectoryResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function moveDirectory($workspace, $path, $newPath, array $optionalArgs = [])
+ {
+ $request = new MoveDirectoryRequest();
+ $requestParamHeaders = [];
+ $request->setWorkspace($workspace);
+ $request->setPath($path);
+ $request->setNewPath($newPath);
+ $requestParamHeaders['workspace'] = $workspace;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('MoveDirectory', MoveDirectoryResponse::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Moves a file (inside a Workspace) to a new location.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedWorkspace = $dataformClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ * $path = 'path';
+ * $newPath = 'new_path';
+ * $response = $dataformClient->moveFile($formattedWorkspace, $path, $newPath);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $workspace Required. The workspace's name.
+ * @param string $path Required. The file's full path including filename, relative to the workspace root.
+ * @param string $newPath Required. The file's new path including filename, relative to the workspace root.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Dataform\V1beta1\MoveFileResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function moveFile($workspace, $path, $newPath, array $optionalArgs = [])
+ {
+ $request = new MoveFileRequest();
+ $requestParamHeaders = [];
+ $request->setWorkspace($workspace);
+ $request->setPath($path);
+ $request->setNewPath($newPath);
+ $requestParamHeaders['workspace'] = $workspace;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('MoveFile', MoveFileResponse::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Pulls Git commits from the Repository's remote into a Workspace.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedName = $dataformClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ * $author = new CommitAuthor();
+ * $dataformClient->pullGitCommits($formattedName, $author);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The workspace's name.
+ * @param CommitAuthor $author Required. The author of any merge commit which may be created as a result of merging
+ * fetched Git commits into this workspace.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $remoteBranch
+ * Optional. The name of the branch in the Git remote from which to pull commits.
+ * If left unset, the repository's default branch name will be used.
+ * @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 if the remote call fails
+ *
+ * @experimental
+ */
+ public function pullGitCommits($name, $author, array $optionalArgs = [])
+ {
+ $request = new PullGitCommitsRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $request->setAuthor($author);
+ $requestParamHeaders['name'] = $name;
+ if (isset($optionalArgs['remoteBranch'])) {
+ $request->setRemoteBranch($optionalArgs['remoteBranch']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('PullGitCommits', GPBEmpty::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Pushes Git commits from a Workspace to the Repository's remote.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedName = $dataformClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ * $dataformClient->pushGitCommits($formattedName);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The workspace's name.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $remoteBranch
+ * Optional. The name of the branch in the Git remote to which commits should be pushed.
+ * If left unset, the repository's default branch name will be used.
+ * @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 if the remote call fails
+ *
+ * @experimental
+ */
+ public function pushGitCommits($name, array $optionalArgs = [])
+ {
+ $request = new PushGitCommitsRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ if (isset($optionalArgs['remoteBranch'])) {
+ $request->setRemoteBranch($optionalArgs['remoteBranch']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('PushGitCommits', GPBEmpty::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Returns CompilationResultActions in a given CompilationResult.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedName = $dataformClient->compilationResultName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[COMPILATION_RESULT]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataformClient->queryCompilationResultActions($formattedName);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataformClient->queryCompilationResultActions($formattedName);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The compilation result's name.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @type string $filter
+ * Optional. Optional filter for the returned list. Filtering is only currently
+ * supported on the `file_path` field.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function queryCompilationResultActions($name, array $optionalArgs = [])
+ {
+ $request = new QueryCompilationResultActionsRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('QueryCompilationResultActions', $optionalArgs, QueryCompilationResultActionsResponse::class, $request);
+ }
+
+ /**
+ * Returns the contents of a given Workspace directory.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedWorkspace = $dataformClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataformClient->queryDirectoryContents($formattedWorkspace);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataformClient->queryDirectoryContents($formattedWorkspace);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $workspace Required. The workspace's name.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $path
+ * Optional. The directory's full path including directory name, relative to the
+ * workspace root. If left unset, the workspace root is used.
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function queryDirectoryContents($workspace, array $optionalArgs = [])
+ {
+ $request = new QueryDirectoryContentsRequest();
+ $requestParamHeaders = [];
+ $request->setWorkspace($workspace);
+ $requestParamHeaders['workspace'] = $workspace;
+ if (isset($optionalArgs['path'])) {
+ $request->setPath($optionalArgs['path']);
+ }
+
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('QueryDirectoryContents', $optionalArgs, QueryDirectoryContentsResponse::class, $request);
+ }
+
+ /**
+ * Returns WorkflowInvocationActions in a given WorkflowInvocation.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedName = $dataformClient->workflowInvocationName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKFLOW_INVOCATION]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataformClient->queryWorkflowInvocationActions($formattedName);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataformClient->queryWorkflowInvocationActions($formattedName);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The workflow invocation's name.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function queryWorkflowInvocationActions($name, array $optionalArgs = [])
+ {
+ $request = new QueryWorkflowInvocationActionsRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('QueryWorkflowInvocationActions', $optionalArgs, QueryWorkflowInvocationActionsResponse::class, $request);
+ }
+
+ /**
+ * Returns the contents of a file (inside a Workspace).
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedWorkspace = $dataformClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ * $path = 'path';
+ * $response = $dataformClient->readFile($formattedWorkspace, $path);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $workspace Required. The workspace's name.
+ * @param string $path Required. The file's full path including filename, relative to the workspace root.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Dataform\V1beta1\ReadFileResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function readFile($workspace, $path, array $optionalArgs = [])
+ {
+ $request = new ReadFileRequest();
+ $requestParamHeaders = [];
+ $request->setWorkspace($workspace);
+ $request->setPath($path);
+ $requestParamHeaders['workspace'] = $workspace;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('ReadFile', ReadFileResponse::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Deletes a directory (inside a Workspace) and all of its contents.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedWorkspace = $dataformClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ * $path = 'path';
+ * $dataformClient->removeDirectory($formattedWorkspace, $path);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $workspace Required. The workspace's name.
+ * @param string $path Required. The directory's full path including directory name, relative to the
+ * workspace root.
+ * @param array $optionalArgs {
+ * 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 if the remote call fails
+ *
+ * @experimental
+ */
+ public function removeDirectory($workspace, $path, array $optionalArgs = [])
+ {
+ $request = new RemoveDirectoryRequest();
+ $requestParamHeaders = [];
+ $request->setWorkspace($workspace);
+ $request->setPath($path);
+ $requestParamHeaders['workspace'] = $workspace;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('RemoveDirectory', GPBEmpty::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Deletes a file (inside a Workspace).
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedWorkspace = $dataformClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ * $path = 'path';
+ * $dataformClient->removeFile($formattedWorkspace, $path);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $workspace Required. The workspace's name.
+ * @param string $path Required. The file's full path including filename, relative to the workspace root.
+ * @param array $optionalArgs {
+ * 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 if the remote call fails
+ *
+ * @experimental
+ */
+ public function removeFile($workspace, $path, array $optionalArgs = [])
+ {
+ $request = new RemoveFileRequest();
+ $requestParamHeaders = [];
+ $request->setWorkspace($workspace);
+ $request->setPath($path);
+ $requestParamHeaders['workspace'] = $workspace;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('RemoveFile', GPBEmpty::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Performs a Git reset for uncommitted files in a Workspace.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedName = $dataformClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ * $dataformClient->resetWorkspaceChanges($formattedName);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The workspace's name.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string[] $paths
+ * Optional. Full file paths to reset back to their committed state including filename,
+ * rooted at workspace root. If left empty, all files will be reset.
+ * @type bool $clean
+ * Optional. If set to true, untracked files will be deleted.
+ * @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 if the remote call fails
+ *
+ * @experimental
+ */
+ public function resetWorkspaceChanges($name, array $optionalArgs = [])
+ {
+ $request = new ResetWorkspaceChangesRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ if (isset($optionalArgs['paths'])) {
+ $request->setPaths($optionalArgs['paths']);
+ }
+
+ if (isset($optionalArgs['clean'])) {
+ $request->setClean($optionalArgs['clean']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('ResetWorkspaceChanges', GPBEmpty::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Updates a single Repository.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $repository = new Repository();
+ * $response = $dataformClient->updateRepository($repository);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param Repository $repository Required. The repository to update.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type FieldMask $updateMask
+ * Optional. Specifies the fields to be updated in the repository. If left unset,
+ * all fields will be updated.
+ * @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 \Google\Cloud\Dataform\V1beta1\Repository
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function updateRepository($repository, array $optionalArgs = [])
+ {
+ $request = new UpdateRepositoryRequest();
+ $requestParamHeaders = [];
+ $request->setRepository($repository);
+ $requestParamHeaders['repository.name'] = $repository->getName();
+ if (isset($optionalArgs['updateMask'])) {
+ $request->setUpdateMask($optionalArgs['updateMask']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('UpdateRepository', Repository::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Writes to a file (inside a Workspace).
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $formattedWorkspace = $dataformClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ * $path = 'path';
+ * $contents = '...';
+ * $response = $dataformClient->writeFile($formattedWorkspace, $path, $contents);
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param string $workspace Required. The workspace's name.
+ * @param string $path Required. The file.
+ * @param string $contents Required. The file's contents.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Dataform\V1beta1\WriteFileResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function writeFile($workspace, $path, $contents, array $optionalArgs = [])
+ {
+ $request = new WriteFileRequest();
+ $requestParamHeaders = [];
+ $request->setWorkspace($workspace);
+ $request->setPath($path);
+ $request->setContents($contents);
+ $requestParamHeaders['workspace'] = $workspace;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('WriteFile', WriteFileResponse::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Gets information about a location.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * $response = $dataformClient->getLocation();
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $name
+ * Resource name for the location.
+ * @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 \Google\Cloud\Location\Location
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function getLocation(array $optionalArgs = [])
+ {
+ $request = new GetLocationRequest();
+ $requestParamHeaders = [];
+ if (isset($optionalArgs['name'])) {
+ $request->setName($optionalArgs['name']);
+ $requestParamHeaders['name'] = $optionalArgs['name'];
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetLocation', Location::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.cloud.location.Locations')->wait();
+ }
+
+ /**
+ * Lists information about the supported locations for this service.
+ *
+ * Sample code:
+ * ```
+ * $dataformClient = new DataformClient();
+ * try {
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataformClient->listLocations();
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataformClient->listLocations();
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataformClient->close();
+ * }
+ * ```
+ *
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $name
+ * The resource that owns the locations collection, if applicable.
+ * @type string $filter
+ * The standard list filter.
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function listLocations(array $optionalArgs = [])
+ {
+ $request = new ListLocationsRequest();
+ $requestParamHeaders = [];
+ if (isset($optionalArgs['name'])) {
+ $request->setName($optionalArgs['name']);
+ $requestParamHeaders['name'] = $optionalArgs['name'];
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListLocations', $optionalArgs, ListLocationsResponse::class, $request, 'google.cloud.location.Locations');
+ }
+}
diff --git a/owl-bot-staging/Dataform/v1beta1/src/V1beta1/gapic_metadata.json b/owl-bot-staging/Dataform/v1beta1/src/V1beta1/gapic_metadata.json
new file mode 100644
index 000000000000..8cd3c2be25f4
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/src/V1beta1/gapic_metadata.json
@@ -0,0 +1,208 @@
+{
+ "schema": "1.0",
+ "comment": "This file maps proto services\/RPCs to the corresponding library clients\/methods",
+ "language": "php",
+ "protoPackage": "google.cloud.dataform.v1beta1",
+ "libraryPackage": "Google\\Cloud\\Dataform\\V1beta1",
+ "services": {
+ "Dataform": {
+ "clients": {
+ "grpc": {
+ "libraryClient": "DataformGapicClient",
+ "rpcs": {
+ "CancelWorkflowInvocation": {
+ "methods": [
+ "cancelWorkflowInvocation"
+ ]
+ },
+ "CommitWorkspaceChanges": {
+ "methods": [
+ "commitWorkspaceChanges"
+ ]
+ },
+ "CreateCompilationResult": {
+ "methods": [
+ "createCompilationResult"
+ ]
+ },
+ "CreateRepository": {
+ "methods": [
+ "createRepository"
+ ]
+ },
+ "CreateWorkflowInvocation": {
+ "methods": [
+ "createWorkflowInvocation"
+ ]
+ },
+ "CreateWorkspace": {
+ "methods": [
+ "createWorkspace"
+ ]
+ },
+ "DeleteRepository": {
+ "methods": [
+ "deleteRepository"
+ ]
+ },
+ "DeleteWorkflowInvocation": {
+ "methods": [
+ "deleteWorkflowInvocation"
+ ]
+ },
+ "DeleteWorkspace": {
+ "methods": [
+ "deleteWorkspace"
+ ]
+ },
+ "FetchFileDiff": {
+ "methods": [
+ "fetchFileDiff"
+ ]
+ },
+ "FetchFileGitStatuses": {
+ "methods": [
+ "fetchFileGitStatuses"
+ ]
+ },
+ "FetchGitAheadBehind": {
+ "methods": [
+ "fetchGitAheadBehind"
+ ]
+ },
+ "FetchRemoteBranches": {
+ "methods": [
+ "fetchRemoteBranches"
+ ]
+ },
+ "GetCompilationResult": {
+ "methods": [
+ "getCompilationResult"
+ ]
+ },
+ "GetRepository": {
+ "methods": [
+ "getRepository"
+ ]
+ },
+ "GetWorkflowInvocation": {
+ "methods": [
+ "getWorkflowInvocation"
+ ]
+ },
+ "GetWorkspace": {
+ "methods": [
+ "getWorkspace"
+ ]
+ },
+ "InstallNpmPackages": {
+ "methods": [
+ "installNpmPackages"
+ ]
+ },
+ "ListCompilationResults": {
+ "methods": [
+ "listCompilationResults"
+ ]
+ },
+ "ListRepositories": {
+ "methods": [
+ "listRepositories"
+ ]
+ },
+ "ListWorkflowInvocations": {
+ "methods": [
+ "listWorkflowInvocations"
+ ]
+ },
+ "ListWorkspaces": {
+ "methods": [
+ "listWorkspaces"
+ ]
+ },
+ "MakeDirectory": {
+ "methods": [
+ "makeDirectory"
+ ]
+ },
+ "MoveDirectory": {
+ "methods": [
+ "moveDirectory"
+ ]
+ },
+ "MoveFile": {
+ "methods": [
+ "moveFile"
+ ]
+ },
+ "PullGitCommits": {
+ "methods": [
+ "pullGitCommits"
+ ]
+ },
+ "PushGitCommits": {
+ "methods": [
+ "pushGitCommits"
+ ]
+ },
+ "QueryCompilationResultActions": {
+ "methods": [
+ "queryCompilationResultActions"
+ ]
+ },
+ "QueryDirectoryContents": {
+ "methods": [
+ "queryDirectoryContents"
+ ]
+ },
+ "QueryWorkflowInvocationActions": {
+ "methods": [
+ "queryWorkflowInvocationActions"
+ ]
+ },
+ "ReadFile": {
+ "methods": [
+ "readFile"
+ ]
+ },
+ "RemoveDirectory": {
+ "methods": [
+ "removeDirectory"
+ ]
+ },
+ "RemoveFile": {
+ "methods": [
+ "removeFile"
+ ]
+ },
+ "ResetWorkspaceChanges": {
+ "methods": [
+ "resetWorkspaceChanges"
+ ]
+ },
+ "UpdateRepository": {
+ "methods": [
+ "updateRepository"
+ ]
+ },
+ "WriteFile": {
+ "methods": [
+ "writeFile"
+ ]
+ },
+ "GetLocation": {
+ "methods": [
+ "getLocation"
+ ]
+ },
+ "ListLocations": {
+ "methods": [
+ "listLocations"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/owl-bot-staging/Dataform/v1beta1/src/V1beta1/resources/dataform_client_config.json b/owl-bot-staging/Dataform/v1beta1/src/V1beta1/resources/dataform_client_config.json
new file mode 100644
index 000000000000..492a50861653
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/src/V1beta1/resources/dataform_client_config.json
@@ -0,0 +1,224 @@
+{
+ "interfaces": {
+ "google.cloud.dataform.v1beta1.Dataform": {
+ "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": {
+ "CancelWorkflowInvocation": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "CommitWorkspaceChanges": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "CreateCompilationResult": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "CreateRepository": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "CreateWorkflowInvocation": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "CreateWorkspace": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "DeleteRepository": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "DeleteWorkflowInvocation": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "DeleteWorkspace": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "FetchFileDiff": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "FetchFileGitStatuses": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "FetchGitAheadBehind": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "FetchRemoteBranches": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "GetCompilationResult": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "GetRepository": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "GetWorkflowInvocation": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "GetWorkspace": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "InstallNpmPackages": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "ListCompilationResults": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "ListRepositories": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "ListWorkflowInvocations": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "ListWorkspaces": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "MakeDirectory": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "MoveDirectory": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "MoveFile": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "PullGitCommits": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "PushGitCommits": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "QueryCompilationResultActions": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "QueryDirectoryContents": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "QueryWorkflowInvocationActions": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "ReadFile": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "RemoveDirectory": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "RemoveFile": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "ResetWorkspaceChanges": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "UpdateRepository": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "WriteFile": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_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/Dataform/v1beta1/src/V1beta1/resources/dataform_descriptor_config.php b/owl-bot-staging/Dataform/v1beta1/src/V1beta1/resources/dataform_descriptor_config.php
new file mode 100644
index 000000000000..2fb4914d841d
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/src/V1beta1/resources/dataform_descriptor_config.php
@@ -0,0 +1,539 @@
+ [
+ 'google.cloud.dataform.v1beta1.Dataform' => [
+ 'CancelWorkflowInvocation' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Protobuf\GPBEmpty',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'CommitWorkspaceChanges' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Protobuf\GPBEmpty',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'CreateCompilationResult' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Dataform\V1beta1\CompilationResult',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateRepository' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Dataform\V1beta1\Repository',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateWorkflowInvocation' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Dataform\V1beta1\WorkflowInvocation',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateWorkspace' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Dataform\V1beta1\Workspace',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteRepository' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Protobuf\GPBEmpty',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteWorkflowInvocation' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Protobuf\GPBEmpty',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteWorkspace' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Protobuf\GPBEmpty',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'FetchFileDiff' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Dataform\V1beta1\FetchFileDiffResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'workspace',
+ 'fieldAccessors' => [
+ 'getWorkspace',
+ ],
+ ],
+ ],
+ ],
+ 'FetchFileGitStatuses' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Dataform\V1beta1\FetchFileGitStatusesResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'FetchGitAheadBehind' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Dataform\V1beta1\FetchGitAheadBehindResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'FetchRemoteBranches' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Dataform\V1beta1\FetchRemoteBranchesResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetCompilationResult' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Dataform\V1beta1\CompilationResult',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetRepository' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Dataform\V1beta1\Repository',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetWorkflowInvocation' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Dataform\V1beta1\WorkflowInvocation',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetWorkspace' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Dataform\V1beta1\Workspace',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'InstallNpmPackages' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Dataform\V1beta1\InstallNpmPackagesResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'workspace',
+ 'fieldAccessors' => [
+ 'getWorkspace',
+ ],
+ ],
+ ],
+ ],
+ 'ListCompilationResults' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getCompilationResults',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Dataform\V1beta1\ListCompilationResultsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListRepositories' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getRepositories',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Dataform\V1beta1\ListRepositoriesResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListWorkflowInvocations' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getWorkflowInvocations',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Dataform\V1beta1\ListWorkflowInvocationsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListWorkspaces' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getWorkspaces',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Dataform\V1beta1\ListWorkspacesResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'MakeDirectory' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Dataform\V1beta1\MakeDirectoryResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'workspace',
+ 'fieldAccessors' => [
+ 'getWorkspace',
+ ],
+ ],
+ ],
+ ],
+ 'MoveDirectory' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Dataform\V1beta1\MoveDirectoryResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'workspace',
+ 'fieldAccessors' => [
+ 'getWorkspace',
+ ],
+ ],
+ ],
+ ],
+ 'MoveFile' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Dataform\V1beta1\MoveFileResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'workspace',
+ 'fieldAccessors' => [
+ 'getWorkspace',
+ ],
+ ],
+ ],
+ ],
+ 'PullGitCommits' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Protobuf\GPBEmpty',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'PushGitCommits' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Protobuf\GPBEmpty',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'QueryCompilationResultActions' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getCompilationResultActions',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Dataform\V1beta1\QueryCompilationResultActionsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'QueryDirectoryContents' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getDirectoryEntries',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Dataform\V1beta1\QueryDirectoryContentsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'workspace',
+ 'fieldAccessors' => [
+ 'getWorkspace',
+ ],
+ ],
+ ],
+ ],
+ 'QueryWorkflowInvocationActions' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getWorkflowInvocationActions',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Dataform\V1beta1\QueryWorkflowInvocationActionsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ReadFile' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Dataform\V1beta1\ReadFileResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'workspace',
+ 'fieldAccessors' => [
+ 'getWorkspace',
+ ],
+ ],
+ ],
+ ],
+ 'RemoveDirectory' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Protobuf\GPBEmpty',
+ 'headerParams' => [
+ [
+ 'keyName' => 'workspace',
+ 'fieldAccessors' => [
+ 'getWorkspace',
+ ],
+ ],
+ ],
+ ],
+ 'RemoveFile' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Protobuf\GPBEmpty',
+ 'headerParams' => [
+ [
+ 'keyName' => 'workspace',
+ 'fieldAccessors' => [
+ 'getWorkspace',
+ ],
+ ],
+ ],
+ ],
+ 'ResetWorkspaceChanges' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Protobuf\GPBEmpty',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateRepository' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Dataform\V1beta1\Repository',
+ 'headerParams' => [
+ [
+ 'keyName' => 'repository.name',
+ 'fieldAccessors' => [
+ 'getRepository',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'WriteFile' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Dataform\V1beta1\WriteFileResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'workspace',
+ 'fieldAccessors' => [
+ 'getWorkspace',
+ ],
+ ],
+ ],
+ ],
+ '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' => [
+ 'compilationResult' => 'projects/{project}/locations/{location}/repositories/{repository}/compilationResults/{compilation_result}',
+ 'location' => 'projects/{project}/locations/{location}',
+ 'repository' => 'projects/{project}/locations/{location}/repositories/{repository}',
+ 'secretVersion' => 'projects/{project}/secrets/{secret}/versions/{version}',
+ 'workflowInvocation' => 'projects/{project}/locations/{location}/repositories/{repository}/workflowInvocations/{workflow_invocation}',
+ 'workspace' => 'projects/{project}/locations/{location}/repositories/{repository}/workspaces/{workspace}',
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/Dataform/v1beta1/src/V1beta1/resources/dataform_rest_client_config.php b/owl-bot-staging/Dataform/v1beta1/src/V1beta1/resources/dataform_rest_client_config.php
new file mode 100644
index 000000000000..4b22187fab66
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/src/V1beta1/resources/dataform_rest_client_config.php
@@ -0,0 +1,453 @@
+ [
+ 'google.cloud.dataform.v1beta1.Dataform' => [
+ 'CancelWorkflowInvocation' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta1/{name=projects/*/locations/*/repositories/*/workflowInvocations/*}:cancel',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'CommitWorkspaceChanges' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}:commit',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'CreateCompilationResult' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta1/{parent=projects/*/locations/*/repositories/*}/compilationResults',
+ 'body' => 'compilation_result',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateRepository' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta1/{parent=projects/*/locations/*}/repositories',
+ 'body' => 'repository',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'repository_id',
+ ],
+ ],
+ 'CreateWorkflowInvocation' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta1/{parent=projects/*/locations/*/repositories/*}/workflowInvocations',
+ 'body' => 'workflow_invocation',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateWorkspace' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta1/{parent=projects/*/locations/*/repositories/*}/workspaces',
+ 'body' => 'workspace',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'workspace_id',
+ ],
+ ],
+ 'DeleteRepository' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1beta1/{name=projects/*/locations/*/repositories/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteWorkflowInvocation' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1beta1/{name=projects/*/locations/*/repositories/*/workflowInvocations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteWorkspace' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'FetchFileDiff' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:fetchFileDiff',
+ 'placeholders' => [
+ 'workspace' => [
+ 'getters' => [
+ 'getWorkspace',
+ ],
+ ],
+ ],
+ ],
+ 'FetchFileGitStatuses' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}:fetchFileGitStatuses',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'FetchGitAheadBehind' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}:fetchGitAheadBehind',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'FetchRemoteBranches' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta1/{name=projects/*/locations/*/repositories/*}:fetchRemoteBranches',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetCompilationResult' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta1/{name=projects/*/locations/*/repositories/*/compilationResults/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetRepository' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta1/{name=projects/*/locations/*/repositories/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetWorkflowInvocation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta1/{name=projects/*/locations/*/repositories/*/workflowInvocations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetWorkspace' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'InstallNpmPackages' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:installNpmPackages',
+ 'body' => '*',
+ 'placeholders' => [
+ 'workspace' => [
+ 'getters' => [
+ 'getWorkspace',
+ ],
+ ],
+ ],
+ ],
+ 'ListCompilationResults' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta1/{parent=projects/*/locations/*/repositories/*}/compilationResults',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListRepositories' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta1/{parent=projects/*/locations/*}/repositories',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListWorkflowInvocations' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta1/{parent=projects/*/locations/*/repositories/*}/workflowInvocations',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListWorkspaces' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta1/{parent=projects/*/locations/*/repositories/*}/workspaces',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'MakeDirectory' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:makeDirectory',
+ 'body' => '*',
+ 'placeholders' => [
+ 'workspace' => [
+ 'getters' => [
+ 'getWorkspace',
+ ],
+ ],
+ ],
+ ],
+ 'MoveDirectory' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:moveDirectory',
+ 'body' => '*',
+ 'placeholders' => [
+ 'workspace' => [
+ 'getters' => [
+ 'getWorkspace',
+ ],
+ ],
+ ],
+ ],
+ 'MoveFile' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:moveFile',
+ 'body' => '*',
+ 'placeholders' => [
+ 'workspace' => [
+ 'getters' => [
+ 'getWorkspace',
+ ],
+ ],
+ ],
+ ],
+ 'PullGitCommits' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}:pull',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'PushGitCommits' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}:push',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'QueryCompilationResultActions' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta1/{name=projects/*/locations/*/repositories/*/compilationResults/*}:query',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'QueryDirectoryContents' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:queryDirectoryContents',
+ 'placeholders' => [
+ 'workspace' => [
+ 'getters' => [
+ 'getWorkspace',
+ ],
+ ],
+ ],
+ ],
+ 'QueryWorkflowInvocationActions' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta1/{name=projects/*/locations/*/repositories/*/workflowInvocations/*}:query',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ReadFile' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:readFile',
+ 'placeholders' => [
+ 'workspace' => [
+ 'getters' => [
+ 'getWorkspace',
+ ],
+ ],
+ ],
+ ],
+ 'RemoveDirectory' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:removeDirectory',
+ 'body' => '*',
+ 'placeholders' => [
+ 'workspace' => [
+ 'getters' => [
+ 'getWorkspace',
+ ],
+ ],
+ ],
+ ],
+ 'RemoveFile' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:removeFile',
+ 'body' => '*',
+ 'placeholders' => [
+ 'workspace' => [
+ 'getters' => [
+ 'getWorkspace',
+ ],
+ ],
+ ],
+ ],
+ 'ResetWorkspaceChanges' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta1/{name=projects/*/locations/*/repositories/*/workspaces/*}:reset',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateRepository' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1beta1/{repository.name=projects/*/locations/*/repositories/*}',
+ 'body' => 'repository',
+ 'placeholders' => [
+ 'repository.name' => [
+ 'getters' => [
+ 'getRepository',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'WriteFile' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta1/{workspace=projects/*/locations/*/repositories/*/workspaces/*}:writeFile',
+ 'body' => '*',
+ 'placeholders' => [
+ 'workspace' => [
+ 'getters' => [
+ 'getWorkspace',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.cloud.location.Locations' => [
+ 'GetLocation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta1/{name=projects/*/locations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListLocations' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta1/{name=projects/*}/locations',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'numericEnums' => true,
+];
diff --git a/owl-bot-staging/Dataform/v1beta1/tests/Unit/V1beta1/Client/DataformClientTest.php b/owl-bot-staging/Dataform/v1beta1/tests/Unit/V1beta1/Client/DataformClientTest.php
new file mode 100644
index 000000000000..e279e9298c4b
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/tests/Unit/V1beta1/Client/DataformClientTest.php
@@ -0,0 +1,2736 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return DataformClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new DataformClient($options);
+ }
+
+ /** @test */
+ public function cancelWorkflowInvocationTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->workflowInvocationName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKFLOW_INVOCATION]');
+ $request = (new CancelWorkflowInvocationRequest())
+ ->setName($formattedName);
+ $gapicClient->cancelWorkflowInvocation($request);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/CancelWorkflowInvocation', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function cancelWorkflowInvocationExceptionTest()
+ {
+ $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->workflowInvocationName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKFLOW_INVOCATION]');
+ $request = (new CancelWorkflowInvocationRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->cancelWorkflowInvocation($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 commitWorkspaceChangesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $author = new CommitAuthor();
+ $authorName = 'authorName-1501539658';
+ $author->setName($authorName);
+ $authorEmailAddress = 'authorEmailAddress-6398493';
+ $author->setEmailAddress($authorEmailAddress);
+ $request = (new CommitWorkspaceChangesRequest())
+ ->setName($formattedName)
+ ->setAuthor($author);
+ $gapicClient->commitWorkspaceChanges($request);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/CommitWorkspaceChanges', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualRequestObject->getAuthor();
+ $this->assertProtobufEquals($author, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function commitWorkspaceChangesExceptionTest()
+ {
+ $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->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $author = new CommitAuthor();
+ $authorName = 'authorName-1501539658';
+ $author->setName($authorName);
+ $authorEmailAddress = 'authorEmailAddress-6398493';
+ $author->setEmailAddress($authorEmailAddress);
+ $request = (new CommitWorkspaceChangesRequest())
+ ->setName($formattedName)
+ ->setAuthor($author);
+ try {
+ $gapicClient->commitWorkspaceChanges($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 createCompilationResultTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $gitCommitish = 'gitCommitish-459981894';
+ $dataformCoreVersion = 'dataformCoreVersion1918089577';
+ $expectedResponse = new CompilationResult();
+ $expectedResponse->setName($name);
+ $expectedResponse->setGitCommitish($gitCommitish);
+ $expectedResponse->setDataformCoreVersion($dataformCoreVersion);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $compilationResult = new CompilationResult();
+ $request = (new CreateCompilationResultRequest())
+ ->setParent($formattedParent)
+ ->setCompilationResult($compilationResult);
+ $response = $gapicClient->createCompilationResult($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.dataform.v1beta1.Dataform/CreateCompilationResult', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getCompilationResult();
+ $this->assertProtobufEquals($compilationResult, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createCompilationResultExceptionTest()
+ {
+ $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->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $compilationResult = new CompilationResult();
+ $request = (new CreateCompilationResultRequest())
+ ->setParent($formattedParent)
+ ->setCompilationResult($compilationResult);
+ try {
+ $gapicClient->createCompilationResult($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 createRepositoryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $expectedResponse = new Repository();
+ $expectedResponse->setName($name);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $repository = new Repository();
+ $repositoryId = 'repositoryId1101683248';
+ $request = (new CreateRepositoryRequest())
+ ->setParent($formattedParent)
+ ->setRepository($repository)
+ ->setRepositoryId($repositoryId);
+ $response = $gapicClient->createRepository($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.dataform.v1beta1.Dataform/CreateRepository', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getRepository();
+ $this->assertProtobufEquals($repository, $actualValue);
+ $actualValue = $actualRequestObject->getRepositoryId();
+ $this->assertProtobufEquals($repositoryId, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createRepositoryExceptionTest()
+ {
+ $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]');
+ $repository = new Repository();
+ $repositoryId = 'repositoryId1101683248';
+ $request = (new CreateRepositoryRequest())
+ ->setParent($formattedParent)
+ ->setRepository($repository)
+ ->setRepositoryId($repositoryId);
+ try {
+ $gapicClient->createRepository($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 createWorkflowInvocationTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $compilationResult = 'compilationResult-2035984871';
+ $expectedResponse = new WorkflowInvocation();
+ $expectedResponse->setName($name);
+ $expectedResponse->setCompilationResult($compilationResult);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $workflowInvocation = new WorkflowInvocation();
+ $request = (new CreateWorkflowInvocationRequest())
+ ->setParent($formattedParent)
+ ->setWorkflowInvocation($workflowInvocation);
+ $response = $gapicClient->createWorkflowInvocation($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.dataform.v1beta1.Dataform/CreateWorkflowInvocation', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getWorkflowInvocation();
+ $this->assertProtobufEquals($workflowInvocation, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createWorkflowInvocationExceptionTest()
+ {
+ $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->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $workflowInvocation = new WorkflowInvocation();
+ $request = (new CreateWorkflowInvocationRequest())
+ ->setParent($formattedParent)
+ ->setWorkflowInvocation($workflowInvocation);
+ try {
+ $gapicClient->createWorkflowInvocation($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 createWorkspaceTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $expectedResponse = new Workspace();
+ $expectedResponse->setName($name);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $workspace = new Workspace();
+ $workspaceId = 'workspaceId1578483973';
+ $request = (new CreateWorkspaceRequest())
+ ->setParent($formattedParent)
+ ->setWorkspace($workspace)
+ ->setWorkspaceId($workspaceId);
+ $response = $gapicClient->createWorkspace($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.dataform.v1beta1.Dataform/CreateWorkspace', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getWorkspace();
+ $this->assertProtobufEquals($workspace, $actualValue);
+ $actualValue = $actualRequestObject->getWorkspaceId();
+ $this->assertProtobufEquals($workspaceId, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createWorkspaceExceptionTest()
+ {
+ $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->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $workspace = new Workspace();
+ $workspaceId = 'workspaceId1578483973';
+ $request = (new CreateWorkspaceRequest())
+ ->setParent($formattedParent)
+ ->setWorkspace($workspace)
+ ->setWorkspaceId($workspaceId);
+ try {
+ $gapicClient->createWorkspace($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 deleteRepositoryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new DeleteRepositoryRequest())
+ ->setName($formattedName);
+ $gapicClient->deleteRepository($request);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/DeleteRepository', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteRepositoryExceptionTest()
+ {
+ $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->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new DeleteRepositoryRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->deleteRepository($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 deleteWorkflowInvocationTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->workflowInvocationName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKFLOW_INVOCATION]');
+ $request = (new DeleteWorkflowInvocationRequest())
+ ->setName($formattedName);
+ $gapicClient->deleteWorkflowInvocation($request);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/DeleteWorkflowInvocation', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteWorkflowInvocationExceptionTest()
+ {
+ $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->workflowInvocationName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKFLOW_INVOCATION]');
+ $request = (new DeleteWorkflowInvocationRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->deleteWorkflowInvocation($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 deleteWorkspaceTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $request = (new DeleteWorkspaceRequest())
+ ->setName($formattedName);
+ $gapicClient->deleteWorkspace($request);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/DeleteWorkspace', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteWorkspaceExceptionTest()
+ {
+ $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->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $request = (new DeleteWorkspaceRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->deleteWorkspace($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 fetchFileDiffTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $formattedDiff = 'formattedDiff-1687410264';
+ $expectedResponse = new FetchFileDiffResponse();
+ $expectedResponse->setFormattedDiff($formattedDiff);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $request = (new FetchFileDiffRequest())
+ ->setWorkspace($formattedWorkspace)
+ ->setPath($path);
+ $response = $gapicClient->fetchFileDiff($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.dataform.v1beta1.Dataform/FetchFileDiff', $actualFuncCall);
+ $actualValue = $actualRequestObject->getWorkspace();
+ $this->assertProtobufEquals($formattedWorkspace, $actualValue);
+ $actualValue = $actualRequestObject->getPath();
+ $this->assertProtobufEquals($path, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function fetchFileDiffExceptionTest()
+ {
+ $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
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $request = (new FetchFileDiffRequest())
+ ->setWorkspace($formattedWorkspace)
+ ->setPath($path);
+ try {
+ $gapicClient->fetchFileDiff($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 fetchFileGitStatusesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new FetchFileGitStatusesResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $request = (new FetchFileGitStatusesRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->fetchFileGitStatuses($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.dataform.v1beta1.Dataform/FetchFileGitStatuses', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function fetchFileGitStatusesExceptionTest()
+ {
+ $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->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $request = (new FetchFileGitStatusesRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->fetchFileGitStatuses($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 fetchGitAheadBehindTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $commitsAhead = 1216483806;
+ $commitsBehind = 917751619;
+ $expectedResponse = new FetchGitAheadBehindResponse();
+ $expectedResponse->setCommitsAhead($commitsAhead);
+ $expectedResponse->setCommitsBehind($commitsBehind);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $request = (new FetchGitAheadBehindRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->fetchGitAheadBehind($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.dataform.v1beta1.Dataform/FetchGitAheadBehind', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function fetchGitAheadBehindExceptionTest()
+ {
+ $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->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $request = (new FetchGitAheadBehindRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->fetchGitAheadBehind($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 fetchRemoteBranchesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new FetchRemoteBranchesResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new FetchRemoteBranchesRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->fetchRemoteBranches($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.dataform.v1beta1.Dataform/FetchRemoteBranches', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function fetchRemoteBranchesExceptionTest()
+ {
+ $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->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new FetchRemoteBranchesRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->fetchRemoteBranches($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 getCompilationResultTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $gitCommitish = 'gitCommitish-459981894';
+ $dataformCoreVersion = 'dataformCoreVersion1918089577';
+ $expectedResponse = new CompilationResult();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setGitCommitish($gitCommitish);
+ $expectedResponse->setDataformCoreVersion($dataformCoreVersion);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->compilationResultName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[COMPILATION_RESULT]');
+ $request = (new GetCompilationResultRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getCompilationResult($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.dataform.v1beta1.Dataform/GetCompilationResult', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getCompilationResultExceptionTest()
+ {
+ $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->compilationResultName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[COMPILATION_RESULT]');
+ $request = (new GetCompilationResultRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getCompilationResult($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 getRepositoryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $expectedResponse = new Repository();
+ $expectedResponse->setName($name2);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new GetRepositoryRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getRepository($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.dataform.v1beta1.Dataform/GetRepository', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getRepositoryExceptionTest()
+ {
+ $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->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new GetRepositoryRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getRepository($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 getWorkflowInvocationTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $compilationResult = 'compilationResult-2035984871';
+ $expectedResponse = new WorkflowInvocation();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setCompilationResult($compilationResult);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->workflowInvocationName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKFLOW_INVOCATION]');
+ $request = (new GetWorkflowInvocationRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getWorkflowInvocation($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.dataform.v1beta1.Dataform/GetWorkflowInvocation', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getWorkflowInvocationExceptionTest()
+ {
+ $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->workflowInvocationName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKFLOW_INVOCATION]');
+ $request = (new GetWorkflowInvocationRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getWorkflowInvocation($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 getWorkspaceTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $expectedResponse = new Workspace();
+ $expectedResponse->setName($name2);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $request = (new GetWorkspaceRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getWorkspace($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.dataform.v1beta1.Dataform/GetWorkspace', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getWorkspaceExceptionTest()
+ {
+ $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->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $request = (new GetWorkspaceRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getWorkspace($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 installNpmPackagesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new InstallNpmPackagesResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $request = (new InstallNpmPackagesRequest())
+ ->setWorkspace($formattedWorkspace);
+ $response = $gapicClient->installNpmPackages($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.dataform.v1beta1.Dataform/InstallNpmPackages', $actualFuncCall);
+ $actualValue = $actualRequestObject->getWorkspace();
+ $this->assertProtobufEquals($formattedWorkspace, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function installNpmPackagesExceptionTest()
+ {
+ $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
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $request = (new InstallNpmPackagesRequest())
+ ->setWorkspace($formattedWorkspace);
+ try {
+ $gapicClient->installNpmPackages($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 listCompilationResultsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $compilationResultsElement = new CompilationResult();
+ $compilationResults = [
+ $compilationResultsElement,
+ ];
+ $expectedResponse = new ListCompilationResultsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setCompilationResults($compilationResults);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new ListCompilationResultsRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listCompilationResults($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getCompilationResults()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/ListCompilationResults', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listCompilationResultsExceptionTest()
+ {
+ $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->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new ListCompilationResultsRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listCompilationResults($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 listRepositoriesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $repositoriesElement = new Repository();
+ $repositories = [
+ $repositoriesElement,
+ ];
+ $expectedResponse = new ListRepositoriesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setRepositories($repositories);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListRepositoriesRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listRepositories($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getRepositories()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/ListRepositories', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listRepositoriesExceptionTest()
+ {
+ $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 ListRepositoriesRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listRepositories($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 listWorkflowInvocationsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $workflowInvocationsElement = new WorkflowInvocation();
+ $workflowInvocations = [
+ $workflowInvocationsElement,
+ ];
+ $expectedResponse = new ListWorkflowInvocationsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setWorkflowInvocations($workflowInvocations);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new ListWorkflowInvocationsRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listWorkflowInvocations($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getWorkflowInvocations()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/ListWorkflowInvocations', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listWorkflowInvocationsExceptionTest()
+ {
+ $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->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new ListWorkflowInvocationsRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listWorkflowInvocations($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 listWorkspacesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $workspacesElement = new Workspace();
+ $workspaces = [
+ $workspacesElement,
+ ];
+ $expectedResponse = new ListWorkspacesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setWorkspaces($workspaces);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new ListWorkspacesRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listWorkspaces($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getWorkspaces()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/ListWorkspaces', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listWorkspacesExceptionTest()
+ {
+ $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->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new ListWorkspacesRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listWorkspaces($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 makeDirectoryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new MakeDirectoryResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $request = (new MakeDirectoryRequest())
+ ->setWorkspace($formattedWorkspace)
+ ->setPath($path);
+ $response = $gapicClient->makeDirectory($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.dataform.v1beta1.Dataform/MakeDirectory', $actualFuncCall);
+ $actualValue = $actualRequestObject->getWorkspace();
+ $this->assertProtobufEquals($formattedWorkspace, $actualValue);
+ $actualValue = $actualRequestObject->getPath();
+ $this->assertProtobufEquals($path, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function makeDirectoryExceptionTest()
+ {
+ $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
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $request = (new MakeDirectoryRequest())
+ ->setWorkspace($formattedWorkspace)
+ ->setPath($path);
+ try {
+ $gapicClient->makeDirectory($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 moveDirectoryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new MoveDirectoryResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $newPath = 'newPath1377204068';
+ $request = (new MoveDirectoryRequest())
+ ->setWorkspace($formattedWorkspace)
+ ->setPath($path)
+ ->setNewPath($newPath);
+ $response = $gapicClient->moveDirectory($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.dataform.v1beta1.Dataform/MoveDirectory', $actualFuncCall);
+ $actualValue = $actualRequestObject->getWorkspace();
+ $this->assertProtobufEquals($formattedWorkspace, $actualValue);
+ $actualValue = $actualRequestObject->getPath();
+ $this->assertProtobufEquals($path, $actualValue);
+ $actualValue = $actualRequestObject->getNewPath();
+ $this->assertProtobufEquals($newPath, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function moveDirectoryExceptionTest()
+ {
+ $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
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $newPath = 'newPath1377204068';
+ $request = (new MoveDirectoryRequest())
+ ->setWorkspace($formattedWorkspace)
+ ->setPath($path)
+ ->setNewPath($newPath);
+ try {
+ $gapicClient->moveDirectory($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 moveFileTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new MoveFileResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $newPath = 'newPath1377204068';
+ $request = (new MoveFileRequest())
+ ->setWorkspace($formattedWorkspace)
+ ->setPath($path)
+ ->setNewPath($newPath);
+ $response = $gapicClient->moveFile($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.dataform.v1beta1.Dataform/MoveFile', $actualFuncCall);
+ $actualValue = $actualRequestObject->getWorkspace();
+ $this->assertProtobufEquals($formattedWorkspace, $actualValue);
+ $actualValue = $actualRequestObject->getPath();
+ $this->assertProtobufEquals($path, $actualValue);
+ $actualValue = $actualRequestObject->getNewPath();
+ $this->assertProtobufEquals($newPath, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function moveFileExceptionTest()
+ {
+ $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
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $newPath = 'newPath1377204068';
+ $request = (new MoveFileRequest())
+ ->setWorkspace($formattedWorkspace)
+ ->setPath($path)
+ ->setNewPath($newPath);
+ try {
+ $gapicClient->moveFile($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 pullGitCommitsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $author = new CommitAuthor();
+ $authorName = 'authorName-1501539658';
+ $author->setName($authorName);
+ $authorEmailAddress = 'authorEmailAddress-6398493';
+ $author->setEmailAddress($authorEmailAddress);
+ $request = (new PullGitCommitsRequest())
+ ->setName($formattedName)
+ ->setAuthor($author);
+ $gapicClient->pullGitCommits($request);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/PullGitCommits', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualRequestObject->getAuthor();
+ $this->assertProtobufEquals($author, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function pullGitCommitsExceptionTest()
+ {
+ $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->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $author = new CommitAuthor();
+ $authorName = 'authorName-1501539658';
+ $author->setName($authorName);
+ $authorEmailAddress = 'authorEmailAddress-6398493';
+ $author->setEmailAddress($authorEmailAddress);
+ $request = (new PullGitCommitsRequest())
+ ->setName($formattedName)
+ ->setAuthor($author);
+ try {
+ $gapicClient->pullGitCommits($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 pushGitCommitsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $request = (new PushGitCommitsRequest())
+ ->setName($formattedName);
+ $gapicClient->pushGitCommits($request);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/PushGitCommits', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function pushGitCommitsExceptionTest()
+ {
+ $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->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $request = (new PushGitCommitsRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->pushGitCommits($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 queryCompilationResultActionsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $compilationResultActionsElement = new CompilationResultAction();
+ $compilationResultActions = [
+ $compilationResultActionsElement,
+ ];
+ $expectedResponse = new QueryCompilationResultActionsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setCompilationResultActions($compilationResultActions);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->compilationResultName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[COMPILATION_RESULT]');
+ $request = (new QueryCompilationResultActionsRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->queryCompilationResultActions($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getCompilationResultActions()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/QueryCompilationResultActions', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function queryCompilationResultActionsExceptionTest()
+ {
+ $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->compilationResultName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[COMPILATION_RESULT]');
+ $request = (new QueryCompilationResultActionsRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->queryCompilationResultActions($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 queryDirectoryContentsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $directoryEntriesElement = new DirectoryEntry();
+ $directoryEntries = [
+ $directoryEntriesElement,
+ ];
+ $expectedResponse = new QueryDirectoryContentsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setDirectoryEntries($directoryEntries);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $request = (new QueryDirectoryContentsRequest())
+ ->setWorkspace($formattedWorkspace);
+ $response = $gapicClient->queryDirectoryContents($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getDirectoryEntries()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/QueryDirectoryContents', $actualFuncCall);
+ $actualValue = $actualRequestObject->getWorkspace();
+ $this->assertProtobufEquals($formattedWorkspace, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function queryDirectoryContentsExceptionTest()
+ {
+ $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
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $request = (new QueryDirectoryContentsRequest())
+ ->setWorkspace($formattedWorkspace);
+ try {
+ $gapicClient->queryDirectoryContents($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 queryWorkflowInvocationActionsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $workflowInvocationActionsElement = new WorkflowInvocationAction();
+ $workflowInvocationActions = [
+ $workflowInvocationActionsElement,
+ ];
+ $expectedResponse = new QueryWorkflowInvocationActionsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setWorkflowInvocationActions($workflowInvocationActions);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->workflowInvocationName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKFLOW_INVOCATION]');
+ $request = (new QueryWorkflowInvocationActionsRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->queryWorkflowInvocationActions($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getWorkflowInvocationActions()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/QueryWorkflowInvocationActions', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function queryWorkflowInvocationActionsExceptionTest()
+ {
+ $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->workflowInvocationName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKFLOW_INVOCATION]');
+ $request = (new QueryWorkflowInvocationActionsRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->queryWorkflowInvocationActions($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 readFileTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $fileContents = '125';
+ $expectedResponse = new ReadFileResponse();
+ $expectedResponse->setFileContents($fileContents);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $request = (new ReadFileRequest())
+ ->setWorkspace($formattedWorkspace)
+ ->setPath($path);
+ $response = $gapicClient->readFile($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.dataform.v1beta1.Dataform/ReadFile', $actualFuncCall);
+ $actualValue = $actualRequestObject->getWorkspace();
+ $this->assertProtobufEquals($formattedWorkspace, $actualValue);
+ $actualValue = $actualRequestObject->getPath();
+ $this->assertProtobufEquals($path, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function readFileExceptionTest()
+ {
+ $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
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $request = (new ReadFileRequest())
+ ->setWorkspace($formattedWorkspace)
+ ->setPath($path);
+ try {
+ $gapicClient->readFile($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 removeDirectoryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $request = (new RemoveDirectoryRequest())
+ ->setWorkspace($formattedWorkspace)
+ ->setPath($path);
+ $gapicClient->removeDirectory($request);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/RemoveDirectory', $actualFuncCall);
+ $actualValue = $actualRequestObject->getWorkspace();
+ $this->assertProtobufEquals($formattedWorkspace, $actualValue);
+ $actualValue = $actualRequestObject->getPath();
+ $this->assertProtobufEquals($path, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function removeDirectoryExceptionTest()
+ {
+ $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
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $request = (new RemoveDirectoryRequest())
+ ->setWorkspace($formattedWorkspace)
+ ->setPath($path);
+ try {
+ $gapicClient->removeDirectory($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 removeFileTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $request = (new RemoveFileRequest())
+ ->setWorkspace($formattedWorkspace)
+ ->setPath($path);
+ $gapicClient->removeFile($request);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/RemoveFile', $actualFuncCall);
+ $actualValue = $actualRequestObject->getWorkspace();
+ $this->assertProtobufEquals($formattedWorkspace, $actualValue);
+ $actualValue = $actualRequestObject->getPath();
+ $this->assertProtobufEquals($path, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function removeFileExceptionTest()
+ {
+ $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
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $request = (new RemoveFileRequest())
+ ->setWorkspace($formattedWorkspace)
+ ->setPath($path);
+ try {
+ $gapicClient->removeFile($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 resetWorkspaceChangesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $request = (new ResetWorkspaceChangesRequest())
+ ->setName($formattedName);
+ $gapicClient->resetWorkspaceChanges($request);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/ResetWorkspaceChanges', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function resetWorkspaceChangesExceptionTest()
+ {
+ $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->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $request = (new ResetWorkspaceChangesRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->resetWorkspaceChanges($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 updateRepositoryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $expectedResponse = new Repository();
+ $expectedResponse->setName($name);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $repository = new Repository();
+ $request = (new UpdateRepositoryRequest())
+ ->setRepository($repository);
+ $response = $gapicClient->updateRepository($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.dataform.v1beta1.Dataform/UpdateRepository', $actualFuncCall);
+ $actualValue = $actualRequestObject->getRepository();
+ $this->assertProtobufEquals($repository, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateRepositoryExceptionTest()
+ {
+ $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
+ $repository = new Repository();
+ $request = (new UpdateRepositoryRequest())
+ ->setRepository($repository);
+ try {
+ $gapicClient->updateRepository($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 writeFileTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new WriteFileResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $contents = '26';
+ $request = (new WriteFileRequest())
+ ->setWorkspace($formattedWorkspace)
+ ->setPath($path)
+ ->setContents($contents);
+ $response = $gapicClient->writeFile($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.dataform.v1beta1.Dataform/WriteFile', $actualFuncCall);
+ $actualValue = $actualRequestObject->getWorkspace();
+ $this->assertProtobufEquals($formattedWorkspace, $actualValue);
+ $actualValue = $actualRequestObject->getPath();
+ $this->assertProtobufEquals($path, $actualValue);
+ $actualValue = $actualRequestObject->getContents();
+ $this->assertProtobufEquals($contents, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function writeFileExceptionTest()
+ {
+ $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
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $contents = '26';
+ $request = (new WriteFileRequest())
+ ->setWorkspace($formattedWorkspace)
+ ->setPath($path)
+ ->setContents($contents);
+ try {
+ $gapicClient->writeFile($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 cancelWorkflowInvocationAsyncTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->workflowInvocationName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKFLOW_INVOCATION]');
+ $request = (new CancelWorkflowInvocationRequest())
+ ->setName($formattedName);
+ $gapicClient->cancelWorkflowInvocationAsync($request)->wait();
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/CancelWorkflowInvocation', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+}
diff --git a/owl-bot-staging/Dataform/v1beta1/tests/Unit/V1beta1/DataformClientTest.php b/owl-bot-staging/Dataform/v1beta1/tests/Unit/V1beta1/DataformClientTest.php
new file mode 100644
index 000000000000..fd10131f7975
--- /dev/null
+++ b/owl-bot-staging/Dataform/v1beta1/tests/Unit/V1beta1/DataformClientTest.php
@@ -0,0 +1,2486 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return DataformClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new DataformClient($options);
+ }
+
+ /** @test */
+ public function cancelWorkflowInvocationTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->workflowInvocationName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKFLOW_INVOCATION]');
+ $gapicClient->cancelWorkflowInvocation($formattedName);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/CancelWorkflowInvocation', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function cancelWorkflowInvocationExceptionTest()
+ {
+ $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->workflowInvocationName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKFLOW_INVOCATION]');
+ try {
+ $gapicClient->cancelWorkflowInvocation($formattedName);
+ // 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 commitWorkspaceChangesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $author = new CommitAuthor();
+ $authorName = 'authorName-1501539658';
+ $author->setName($authorName);
+ $authorEmailAddress = 'authorEmailAddress-6398493';
+ $author->setEmailAddress($authorEmailAddress);
+ $gapicClient->commitWorkspaceChanges($formattedName, $author);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/CommitWorkspaceChanges', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualRequestObject->getAuthor();
+ $this->assertProtobufEquals($author, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function commitWorkspaceChangesExceptionTest()
+ {
+ $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->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $author = new CommitAuthor();
+ $authorName = 'authorName-1501539658';
+ $author->setName($authorName);
+ $authorEmailAddress = 'authorEmailAddress-6398493';
+ $author->setEmailAddress($authorEmailAddress);
+ try {
+ $gapicClient->commitWorkspaceChanges($formattedName, $author);
+ // 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 createCompilationResultTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $gitCommitish = 'gitCommitish-459981894';
+ $dataformCoreVersion = 'dataformCoreVersion1918089577';
+ $expectedResponse = new CompilationResult();
+ $expectedResponse->setName($name);
+ $expectedResponse->setGitCommitish($gitCommitish);
+ $expectedResponse->setDataformCoreVersion($dataformCoreVersion);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $compilationResult = new CompilationResult();
+ $response = $gapicClient->createCompilationResult($formattedParent, $compilationResult);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/CreateCompilationResult', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getCompilationResult();
+ $this->assertProtobufEquals($compilationResult, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createCompilationResultExceptionTest()
+ {
+ $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->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $compilationResult = new CompilationResult();
+ try {
+ $gapicClient->createCompilationResult($formattedParent, $compilationResult);
+ // 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 createRepositoryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $expectedResponse = new Repository();
+ $expectedResponse->setName($name);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $repository = new Repository();
+ $repositoryId = 'repositoryId1101683248';
+ $response = $gapicClient->createRepository($formattedParent, $repository, $repositoryId);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/CreateRepository', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getRepository();
+ $this->assertProtobufEquals($repository, $actualValue);
+ $actualValue = $actualRequestObject->getRepositoryId();
+ $this->assertProtobufEquals($repositoryId, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createRepositoryExceptionTest()
+ {
+ $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]');
+ $repository = new Repository();
+ $repositoryId = 'repositoryId1101683248';
+ try {
+ $gapicClient->createRepository($formattedParent, $repository, $repositoryId);
+ // 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 createWorkflowInvocationTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $compilationResult = 'compilationResult-2035984871';
+ $expectedResponse = new WorkflowInvocation();
+ $expectedResponse->setName($name);
+ $expectedResponse->setCompilationResult($compilationResult);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $workflowInvocation = new WorkflowInvocation();
+ $response = $gapicClient->createWorkflowInvocation($formattedParent, $workflowInvocation);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/CreateWorkflowInvocation', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getWorkflowInvocation();
+ $this->assertProtobufEquals($workflowInvocation, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createWorkflowInvocationExceptionTest()
+ {
+ $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->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $workflowInvocation = new WorkflowInvocation();
+ try {
+ $gapicClient->createWorkflowInvocation($formattedParent, $workflowInvocation);
+ // 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 createWorkspaceTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $expectedResponse = new Workspace();
+ $expectedResponse->setName($name);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $workspace = new Workspace();
+ $workspaceId = 'workspaceId1578483973';
+ $response = $gapicClient->createWorkspace($formattedParent, $workspace, $workspaceId);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/CreateWorkspace', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getWorkspace();
+ $this->assertProtobufEquals($workspace, $actualValue);
+ $actualValue = $actualRequestObject->getWorkspaceId();
+ $this->assertProtobufEquals($workspaceId, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createWorkspaceExceptionTest()
+ {
+ $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->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $workspace = new Workspace();
+ $workspaceId = 'workspaceId1578483973';
+ try {
+ $gapicClient->createWorkspace($formattedParent, $workspace, $workspaceId);
+ // 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 deleteRepositoryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $gapicClient->deleteRepository($formattedName);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/DeleteRepository', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteRepositoryExceptionTest()
+ {
+ $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->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ try {
+ $gapicClient->deleteRepository($formattedName);
+ // 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 deleteWorkflowInvocationTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->workflowInvocationName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKFLOW_INVOCATION]');
+ $gapicClient->deleteWorkflowInvocation($formattedName);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/DeleteWorkflowInvocation', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteWorkflowInvocationExceptionTest()
+ {
+ $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->workflowInvocationName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKFLOW_INVOCATION]');
+ try {
+ $gapicClient->deleteWorkflowInvocation($formattedName);
+ // 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 deleteWorkspaceTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $gapicClient->deleteWorkspace($formattedName);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/DeleteWorkspace', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteWorkspaceExceptionTest()
+ {
+ $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->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ try {
+ $gapicClient->deleteWorkspace($formattedName);
+ // 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 fetchFileDiffTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $formattedDiff = 'formattedDiff-1687410264';
+ $expectedResponse = new FetchFileDiffResponse();
+ $expectedResponse->setFormattedDiff($formattedDiff);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $response = $gapicClient->fetchFileDiff($formattedWorkspace, $path);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/FetchFileDiff', $actualFuncCall);
+ $actualValue = $actualRequestObject->getWorkspace();
+ $this->assertProtobufEquals($formattedWorkspace, $actualValue);
+ $actualValue = $actualRequestObject->getPath();
+ $this->assertProtobufEquals($path, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function fetchFileDiffExceptionTest()
+ {
+ $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
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ try {
+ $gapicClient->fetchFileDiff($formattedWorkspace, $path);
+ // 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 fetchFileGitStatusesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new FetchFileGitStatusesResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $response = $gapicClient->fetchFileGitStatuses($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/FetchFileGitStatuses', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function fetchFileGitStatusesExceptionTest()
+ {
+ $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->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ try {
+ $gapicClient->fetchFileGitStatuses($formattedName);
+ // 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 fetchGitAheadBehindTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $commitsAhead = 1216483806;
+ $commitsBehind = 917751619;
+ $expectedResponse = new FetchGitAheadBehindResponse();
+ $expectedResponse->setCommitsAhead($commitsAhead);
+ $expectedResponse->setCommitsBehind($commitsBehind);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $response = $gapicClient->fetchGitAheadBehind($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/FetchGitAheadBehind', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function fetchGitAheadBehindExceptionTest()
+ {
+ $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->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ try {
+ $gapicClient->fetchGitAheadBehind($formattedName);
+ // 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 fetchRemoteBranchesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new FetchRemoteBranchesResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $response = $gapicClient->fetchRemoteBranches($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/FetchRemoteBranches', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function fetchRemoteBranchesExceptionTest()
+ {
+ $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->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ try {
+ $gapicClient->fetchRemoteBranches($formattedName);
+ // 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 getCompilationResultTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $gitCommitish = 'gitCommitish-459981894';
+ $dataformCoreVersion = 'dataformCoreVersion1918089577';
+ $expectedResponse = new CompilationResult();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setGitCommitish($gitCommitish);
+ $expectedResponse->setDataformCoreVersion($dataformCoreVersion);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->compilationResultName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[COMPILATION_RESULT]');
+ $response = $gapicClient->getCompilationResult($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/GetCompilationResult', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getCompilationResultExceptionTest()
+ {
+ $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->compilationResultName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[COMPILATION_RESULT]');
+ try {
+ $gapicClient->getCompilationResult($formattedName);
+ // 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 getRepositoryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $expectedResponse = new Repository();
+ $expectedResponse->setName($name2);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $response = $gapicClient->getRepository($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/GetRepository', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getRepositoryExceptionTest()
+ {
+ $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->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ try {
+ $gapicClient->getRepository($formattedName);
+ // 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 getWorkflowInvocationTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $compilationResult = 'compilationResult-2035984871';
+ $expectedResponse = new WorkflowInvocation();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setCompilationResult($compilationResult);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->workflowInvocationName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKFLOW_INVOCATION]');
+ $response = $gapicClient->getWorkflowInvocation($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/GetWorkflowInvocation', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getWorkflowInvocationExceptionTest()
+ {
+ $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->workflowInvocationName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKFLOW_INVOCATION]');
+ try {
+ $gapicClient->getWorkflowInvocation($formattedName);
+ // 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 getWorkspaceTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $expectedResponse = new Workspace();
+ $expectedResponse->setName($name2);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $response = $gapicClient->getWorkspace($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/GetWorkspace', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getWorkspaceExceptionTest()
+ {
+ $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->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ try {
+ $gapicClient->getWorkspace($formattedName);
+ // 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 installNpmPackagesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new InstallNpmPackagesResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $response = $gapicClient->installNpmPackages($formattedWorkspace);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/InstallNpmPackages', $actualFuncCall);
+ $actualValue = $actualRequestObject->getWorkspace();
+ $this->assertProtobufEquals($formattedWorkspace, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function installNpmPackagesExceptionTest()
+ {
+ $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
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ try {
+ $gapicClient->installNpmPackages($formattedWorkspace);
+ // 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 listCompilationResultsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $compilationResultsElement = new CompilationResult();
+ $compilationResults = [
+ $compilationResultsElement,
+ ];
+ $expectedResponse = new ListCompilationResultsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setCompilationResults($compilationResults);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $response = $gapicClient->listCompilationResults($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getCompilationResults()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/ListCompilationResults', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listCompilationResultsExceptionTest()
+ {
+ $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->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ try {
+ $gapicClient->listCompilationResults($formattedParent);
+ // 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 listRepositoriesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $repositoriesElement = new Repository();
+ $repositories = [
+ $repositoriesElement,
+ ];
+ $expectedResponse = new ListRepositoriesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setRepositories($repositories);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $response = $gapicClient->listRepositories($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getRepositories()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/ListRepositories', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listRepositoriesExceptionTest()
+ {
+ $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]');
+ try {
+ $gapicClient->listRepositories($formattedParent);
+ // 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 listWorkflowInvocationsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $workflowInvocationsElement = new WorkflowInvocation();
+ $workflowInvocations = [
+ $workflowInvocationsElement,
+ ];
+ $expectedResponse = new ListWorkflowInvocationsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setWorkflowInvocations($workflowInvocations);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $response = $gapicClient->listWorkflowInvocations($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getWorkflowInvocations()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/ListWorkflowInvocations', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listWorkflowInvocationsExceptionTest()
+ {
+ $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->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ try {
+ $gapicClient->listWorkflowInvocations($formattedParent);
+ // 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 listWorkspacesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $workspacesElement = new Workspace();
+ $workspaces = [
+ $workspacesElement,
+ ];
+ $expectedResponse = new ListWorkspacesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setWorkspaces($workspaces);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $response = $gapicClient->listWorkspaces($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getWorkspaces()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/ListWorkspaces', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listWorkspacesExceptionTest()
+ {
+ $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->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ try {
+ $gapicClient->listWorkspaces($formattedParent);
+ // 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 makeDirectoryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new MakeDirectoryResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $response = $gapicClient->makeDirectory($formattedWorkspace, $path);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/MakeDirectory', $actualFuncCall);
+ $actualValue = $actualRequestObject->getWorkspace();
+ $this->assertProtobufEquals($formattedWorkspace, $actualValue);
+ $actualValue = $actualRequestObject->getPath();
+ $this->assertProtobufEquals($path, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function makeDirectoryExceptionTest()
+ {
+ $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
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ try {
+ $gapicClient->makeDirectory($formattedWorkspace, $path);
+ // 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 moveDirectoryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new MoveDirectoryResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $newPath = 'newPath1377204068';
+ $response = $gapicClient->moveDirectory($formattedWorkspace, $path, $newPath);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/MoveDirectory', $actualFuncCall);
+ $actualValue = $actualRequestObject->getWorkspace();
+ $this->assertProtobufEquals($formattedWorkspace, $actualValue);
+ $actualValue = $actualRequestObject->getPath();
+ $this->assertProtobufEquals($path, $actualValue);
+ $actualValue = $actualRequestObject->getNewPath();
+ $this->assertProtobufEquals($newPath, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function moveDirectoryExceptionTest()
+ {
+ $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
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $newPath = 'newPath1377204068';
+ try {
+ $gapicClient->moveDirectory($formattedWorkspace, $path, $newPath);
+ // 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 moveFileTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new MoveFileResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $newPath = 'newPath1377204068';
+ $response = $gapicClient->moveFile($formattedWorkspace, $path, $newPath);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/MoveFile', $actualFuncCall);
+ $actualValue = $actualRequestObject->getWorkspace();
+ $this->assertProtobufEquals($formattedWorkspace, $actualValue);
+ $actualValue = $actualRequestObject->getPath();
+ $this->assertProtobufEquals($path, $actualValue);
+ $actualValue = $actualRequestObject->getNewPath();
+ $this->assertProtobufEquals($newPath, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function moveFileExceptionTest()
+ {
+ $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
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $newPath = 'newPath1377204068';
+ try {
+ $gapicClient->moveFile($formattedWorkspace, $path, $newPath);
+ // 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 pullGitCommitsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $author = new CommitAuthor();
+ $authorName = 'authorName-1501539658';
+ $author->setName($authorName);
+ $authorEmailAddress = 'authorEmailAddress-6398493';
+ $author->setEmailAddress($authorEmailAddress);
+ $gapicClient->pullGitCommits($formattedName, $author);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/PullGitCommits', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualRequestObject->getAuthor();
+ $this->assertProtobufEquals($author, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function pullGitCommitsExceptionTest()
+ {
+ $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->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $author = new CommitAuthor();
+ $authorName = 'authorName-1501539658';
+ $author->setName($authorName);
+ $authorEmailAddress = 'authorEmailAddress-6398493';
+ $author->setEmailAddress($authorEmailAddress);
+ try {
+ $gapicClient->pullGitCommits($formattedName, $author);
+ // 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 pushGitCommitsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $gapicClient->pushGitCommits($formattedName);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/PushGitCommits', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function pushGitCommitsExceptionTest()
+ {
+ $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->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ try {
+ $gapicClient->pushGitCommits($formattedName);
+ // 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 queryCompilationResultActionsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $compilationResultActionsElement = new CompilationResultAction();
+ $compilationResultActions = [
+ $compilationResultActionsElement,
+ ];
+ $expectedResponse = new QueryCompilationResultActionsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setCompilationResultActions($compilationResultActions);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->compilationResultName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[COMPILATION_RESULT]');
+ $response = $gapicClient->queryCompilationResultActions($formattedName);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getCompilationResultActions()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/QueryCompilationResultActions', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function queryCompilationResultActionsExceptionTest()
+ {
+ $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->compilationResultName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[COMPILATION_RESULT]');
+ try {
+ $gapicClient->queryCompilationResultActions($formattedName);
+ // 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 queryDirectoryContentsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $directoryEntriesElement = new DirectoryEntry();
+ $directoryEntries = [
+ $directoryEntriesElement,
+ ];
+ $expectedResponse = new QueryDirectoryContentsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setDirectoryEntries($directoryEntries);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $response = $gapicClient->queryDirectoryContents($formattedWorkspace);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getDirectoryEntries()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/QueryDirectoryContents', $actualFuncCall);
+ $actualValue = $actualRequestObject->getWorkspace();
+ $this->assertProtobufEquals($formattedWorkspace, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function queryDirectoryContentsExceptionTest()
+ {
+ $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
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ try {
+ $gapicClient->queryDirectoryContents($formattedWorkspace);
+ // 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 queryWorkflowInvocationActionsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $workflowInvocationActionsElement = new WorkflowInvocationAction();
+ $workflowInvocationActions = [
+ $workflowInvocationActionsElement,
+ ];
+ $expectedResponse = new QueryWorkflowInvocationActionsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setWorkflowInvocationActions($workflowInvocationActions);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->workflowInvocationName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKFLOW_INVOCATION]');
+ $response = $gapicClient->queryWorkflowInvocationActions($formattedName);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getWorkflowInvocationActions()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/QueryWorkflowInvocationActions', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function queryWorkflowInvocationActionsExceptionTest()
+ {
+ $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->workflowInvocationName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKFLOW_INVOCATION]');
+ try {
+ $gapicClient->queryWorkflowInvocationActions($formattedName);
+ // 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 readFileTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $fileContents = '125';
+ $expectedResponse = new ReadFileResponse();
+ $expectedResponse->setFileContents($fileContents);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $response = $gapicClient->readFile($formattedWorkspace, $path);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/ReadFile', $actualFuncCall);
+ $actualValue = $actualRequestObject->getWorkspace();
+ $this->assertProtobufEquals($formattedWorkspace, $actualValue);
+ $actualValue = $actualRequestObject->getPath();
+ $this->assertProtobufEquals($path, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function readFileExceptionTest()
+ {
+ $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
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ try {
+ $gapicClient->readFile($formattedWorkspace, $path);
+ // 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 removeDirectoryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $gapicClient->removeDirectory($formattedWorkspace, $path);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/RemoveDirectory', $actualFuncCall);
+ $actualValue = $actualRequestObject->getWorkspace();
+ $this->assertProtobufEquals($formattedWorkspace, $actualValue);
+ $actualValue = $actualRequestObject->getPath();
+ $this->assertProtobufEquals($path, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function removeDirectoryExceptionTest()
+ {
+ $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
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ try {
+ $gapicClient->removeDirectory($formattedWorkspace, $path);
+ // 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 removeFileTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $gapicClient->removeFile($formattedWorkspace, $path);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/RemoveFile', $actualFuncCall);
+ $actualValue = $actualRequestObject->getWorkspace();
+ $this->assertProtobufEquals($formattedWorkspace, $actualValue);
+ $actualValue = $actualRequestObject->getPath();
+ $this->assertProtobufEquals($path, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function removeFileExceptionTest()
+ {
+ $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
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ try {
+ $gapicClient->removeFile($formattedWorkspace, $path);
+ // 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 resetWorkspaceChangesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $gapicClient->resetWorkspaceChanges($formattedName);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/ResetWorkspaceChanges', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function resetWorkspaceChangesExceptionTest()
+ {
+ $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->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ try {
+ $gapicClient->resetWorkspaceChanges($formattedName);
+ // 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 updateRepositoryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $expectedResponse = new Repository();
+ $expectedResponse->setName($name);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $repository = new Repository();
+ $response = $gapicClient->updateRepository($repository);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/UpdateRepository', $actualFuncCall);
+ $actualValue = $actualRequestObject->getRepository();
+ $this->assertProtobufEquals($repository, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateRepositoryExceptionTest()
+ {
+ $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
+ $repository = new Repository();
+ try {
+ $gapicClient->updateRepository($repository);
+ // 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 writeFileTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new WriteFileResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $contents = '26';
+ $response = $gapicClient->writeFile($formattedWorkspace, $path, $contents);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.dataform.v1beta1.Dataform/WriteFile', $actualFuncCall);
+ $actualValue = $actualRequestObject->getWorkspace();
+ $this->assertProtobufEquals($formattedWorkspace, $actualValue);
+ $actualValue = $actualRequestObject->getPath();
+ $this->assertProtobufEquals($path, $actualValue);
+ $actualValue = $actualRequestObject->getContents();
+ $this->assertProtobufEquals($contents, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function writeFileExceptionTest()
+ {
+ $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
+ $formattedWorkspace = $gapicClient->workspaceName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[WORKSPACE]');
+ $path = 'path3433509';
+ $contents = '26';
+ try {
+ $gapicClient->writeFile($formattedWorkspace, $path, $contents);
+ // 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);
+ $response = $gapicClient->getLocation();
+ $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);
+ try {
+ $gapicClient->getLocation();
+ // 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);
+ $response = $gapicClient->listLocations();
+ $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);
+ try {
+ $gapicClient->listLocations();
+ // 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());
+ }
+}
diff --git a/owl-bot-staging/DataprocMetastore/logging/v1/proto/src/GPBMetadata/Google/Cloud/Metastore/Logging/V1/LogStreams.php b/owl-bot-staging/DataprocMetastore/logging/v1/proto/src/GPBMetadata/Google/Cloud/Metastore/Logging/V1/LogStreams.php
new file mode 100644
index 000000000000..a4316d75c387
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/logging/v1/proto/src/GPBMetadata/Google/Cloud/Metastore/Logging/V1/LogStreams.php
@@ -0,0 +1,31 @@
+internalAddGeneratedFile(
+ '
+©
+3google/cloud/metastore/logging/v1/log_streams.proto!google.cloud.metastore.logging.v1"#
+RequestsLogEntry
+message ( ")
+SystemActivityLogEntry
+message ( Bw
+!google.cloud.metastore.logging.v1BLogStreamsProtoPZ?cloud.google.com/go/metastore/logging/apiv1/loggingpb;loggingpbbproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/logging/v1/proto/src/Google/Cloud/Metastore/Logging/V1/RequestsLogEntry.php b/owl-bot-staging/DataprocMetastore/logging/v1/proto/src/Google/Cloud/Metastore/Logging/V1/RequestsLogEntry.php
new file mode 100644
index 000000000000..a9dfe603bdac
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/logging/v1/proto/src/Google/Cloud/Metastore/Logging/V1/RequestsLogEntry.php
@@ -0,0 +1,68 @@
+google.cloud.metastore.logging.v1.RequestsLogEntry
+ */
+class RequestsLogEntry extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A free-text string describing the request.
+ *
+ * Generated from protobuf field string message = 1;
+ */
+ protected $message = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $message
+ * A free-text string describing the request.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\Logging\V1\LogStreams::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A free-text string describing the request.
+ *
+ * Generated from protobuf field string message = 1;
+ * @return string
+ */
+ public function getMessage()
+ {
+ return $this->message;
+ }
+
+ /**
+ * A free-text string describing the request.
+ *
+ * Generated from protobuf field string message = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->message = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/logging/v1/proto/src/Google/Cloud/Metastore/Logging/V1/SystemActivityLogEntry.php b/owl-bot-staging/DataprocMetastore/logging/v1/proto/src/Google/Cloud/Metastore/Logging/V1/SystemActivityLogEntry.php
new file mode 100644
index 000000000000..585d960a9d80
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/logging/v1/proto/src/Google/Cloud/Metastore/Logging/V1/SystemActivityLogEntry.php
@@ -0,0 +1,68 @@
+google.cloud.metastore.logging.v1.SystemActivityLogEntry
+ */
+class SystemActivityLogEntry extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A free-text string describing the system activity.
+ *
+ * Generated from protobuf field string message = 1;
+ */
+ protected $message = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $message
+ * A free-text string describing the system activity.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\Logging\V1\LogStreams::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A free-text string describing the system activity.
+ *
+ * Generated from protobuf field string message = 1;
+ * @return string
+ */
+ public function getMessage()
+ {
+ return $this->message;
+ }
+
+ /**
+ * A free-text string describing the system activity.
+ *
+ * Generated from protobuf field string message = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->message = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/GPBMetadata/Google/Cloud/Metastore/V1/Metastore.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/GPBMetadata/Google/Cloud/Metastore/V1/Metastore.php
new file mode 100644
index 000000000000..6464c825796a
Binary files /dev/null and b/owl-bot-staging/DataprocMetastore/v1/proto/src/GPBMetadata/Google/Cloud/Metastore/V1/Metastore.php differ
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/GPBMetadata/Google/Cloud/Metastore/V1/MetastoreFederation.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/GPBMetadata/Google/Cloud/Metastore/V1/MetastoreFederation.php
new file mode 100644
index 000000000000..79f53ca17937
Binary files /dev/null and b/owl-bot-staging/DataprocMetastore/v1/proto/src/GPBMetadata/Google/Cloud/Metastore/V1/MetastoreFederation.php differ
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/AuxiliaryVersionConfig.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/AuxiliaryVersionConfig.php
new file mode 100644
index 000000000000..f140b4c76616
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/AuxiliaryVersionConfig.php
@@ -0,0 +1,169 @@
+google.cloud.metastore.v1.AuxiliaryVersionConfig
+ */
+class AuxiliaryVersionConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The Hive metastore version of the auxiliary service. It must be less
+ * than the primary Hive metastore service's version.
+ *
+ * Generated from protobuf field string version = 1;
+ */
+ protected $version = '';
+ /**
+ * A mapping of Hive metastore configuration key-value pairs to apply to the
+ * auxiliary Hive metastore (configured in `hive-site.xml`) in addition to
+ * the primary version's overrides. If keys are present in both the auxiliary
+ * version's overrides and the primary version's overrides, the value from
+ * the auxiliary version's overrides takes precedence.
+ *
+ * Generated from protobuf field map config_overrides = 2;
+ */
+ private $config_overrides;
+ /**
+ * Output only. The network configuration contains the endpoint URI(s) of the
+ * auxiliary Hive metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.NetworkConfig network_config = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $network_config = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $version
+ * The Hive metastore version of the auxiliary service. It must be less
+ * than the primary Hive metastore service's version.
+ * @type array|\Google\Protobuf\Internal\MapField $config_overrides
+ * A mapping of Hive metastore configuration key-value pairs to apply to the
+ * auxiliary Hive metastore (configured in `hive-site.xml`) in addition to
+ * the primary version's overrides. If keys are present in both the auxiliary
+ * version's overrides and the primary version's overrides, the value from
+ * the auxiliary version's overrides takes precedence.
+ * @type \Google\Cloud\Metastore\V1\NetworkConfig $network_config
+ * Output only. The network configuration contains the endpoint URI(s) of the
+ * auxiliary Hive metastore service.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The Hive metastore version of the auxiliary service. It must be less
+ * than the primary Hive metastore service's version.
+ *
+ * Generated from protobuf field string version = 1;
+ * @return string
+ */
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ /**
+ * The Hive metastore version of the auxiliary service. It must be less
+ * than the primary Hive metastore service's version.
+ *
+ * Generated from protobuf field string version = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->version = $var;
+
+ return $this;
+ }
+
+ /**
+ * A mapping of Hive metastore configuration key-value pairs to apply to the
+ * auxiliary Hive metastore (configured in `hive-site.xml`) in addition to
+ * the primary version's overrides. If keys are present in both the auxiliary
+ * version's overrides and the primary version's overrides, the value from
+ * the auxiliary version's overrides takes precedence.
+ *
+ * Generated from protobuf field map config_overrides = 2;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getConfigOverrides()
+ {
+ return $this->config_overrides;
+ }
+
+ /**
+ * A mapping of Hive metastore configuration key-value pairs to apply to the
+ * auxiliary Hive metastore (configured in `hive-site.xml`) in addition to
+ * the primary version's overrides. If keys are present in both the auxiliary
+ * version's overrides and the primary version's overrides, the value from
+ * the auxiliary version's overrides takes precedence.
+ *
+ * Generated from protobuf field map config_overrides = 2;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setConfigOverrides($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->config_overrides = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The network configuration contains the endpoint URI(s) of the
+ * auxiliary Hive metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.NetworkConfig network_config = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Metastore\V1\NetworkConfig|null
+ */
+ public function getNetworkConfig()
+ {
+ return $this->network_config;
+ }
+
+ public function hasNetworkConfig()
+ {
+ return isset($this->network_config);
+ }
+
+ public function clearNetworkConfig()
+ {
+ unset($this->network_config);
+ }
+
+ /**
+ * Output only. The network configuration contains the endpoint URI(s) of the
+ * auxiliary Hive metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.NetworkConfig network_config = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Metastore\V1\NetworkConfig $var
+ * @return $this
+ */
+ public function setNetworkConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1\NetworkConfig::class);
+ $this->network_config = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/BackendMetastore.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/BackendMetastore.php
new file mode 100644
index 000000000000..ec94c364d40e
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/BackendMetastore.php
@@ -0,0 +1,125 @@
+google.cloud.metastore.v1.BackendMetastore
+ */
+class BackendMetastore extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The relative resource name of the metastore that is being federated.
+ * The formats of the relative resource names for the currently supported
+ * metastores are listed below:
+ * * BigQuery
+ * * `projects/{project_id}`
+ * * Dataproc Metastore
+ * * `projects/{project_id}/locations/{location}/services/{service_id}`
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * The type of the backend metastore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.BackendMetastore.MetastoreType metastore_type = 2;
+ */
+ protected $metastore_type = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The relative resource name of the metastore that is being federated.
+ * The formats of the relative resource names for the currently supported
+ * metastores are listed below:
+ * * BigQuery
+ * * `projects/{project_id}`
+ * * Dataproc Metastore
+ * * `projects/{project_id}/locations/{location}/services/{service_id}`
+ * @type int $metastore_type
+ * The type of the backend metastore.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\MetastoreFederation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The relative resource name of the metastore that is being federated.
+ * The formats of the relative resource names for the currently supported
+ * metastores are listed below:
+ * * BigQuery
+ * * `projects/{project_id}`
+ * * Dataproc Metastore
+ * * `projects/{project_id}/locations/{location}/services/{service_id}`
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The relative resource name of the metastore that is being federated.
+ * The formats of the relative resource names for the currently supported
+ * metastores are listed below:
+ * * BigQuery
+ * * `projects/{project_id}`
+ * * Dataproc Metastore
+ * * `projects/{project_id}/locations/{location}/services/{service_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;
+ }
+
+ /**
+ * The type of the backend metastore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.BackendMetastore.MetastoreType metastore_type = 2;
+ * @return int
+ */
+ public function getMetastoreType()
+ {
+ return $this->metastore_type;
+ }
+
+ /**
+ * The type of the backend metastore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.BackendMetastore.MetastoreType metastore_type = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setMetastoreType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1\BackendMetastore\MetastoreType::class);
+ $this->metastore_type = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/BackendMetastore/MetastoreType.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/BackendMetastore/MetastoreType.php
new file mode 100644
index 000000000000..20df0d2971ba
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/BackendMetastore/MetastoreType.php
@@ -0,0 +1,57 @@
+google.cloud.metastore.v1.BackendMetastore.MetastoreType
+ */
+class MetastoreType
+{
+ /**
+ * The metastore type is not set.
+ *
+ * Generated from protobuf enum METASTORE_TYPE_UNSPECIFIED = 0;
+ */
+ const METASTORE_TYPE_UNSPECIFIED = 0;
+ /**
+ * The backend metastore is Dataproc Metastore.
+ *
+ * Generated from protobuf enum DATAPROC_METASTORE = 3;
+ */
+ const DATAPROC_METASTORE = 3;
+
+ private static $valueToName = [
+ self::METASTORE_TYPE_UNSPECIFIED => 'METASTORE_TYPE_UNSPECIFIED',
+ self::DATAPROC_METASTORE => 'DATAPROC_METASTORE',
+ ];
+
+ 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(MetastoreType::class, \Google\Cloud\Metastore\V1\BackendMetastore_MetastoreType::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/BackendMetastore_MetastoreType.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/BackendMetastore_MetastoreType.php
new file mode 100644
index 000000000000..932f83c2c5f7
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/BackendMetastore_MetastoreType.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1.Backup
+ */
+class Backup extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Immutable. The relative resource name of the backup, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $name = '';
+ /**
+ * Output only. The time when the backup was started.
+ *
+ * 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 backup finished creating.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $end_time = null;
+ /**
+ * Output only. The current state of the backup.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Backup.State state = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. The revision of the service at the time of backup.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Service service_revision = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $service_revision = null;
+ /**
+ * The description of the backup.
+ *
+ * Generated from protobuf field string description = 6;
+ */
+ protected $description = '';
+ /**
+ * Output only. Services that are restoring from the backup.
+ *
+ * Generated from protobuf field repeated string restoring_services = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $restoring_services;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Immutable. The relative resource name of the backup, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time when the backup was started.
+ * @type \Google\Protobuf\Timestamp $end_time
+ * Output only. The time when the backup finished creating.
+ * @type int $state
+ * Output only. The current state of the backup.
+ * @type \Google\Cloud\Metastore\V1\Service $service_revision
+ * Output only. The revision of the service at the time of backup.
+ * @type string $description
+ * The description of the backup.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $restoring_services
+ * Output only. Services that are restoring from the backup.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Immutable. The relative resource name of the backup, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Immutable. The relative resource name of the backup, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the backup was started.
+ *
+ * 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 backup was started.
+ *
+ * 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 backup finished creating.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 3 [(.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 when the backup finished creating.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 3 [(.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 current state of the backup.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Backup.State state = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The current state of the backup.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Backup.State state = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1\Backup\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The revision of the service at the time of backup.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Service service_revision = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Metastore\V1\Service|null
+ */
+ public function getServiceRevision()
+ {
+ return $this->service_revision;
+ }
+
+ public function hasServiceRevision()
+ {
+ return isset($this->service_revision);
+ }
+
+ public function clearServiceRevision()
+ {
+ unset($this->service_revision);
+ }
+
+ /**
+ * Output only. The revision of the service at the time of backup.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Service service_revision = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Metastore\V1\Service $var
+ * @return $this
+ */
+ public function setServiceRevision($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1\Service::class);
+ $this->service_revision = $var;
+
+ return $this;
+ }
+
+ /**
+ * The description of the backup.
+ *
+ * Generated from protobuf field string description = 6;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * The description of the backup.
+ *
+ * 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;
+ }
+
+ /**
+ * Output only. Services that are restoring from the backup.
+ *
+ * Generated from protobuf field repeated string restoring_services = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRestoringServices()
+ {
+ return $this->restoring_services;
+ }
+
+ /**
+ * Output only. Services that are restoring from the backup.
+ *
+ * Generated from protobuf field repeated string restoring_services = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRestoringServices($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->restoring_services = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Backup/State.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Backup/State.php
new file mode 100644
index 000000000000..22fbd2881e27
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Backup/State.php
@@ -0,0 +1,85 @@
+google.cloud.metastore.v1.Backup.State
+ */
+class State
+{
+ /**
+ * The state of the backup is unknown.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The backup is being created.
+ *
+ * Generated from protobuf enum CREATING = 1;
+ */
+ const CREATING = 1;
+ /**
+ * The backup is being deleted.
+ *
+ * Generated from protobuf enum DELETING = 2;
+ */
+ const DELETING = 2;
+ /**
+ * The backup is active and ready to use.
+ *
+ * Generated from protobuf enum ACTIVE = 3;
+ */
+ const ACTIVE = 3;
+ /**
+ * The backup failed.
+ *
+ * Generated from protobuf enum FAILED = 4;
+ */
+ const FAILED = 4;
+ /**
+ * The backup is being restored.
+ *
+ * Generated from protobuf enum RESTORING = 5;
+ */
+ const RESTORING = 5;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::CREATING => 'CREATING',
+ self::DELETING => 'DELETING',
+ self::ACTIVE => 'ACTIVE',
+ self::FAILED => 'FAILED',
+ self::RESTORING => 'RESTORING',
+ ];
+
+ 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\Metastore\V1\Backup_State::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Backup_State.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Backup_State.php
new file mode 100644
index 000000000000..9889e8a4f3b6
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Backup_State.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1.CreateBackupRequest
+ */
+class CreateBackupRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the service in which to create a
+ * backup of the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The ID of the backup, which is used as the final component of the
+ * backup's name.
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ *
+ * Generated from protobuf field string backup_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $backup_id = '';
+ /**
+ * Required. The backup to create. The `name` field is ignored. The ID of the
+ * created backup must be provided in the request's `backup_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Backup backup = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $backup = null;
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param string $parent Required. The relative resource name of the service in which to create a
+ * backup of the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`. Please see
+ * {@see DataprocMetastoreClient::serviceName()} for help formatting this field.
+ * @param \Google\Cloud\Metastore\V1\Backup $backup Required. The backup to create. The `name` field is ignored. The ID of the
+ * created backup must be provided in the request's `backup_id` field.
+ * @param string $backupId Required. The ID of the backup, which is used as the final component of the
+ * backup's name.
+ *
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ *
+ * @return \Google\Cloud\Metastore\V1\CreateBackupRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\Metastore\V1\Backup $backup, string $backupId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setBackup($backup)
+ ->setBackupId($backupId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The relative resource name of the service in which to create a
+ * backup of the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * @type string $backup_id
+ * Required. The ID of the backup, which is used as the final component of the
+ * backup's name.
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ * @type \Google\Cloud\Metastore\V1\Backup $backup
+ * Required. The backup to create. The `name` field is ignored. The ID of the
+ * created backup must be provided in the request's `backup_id` field.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the service in which to create a
+ * backup of the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * 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 relative resource name of the service in which to create a
+ * backup of the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * 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 backup, which is used as the final component of the
+ * backup's name.
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ *
+ * Generated from protobuf field string backup_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getBackupId()
+ {
+ return $this->backup_id;
+ }
+
+ /**
+ * Required. The ID of the backup, which is used as the final component of the
+ * backup's name.
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ *
+ * Generated from protobuf field string backup_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setBackupId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->backup_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The backup to create. The `name` field is ignored. The ID of the
+ * created backup must be provided in the request's `backup_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Backup backup = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Metastore\V1\Backup|null
+ */
+ public function getBackup()
+ {
+ return $this->backup;
+ }
+
+ public function hasBackup()
+ {
+ return isset($this->backup);
+ }
+
+ public function clearBackup()
+ {
+ unset($this->backup);
+ }
+
+ /**
+ * Required. The backup to create. The `name` field is ignored. The ID of the
+ * created backup must be provided in the request's `backup_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Backup backup = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Metastore\V1\Backup $var
+ * @return $this
+ */
+ public function setBackup($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1\Backup::class);
+ $this->backup = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/CreateFederationRequest.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/CreateFederationRequest.php
new file mode 100644
index 000000000000..3b708f708665
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/CreateFederationRequest.php
@@ -0,0 +1,275 @@
+google.cloud.metastore.v1.CreateFederationRequest
+ */
+class CreateFederationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the location in which to create a
+ * federation service, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The ID of the metastore federation, which is used as the final
+ * component of the metastore federation's name.
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ *
+ * Generated from protobuf field string federation_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $federation_id = '';
+ /**
+ * Required. The Metastore Federation to create. The `name` field is
+ * ignored. The ID of the created metastore federation must be
+ * provided in the request's `federation_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Federation federation = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $federation = null;
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param string $parent Required. The relative resource name of the location in which to create a
+ * federation service, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}`. Please see
+ * {@see DataprocMetastoreFederationClient::locationName()} for help formatting this field.
+ * @param \Google\Cloud\Metastore\V1\Federation $federation Required. The Metastore Federation to create. The `name` field is
+ * ignored. The ID of the created metastore federation must be
+ * provided in the request's `federation_id` field.
+ * @param string $federationId Required. The ID of the metastore federation, which is used as the final
+ * component of the metastore federation's name.
+ *
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ *
+ * @return \Google\Cloud\Metastore\V1\CreateFederationRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\Metastore\V1\Federation $federation, string $federationId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setFederation($federation)
+ ->setFederationId($federationId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The relative resource name of the location in which to create a
+ * federation service, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ * @type string $federation_id
+ * Required. The ID of the metastore federation, which is used as the final
+ * component of the metastore federation's name.
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ * @type \Google\Cloud\Metastore\V1\Federation $federation
+ * Required. The Metastore Federation to create. The `name` field is
+ * ignored. The ID of the created metastore federation must be
+ * provided in the request's `federation_id` field.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\MetastoreFederation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the location in which to create a
+ * federation service, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * 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 relative resource name of the location in which to create a
+ * federation service, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * 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 metastore federation, which is used as the final
+ * component of the metastore federation's name.
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ *
+ * Generated from protobuf field string federation_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getFederationId()
+ {
+ return $this->federation_id;
+ }
+
+ /**
+ * Required. The ID of the metastore federation, which is used as the final
+ * component of the metastore federation's name.
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ *
+ * Generated from protobuf field string federation_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setFederationId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->federation_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The Metastore Federation to create. The `name` field is
+ * ignored. The ID of the created metastore federation must be
+ * provided in the request's `federation_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Federation federation = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Metastore\V1\Federation|null
+ */
+ public function getFederation()
+ {
+ return $this->federation;
+ }
+
+ public function hasFederation()
+ {
+ return isset($this->federation);
+ }
+
+ public function clearFederation()
+ {
+ unset($this->federation);
+ }
+
+ /**
+ * Required. The Metastore Federation to create. The `name` field is
+ * ignored. The ID of the created metastore federation must be
+ * provided in the request's `federation_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Federation federation = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Metastore\V1\Federation $var
+ * @return $this
+ */
+ public function setFederation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1\Federation::class);
+ $this->federation = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/CreateMetadataImportRequest.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/CreateMetadataImportRequest.php
new file mode 100644
index 000000000000..abffe4c45a8b
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/CreateMetadataImportRequest.php
@@ -0,0 +1,276 @@
+google.cloud.metastore.v1.CreateMetadataImportRequest
+ */
+class CreateMetadataImportRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the service in which to create a
+ * metastore import, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The ID of the metadata import, which is used as the final
+ * component of the metadata import's name.
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ *
+ * Generated from protobuf field string metadata_import_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $metadata_import_id = '';
+ /**
+ * Required. The metadata import to create. The `name` field is ignored. The
+ * ID of the created metadata import must be provided in the request's
+ * `metadata_import_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.MetadataImport metadata_import = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $metadata_import = null;
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param string $parent Required. The relative resource name of the service in which to create a
+ * metastore import, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`. Please see
+ * {@see DataprocMetastoreClient::serviceName()} for help formatting this field.
+ * @param \Google\Cloud\Metastore\V1\MetadataImport $metadataImport Required. The metadata import to create. The `name` field is ignored. The
+ * ID of the created metadata import must be provided in the request's
+ * `metadata_import_id` field.
+ * @param string $metadataImportId Required. The ID of the metadata import, which is used as the final
+ * component of the metadata import's name.
+ *
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ *
+ * @return \Google\Cloud\Metastore\V1\CreateMetadataImportRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\Metastore\V1\MetadataImport $metadataImport, string $metadataImportId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setMetadataImport($metadataImport)
+ ->setMetadataImportId($metadataImportId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The relative resource name of the service in which to create a
+ * metastore import, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * @type string $metadata_import_id
+ * Required. The ID of the metadata import, which is used as the final
+ * component of the metadata import's name.
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ * @type \Google\Cloud\Metastore\V1\MetadataImport $metadata_import
+ * Required. The metadata import to create. The `name` field is ignored. The
+ * ID of the created metadata import must be provided in the request's
+ * `metadata_import_id` field.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the service in which to create a
+ * metastore import, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * 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 relative resource name of the service in which to create a
+ * metastore import, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * 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 metadata import, which is used as the final
+ * component of the metadata import's name.
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ *
+ * Generated from protobuf field string metadata_import_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getMetadataImportId()
+ {
+ return $this->metadata_import_id;
+ }
+
+ /**
+ * Required. The ID of the metadata import, which is used as the final
+ * component of the metadata import's name.
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ *
+ * Generated from protobuf field string metadata_import_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setMetadataImportId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->metadata_import_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The metadata import to create. The `name` field is ignored. The
+ * ID of the created metadata import must be provided in the request's
+ * `metadata_import_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.MetadataImport metadata_import = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Metastore\V1\MetadataImport|null
+ */
+ public function getMetadataImport()
+ {
+ return $this->metadata_import;
+ }
+
+ public function hasMetadataImport()
+ {
+ return isset($this->metadata_import);
+ }
+
+ public function clearMetadataImport()
+ {
+ unset($this->metadata_import);
+ }
+
+ /**
+ * Required. The metadata import to create. The `name` field is ignored. The
+ * ID of the created metadata import must be provided in the request's
+ * `metadata_import_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.MetadataImport metadata_import = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Metastore\V1\MetadataImport $var
+ * @return $this
+ */
+ public function setMetadataImport($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1\MetadataImport::class);
+ $this->metadata_import = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/CreateServiceRequest.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/CreateServiceRequest.php
new file mode 100644
index 000000000000..b762fd7142f0
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/CreateServiceRequest.php
@@ -0,0 +1,276 @@
+google.cloud.metastore.v1.CreateServiceRequest
+ */
+class CreateServiceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the location in which to create a
+ * metastore service, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The ID of the metastore service, which is used as the final
+ * component of the metastore service's name.
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ *
+ * Generated from protobuf field string service_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $service_id = '';
+ /**
+ * Required. The Metastore service to create. The `name` field is
+ * ignored. The ID of the created metastore service must be provided in
+ * the request's `service_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Service service = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $service = null;
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param string $parent Required. The relative resource name of the location in which to create a
+ * metastore service, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}`. Please see
+ * {@see DataprocMetastoreClient::locationName()} for help formatting this field.
+ * @param \Google\Cloud\Metastore\V1\Service $service Required. The Metastore service to create. The `name` field is
+ * ignored. The ID of the created metastore service must be provided in
+ * the request's `service_id` field.
+ * @param string $serviceId Required. The ID of the metastore service, which is used as the final
+ * component of the metastore service's name.
+ *
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ *
+ * @return \Google\Cloud\Metastore\V1\CreateServiceRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\Metastore\V1\Service $service, string $serviceId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setService($service)
+ ->setServiceId($serviceId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The relative resource name of the location in which to create a
+ * metastore service, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ * @type string $service_id
+ * Required. The ID of the metastore service, which is used as the final
+ * component of the metastore service's name.
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ * @type \Google\Cloud\Metastore\V1\Service $service
+ * Required. The Metastore service to create. The `name` field is
+ * ignored. The ID of the created metastore service must be provided in
+ * the request's `service_id` field.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the location in which to create a
+ * metastore service, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * 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 relative resource name of the location in which to create a
+ * metastore service, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * 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 metastore service, which is used as the final
+ * component of the metastore service's name.
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ *
+ * Generated from protobuf field string service_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getServiceId()
+ {
+ return $this->service_id;
+ }
+
+ /**
+ * Required. The ID of the metastore service, which is used as the final
+ * component of the metastore service's name.
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ *
+ * Generated from protobuf field string service_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setServiceId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The Metastore service to create. The `name` field is
+ * ignored. The ID of the created metastore service must be provided in
+ * the request's `service_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Service service = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Metastore\V1\Service|null
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ public function hasService()
+ {
+ return isset($this->service);
+ }
+
+ public function clearService()
+ {
+ unset($this->service);
+ }
+
+ /**
+ * Required. The Metastore service to create. The `name` field is
+ * ignored. The ID of the created metastore service must be provided in
+ * the request's `service_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Service service = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Metastore\V1\Service $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1\Service::class);
+ $this->service = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/DatabaseDumpSpec.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/DatabaseDumpSpec.php
new file mode 100644
index 000000000000..31e9d35f9269
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/DatabaseDumpSpec.php
@@ -0,0 +1,33 @@
+google.cloud.metastore.v1.DatabaseDumpSpec
+ */
+class DatabaseDumpSpec extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/DatabaseDumpSpec/Type.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/DatabaseDumpSpec/Type.php
new file mode 100644
index 000000000000..2fdb77518f4a
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/DatabaseDumpSpec/Type.php
@@ -0,0 +1,64 @@
+google.cloud.metastore.v1.DatabaseDumpSpec.Type
+ */
+class Type
+{
+ /**
+ * The type of the database dump is unknown.
+ *
+ * Generated from protobuf enum TYPE_UNSPECIFIED = 0;
+ */
+ const TYPE_UNSPECIFIED = 0;
+ /**
+ * Database dump is a MySQL dump file.
+ *
+ * Generated from protobuf enum MYSQL = 1;
+ */
+ const MYSQL = 1;
+ /**
+ * Database dump contains Avro files.
+ *
+ * Generated from protobuf enum AVRO = 2;
+ */
+ const AVRO = 2;
+
+ private static $valueToName = [
+ self::TYPE_UNSPECIFIED => 'TYPE_UNSPECIFIED',
+ self::MYSQL => 'MYSQL',
+ self::AVRO => 'AVRO',
+ ];
+
+ 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\Metastore\V1\DatabaseDumpSpec_Type::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/DatabaseDumpSpec_Type.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/DatabaseDumpSpec_Type.php
new file mode 100644
index 000000000000..1524b973829b
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/DatabaseDumpSpec_Type.php
@@ -0,0 +1,16 @@
+_simpleRequest('/google.cloud.metastore.v1.DataprocMetastoreFederation/ListFederations',
+ $argument,
+ ['\Google\Cloud\Metastore\V1\ListFederationsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Gets the details of a single federation.
+ * @param \Google\Cloud\Metastore\V1\GetFederationRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetFederation(\Google\Cloud\Metastore\V1\GetFederationRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1.DataprocMetastoreFederation/GetFederation',
+ $argument,
+ ['\Google\Cloud\Metastore\V1\Federation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Creates a metastore federation in a project and location.
+ * @param \Google\Cloud\Metastore\V1\CreateFederationRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CreateFederation(\Google\Cloud\Metastore\V1\CreateFederationRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1.DataprocMetastoreFederation/CreateFederation',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Updates the fields of a federation.
+ * @param \Google\Cloud\Metastore\V1\UpdateFederationRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function UpdateFederation(\Google\Cloud\Metastore\V1\UpdateFederationRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1.DataprocMetastoreFederation/UpdateFederation',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Deletes a single federation.
+ * @param \Google\Cloud\Metastore\V1\DeleteFederationRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function DeleteFederation(\Google\Cloud\Metastore\V1\DeleteFederationRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1.DataprocMetastoreFederation/DeleteFederation',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+}
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/DataprocMetastoreGrpcClient.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/DataprocMetastoreGrpcClient.php
new file mode 100644
index 000000000000..30ae341127b0
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/DataprocMetastoreGrpcClient.php
@@ -0,0 +1,277 @@
+_simpleRequest('/google.cloud.metastore.v1.DataprocMetastore/ListServices',
+ $argument,
+ ['\Google\Cloud\Metastore\V1\ListServicesResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Gets the details of a single service.
+ * @param \Google\Cloud\Metastore\V1\GetServiceRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetService(\Google\Cloud\Metastore\V1\GetServiceRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1.DataprocMetastore/GetService',
+ $argument,
+ ['\Google\Cloud\Metastore\V1\Service', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Creates a metastore service in a project and location.
+ * @param \Google\Cloud\Metastore\V1\CreateServiceRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CreateService(\Google\Cloud\Metastore\V1\CreateServiceRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1.DataprocMetastore/CreateService',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Updates the parameters of a single service.
+ * @param \Google\Cloud\Metastore\V1\UpdateServiceRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function UpdateService(\Google\Cloud\Metastore\V1\UpdateServiceRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1.DataprocMetastore/UpdateService',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Deletes a single service.
+ * @param \Google\Cloud\Metastore\V1\DeleteServiceRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function DeleteService(\Google\Cloud\Metastore\V1\DeleteServiceRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1.DataprocMetastore/DeleteService',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Lists imports in a service.
+ * @param \Google\Cloud\Metastore\V1\ListMetadataImportsRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ListMetadataImports(\Google\Cloud\Metastore\V1\ListMetadataImportsRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1.DataprocMetastore/ListMetadataImports',
+ $argument,
+ ['\Google\Cloud\Metastore\V1\ListMetadataImportsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Gets details of a single import.
+ * @param \Google\Cloud\Metastore\V1\GetMetadataImportRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetMetadataImport(\Google\Cloud\Metastore\V1\GetMetadataImportRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1.DataprocMetastore/GetMetadataImport',
+ $argument,
+ ['\Google\Cloud\Metastore\V1\MetadataImport', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Creates a new MetadataImport in a given project and location.
+ * @param \Google\Cloud\Metastore\V1\CreateMetadataImportRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CreateMetadataImport(\Google\Cloud\Metastore\V1\CreateMetadataImportRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1.DataprocMetastore/CreateMetadataImport',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Updates a single import.
+ * Only the description field of MetadataImport is supported to be updated.
+ * @param \Google\Cloud\Metastore\V1\UpdateMetadataImportRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function UpdateMetadataImport(\Google\Cloud\Metastore\V1\UpdateMetadataImportRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1.DataprocMetastore/UpdateMetadataImport',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Exports metadata from a service.
+ * @param \Google\Cloud\Metastore\V1\ExportMetadataRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ExportMetadata(\Google\Cloud\Metastore\V1\ExportMetadataRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1.DataprocMetastore/ExportMetadata',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Restores a service from a backup.
+ * @param \Google\Cloud\Metastore\V1\RestoreServiceRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function RestoreService(\Google\Cloud\Metastore\V1\RestoreServiceRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1.DataprocMetastore/RestoreService',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Lists backups in a service.
+ * @param \Google\Cloud\Metastore\V1\ListBackupsRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ListBackups(\Google\Cloud\Metastore\V1\ListBackupsRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1.DataprocMetastore/ListBackups',
+ $argument,
+ ['\Google\Cloud\Metastore\V1\ListBackupsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Gets details of a single backup.
+ * @param \Google\Cloud\Metastore\V1\GetBackupRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetBackup(\Google\Cloud\Metastore\V1\GetBackupRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1.DataprocMetastore/GetBackup',
+ $argument,
+ ['\Google\Cloud\Metastore\V1\Backup', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Creates a new backup in a given project and location.
+ * @param \Google\Cloud\Metastore\V1\CreateBackupRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CreateBackup(\Google\Cloud\Metastore\V1\CreateBackupRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1.DataprocMetastore/CreateBackup',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Deletes a single backup.
+ * @param \Google\Cloud\Metastore\V1\DeleteBackupRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function DeleteBackup(\Google\Cloud\Metastore\V1\DeleteBackupRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1.DataprocMetastore/DeleteBackup',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+}
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/DeleteBackupRequest.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/DeleteBackupRequest.php
new file mode 100644
index 000000000000..5b641755320f
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/DeleteBackupRequest.php
@@ -0,0 +1,163 @@
+google.cloud.metastore.v1.DeleteBackupRequest
+ */
+class DeleteBackupRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the backup to delete, in the
+ * following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param string $name Required. The relative resource name of the backup to delete, in the
+ * following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`. Please see
+ * {@see DataprocMetastoreClient::backupName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Metastore\V1\DeleteBackupRequest
+ *
+ * @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 relative resource name of the backup to delete, in the
+ * following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the backup to delete, in the
+ * following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * 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 relative resource name of the backup to delete, in the
+ * following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * 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. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/DeleteFederationRequest.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/DeleteFederationRequest.php
new file mode 100644
index 000000000000..5492072ac7b1
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/DeleteFederationRequest.php
@@ -0,0 +1,162 @@
+google.cloud.metastore.v1.DeleteFederationRequest
+ */
+class DeleteFederationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metastore federation to delete,
+ * in the following form:
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param string $name Required. The relative resource name of the metastore federation to delete,
+ * in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`. Please see
+ * {@see DataprocMetastoreFederationClient::federationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Metastore\V1\DeleteFederationRequest
+ *
+ * @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 relative resource name of the metastore federation to delete,
+ * in the following form:
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\MetastoreFederation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the metastore federation to delete,
+ * in the following form:
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * 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 relative resource name of the metastore federation to delete,
+ * in the following form:
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * 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. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/DeleteServiceRequest.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/DeleteServiceRequest.php
new file mode 100644
index 000000000000..971257d0b8fa
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/DeleteServiceRequest.php
@@ -0,0 +1,163 @@
+google.cloud.metastore.v1.DeleteServiceRequest
+ */
+class DeleteServiceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metastore service to delete, in
+ * the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param string $name Required. The relative resource name of the metastore service to delete, in
+ * the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`. Please see
+ * {@see DataprocMetastoreClient::serviceName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Metastore\V1\DeleteServiceRequest
+ *
+ * @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 relative resource name of the metastore service to delete, in
+ * the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to delete, in
+ * the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * 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 relative resource name of the metastore service to delete, in
+ * the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * 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. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/EncryptionConfig.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/EncryptionConfig.php
new file mode 100644
index 000000000000..d88c0dcc6ac4
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/EncryptionConfig.php
@@ -0,0 +1,75 @@
+google.cloud.metastore.v1.EncryptionConfig
+ */
+class EncryptionConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The fully qualified customer provided Cloud KMS key name to use for
+ * customer data encryption, in the following form:
+ * `projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}`.
+ *
+ * Generated from protobuf field string kms_key = 1;
+ */
+ protected $kms_key = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $kms_key
+ * The fully qualified customer provided Cloud KMS key name to use for
+ * customer data encryption, in the following form:
+ * `projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The fully qualified customer provided Cloud KMS key name to use for
+ * customer data encryption, in the following form:
+ * `projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}`.
+ *
+ * Generated from protobuf field string kms_key = 1;
+ * @return string
+ */
+ public function getKmsKey()
+ {
+ return $this->kms_key;
+ }
+
+ /**
+ * The fully qualified customer provided Cloud KMS key name to use for
+ * customer data encryption, in the following form:
+ * `projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}`.
+ *
+ * Generated from protobuf field string kms_key = 1;
+ * @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/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ExportMetadataRequest.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ExportMetadataRequest.php
new file mode 100644
index 000000000000..68b1e61c213a
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ExportMetadataRequest.php
@@ -0,0 +1,232 @@
+google.cloud.metastore.v1.ExportMetadataRequest
+ */
+class ExportMetadataRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metastore service to run
+ * export, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $service = '';
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+ /**
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.DatabaseDumpSpec.Type database_dump_type = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $database_dump_type = 0;
+ protected $destination;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $destination_gcs_folder
+ * A Cloud Storage URI of a folder, in the format
+ * `gs:///`. A sub-folder
+ * `` containing exported files will be created below it.
+ * @type string $service
+ * Required. The relative resource name of the metastore service to run
+ * export, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @type int $database_dump_type
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A Cloud Storage URI of a folder, in the format
+ * `gs:///`. A sub-folder
+ * `` containing exported files will be created below it.
+ *
+ * Generated from protobuf field string destination_gcs_folder = 2;
+ * @return string
+ */
+ public function getDestinationGcsFolder()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasDestinationGcsFolder()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * A Cloud Storage URI of a folder, in the format
+ * `gs:///`. A sub-folder
+ * `` containing exported files will be created below it.
+ *
+ * Generated from protobuf field string destination_gcs_folder = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setDestinationGcsFolder($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to run
+ * export, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to run
+ * export, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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;
+ }
+
+ /**
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.DatabaseDumpSpec.Type database_dump_type = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getDatabaseDumpType()
+ {
+ return $this->database_dump_type;
+ }
+
+ /**
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.DatabaseDumpSpec.Type database_dump_type = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setDatabaseDumpType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1\DatabaseDumpSpec\Type::class);
+ $this->database_dump_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getDestination()
+ {
+ return $this->whichOneof("destination");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Federation.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Federation.php
new file mode 100644
index 000000000000..d4f3fbfa8951
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Federation.php
@@ -0,0 +1,433 @@
+google.cloud.metastore.v1.Federation
+ */
+class Federation extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Immutable. The relative resource name of the federation, of the
+ * form:
+ * projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $name = '';
+ /**
+ * Output only. The time when the metastore federation 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 metastore federation was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * User-defined labels for the metastore federation.
+ *
+ * Generated from protobuf field map labels = 4;
+ */
+ private $labels;
+ /**
+ * Immutable. The Apache Hive metastore version of the federation. All backend
+ * metastore versions must be compatible with the federation version.
+ *
+ * Generated from protobuf field string version = 5 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $version = '';
+ /**
+ * A map from `BackendMetastore` rank to `BackendMetastore`s from which the
+ * federation service serves metadata at query time. The map key represents
+ * the order in which `BackendMetastore`s should be evaluated to resolve
+ * database names at query time and should be greater than or equal to zero. A
+ * `BackendMetastore` with a lower number will be evaluated before a
+ * `BackendMetastore` with a higher number.
+ *
+ * Generated from protobuf field map backend_metastores = 6;
+ */
+ private $backend_metastores;
+ /**
+ * Output only. The federation endpoint.
+ *
+ * Generated from protobuf field string endpoint_uri = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $endpoint_uri = '';
+ /**
+ * Output only. The current state of the federation.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Federation.State state = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. Additional information about the current state of the
+ * metastore federation, if available.
+ *
+ * Generated from protobuf field string state_message = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state_message = '';
+ /**
+ * Output only. The globally unique resource identifier of the metastore
+ * federation.
+ *
+ * Generated from protobuf field string uid = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $uid = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Immutable. The relative resource name of the federation, of the
+ * form:
+ * projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time when the metastore federation was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The time when the metastore federation was last updated.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * User-defined labels for the metastore federation.
+ * @type string $version
+ * Immutable. The Apache Hive metastore version of the federation. All backend
+ * metastore versions must be compatible with the federation version.
+ * @type array|\Google\Protobuf\Internal\MapField $backend_metastores
+ * A map from `BackendMetastore` rank to `BackendMetastore`s from which the
+ * federation service serves metadata at query time. The map key represents
+ * the order in which `BackendMetastore`s should be evaluated to resolve
+ * database names at query time and should be greater than or equal to zero. A
+ * `BackendMetastore` with a lower number will be evaluated before a
+ * `BackendMetastore` with a higher number.
+ * @type string $endpoint_uri
+ * Output only. The federation endpoint.
+ * @type int $state
+ * Output only. The current state of the federation.
+ * @type string $state_message
+ * Output only. Additional information about the current state of the
+ * metastore federation, if available.
+ * @type string $uid
+ * Output only. The globally unique resource identifier of the metastore
+ * federation.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\MetastoreFederation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Immutable. The relative resource name of the federation, of the
+ * form:
+ * projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Immutable. The relative resource name of the federation, of the
+ * form:
+ * projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the metastore federation 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 metastore federation 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 metastore federation 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 metastore federation 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-defined labels for the metastore federation.
+ *
+ * Generated from protobuf field map labels = 4;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * User-defined labels for the metastore federation.
+ *
+ * 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;
+ }
+
+ /**
+ * Immutable. The Apache Hive metastore version of the federation. All backend
+ * metastore versions must be compatible with the federation version.
+ *
+ * Generated from protobuf field string version = 5 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return string
+ */
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ /**
+ * Immutable. The Apache Hive metastore version of the federation. All backend
+ * metastore versions must be compatible with the federation version.
+ *
+ * Generated from protobuf field string version = 5 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param string $var
+ * @return $this
+ */
+ public function setVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->version = $var;
+
+ return $this;
+ }
+
+ /**
+ * A map from `BackendMetastore` rank to `BackendMetastore`s from which the
+ * federation service serves metadata at query time. The map key represents
+ * the order in which `BackendMetastore`s should be evaluated to resolve
+ * database names at query time and should be greater than or equal to zero. A
+ * `BackendMetastore` with a lower number will be evaluated before a
+ * `BackendMetastore` with a higher number.
+ *
+ * Generated from protobuf field map backend_metastores = 6;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getBackendMetastores()
+ {
+ return $this->backend_metastores;
+ }
+
+ /**
+ * A map from `BackendMetastore` rank to `BackendMetastore`s from which the
+ * federation service serves metadata at query time. The map key represents
+ * the order in which `BackendMetastore`s should be evaluated to resolve
+ * database names at query time and should be greater than or equal to zero. A
+ * `BackendMetastore` with a lower number will be evaluated before a
+ * `BackendMetastore` with a higher number.
+ *
+ * Generated from protobuf field map backend_metastores = 6;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setBackendMetastores($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::INT32, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1\BackendMetastore::class);
+ $this->backend_metastores = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The federation endpoint.
+ *
+ * Generated from protobuf field string endpoint_uri = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getEndpointUri()
+ {
+ return $this->endpoint_uri;
+ }
+
+ /**
+ * Output only. The federation endpoint.
+ *
+ * Generated from protobuf field string endpoint_uri = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setEndpointUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->endpoint_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The current state of the federation.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Federation.State state = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The current state of the federation.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Federation.State state = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1\Federation\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Additional information about the current state of the
+ * metastore federation, if available.
+ *
+ * Generated from protobuf field string state_message = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getStateMessage()
+ {
+ return $this->state_message;
+ }
+
+ /**
+ * Output only. Additional information about the current state of the
+ * metastore federation, if available.
+ *
+ * Generated from protobuf field string state_message = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setStateMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->state_message = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The globally unique resource identifier of the metastore
+ * federation.
+ *
+ * Generated from protobuf field string uid = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getUid()
+ {
+ return $this->uid;
+ }
+
+ /**
+ * Output only. The globally unique resource identifier of the metastore
+ * federation.
+ *
+ * Generated from protobuf field string uid = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setUid($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uid = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Federation/State.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Federation/State.php
new file mode 100644
index 000000000000..b1fe841ab588
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Federation/State.php
@@ -0,0 +1,87 @@
+google.cloud.metastore.v1.Federation.State
+ */
+class State
+{
+ /**
+ * The state of the metastore federation is unknown.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The metastore federation is in the process of being created.
+ *
+ * Generated from protobuf enum CREATING = 1;
+ */
+ const CREATING = 1;
+ /**
+ * The metastore federation is running and ready to serve queries.
+ *
+ * Generated from protobuf enum ACTIVE = 2;
+ */
+ const ACTIVE = 2;
+ /**
+ * The metastore federation is being updated. It remains usable but cannot
+ * accept additional update requests or be deleted at this time.
+ *
+ * Generated from protobuf enum UPDATING = 3;
+ */
+ const UPDATING = 3;
+ /**
+ * The metastore federation is undergoing deletion. It cannot be used.
+ *
+ * Generated from protobuf enum DELETING = 4;
+ */
+ const DELETING = 4;
+ /**
+ * The metastore federation has encountered an error and cannot be used. The
+ * metastore federation should be deleted.
+ *
+ * Generated from protobuf enum ERROR = 5;
+ */
+ const ERROR = 5;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::CREATING => 'CREATING',
+ self::ACTIVE => 'ACTIVE',
+ self::UPDATING => 'UPDATING',
+ self::DELETING => 'DELETING',
+ self::ERROR => 'ERROR',
+ ];
+
+ 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\Metastore\V1\Federation_State::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Federation_State.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Federation_State.php
new file mode 100644
index 000000000000..ac8b56785fdc
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Federation_State.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1.GetBackupRequest
+ */
+class GetBackupRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the backup to retrieve, in the
+ * following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The relative resource name of the backup to retrieve, in the
+ * following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`. Please see
+ * {@see DataprocMetastoreClient::backupName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Metastore\V1\GetBackupRequest
+ *
+ * @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 relative resource name of the backup to retrieve, in the
+ * following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the backup to retrieve, in the
+ * following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * 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 relative resource name of the backup to retrieve, in the
+ * following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * 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/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/GetFederationRequest.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/GetFederationRequest.php
new file mode 100644
index 000000000000..d0676d640ec1
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/GetFederationRequest.php
@@ -0,0 +1,92 @@
+google.cloud.metastore.v1.GetFederationRequest
+ */
+class GetFederationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metastore federation to
+ * retrieve, in the following form:
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The relative resource name of the metastore federation to
+ * retrieve, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`. Please see
+ * {@see DataprocMetastoreFederationClient::federationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Metastore\V1\GetFederationRequest
+ *
+ * @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 relative resource name of the metastore federation to
+ * retrieve, in the following form:
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\MetastoreFederation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the metastore federation to
+ * retrieve, in the following form:
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * 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 relative resource name of the metastore federation to
+ * retrieve, in the following form:
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * 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/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/GetMetadataImportRequest.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/GetMetadataImportRequest.php
new file mode 100644
index 000000000000..461911cb0d1c
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/GetMetadataImportRequest.php
@@ -0,0 +1,93 @@
+google.cloud.metastore.v1.GetMetadataImportRequest
+ */
+class GetMetadataImportRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metadata import to retrieve, in
+ * the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{import_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The relative resource name of the metadata import to retrieve, in
+ * the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{import_id}`. Please see
+ * {@see DataprocMetastoreClient::metadataImportName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Metastore\V1\GetMetadataImportRequest
+ *
+ * @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 relative resource name of the metadata import to retrieve, in
+ * the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{import_id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the metadata import to retrieve, in
+ * the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{import_id}`.
+ *
+ * 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 relative resource name of the metadata import to retrieve, in
+ * the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{import_id}`.
+ *
+ * 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/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/GetServiceRequest.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/GetServiceRequest.php
new file mode 100644
index 000000000000..23a082ef5699
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/GetServiceRequest.php
@@ -0,0 +1,93 @@
+google.cloud.metastore.v1.GetServiceRequest
+ */
+class GetServiceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metastore service to retrieve,
+ * in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The relative resource name of the metastore service to retrieve,
+ * in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`. Please see
+ * {@see DataprocMetastoreClient::serviceName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Metastore\V1\GetServiceRequest
+ *
+ * @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 relative resource name of the metastore service to retrieve,
+ * in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to retrieve,
+ * in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * 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 relative resource name of the metastore service to retrieve,
+ * in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * 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/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/HiveMetastoreConfig.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/HiveMetastoreConfig.php
new file mode 100644
index 000000000000..fc729ddfff5d
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/HiveMetastoreConfig.php
@@ -0,0 +1,240 @@
+google.cloud.metastore.v1.HiveMetastoreConfig
+ */
+class HiveMetastoreConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Immutable. The Hive metastore schema version.
+ *
+ * Generated from protobuf field string version = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $version = '';
+ /**
+ * A mapping of Hive metastore configuration key-value pairs to apply to the
+ * Hive metastore (configured in `hive-site.xml`). The mappings
+ * override system defaults (some keys cannot be overridden). These
+ * overrides are also applied to auxiliary versions and can be further
+ * customized in the auxiliary version's `AuxiliaryVersionConfig`.
+ *
+ * Generated from protobuf field map config_overrides = 2;
+ */
+ private $config_overrides;
+ /**
+ * Information used to configure the Hive metastore service as a service
+ * principal in a Kerberos realm. To disable Kerberos, use the `UpdateService`
+ * method and specify this field's path
+ * (`hive_metastore_config.kerberos_config`) in the request's `update_mask`
+ * while omitting this field from the request's `service`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.KerberosConfig kerberos_config = 3;
+ */
+ protected $kerberos_config = null;
+ /**
+ * A mapping of Hive metastore version to the auxiliary version
+ * configuration. When specified, a secondary Hive metastore service is
+ * created along with the primary service. All auxiliary versions must be less
+ * than the service's primary version. The key is the auxiliary service name
+ * and it must match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?. This
+ * means that the first character must be a lowercase letter, and all the
+ * following characters must be hyphens, lowercase letters, or digits, except
+ * the last character, which cannot be a hyphen.
+ *
+ * Generated from protobuf field map auxiliary_versions = 5;
+ */
+ private $auxiliary_versions;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $version
+ * Immutable. The Hive metastore schema version.
+ * @type array|\Google\Protobuf\Internal\MapField $config_overrides
+ * A mapping of Hive metastore configuration key-value pairs to apply to the
+ * Hive metastore (configured in `hive-site.xml`). The mappings
+ * override system defaults (some keys cannot be overridden). These
+ * overrides are also applied to auxiliary versions and can be further
+ * customized in the auxiliary version's `AuxiliaryVersionConfig`.
+ * @type \Google\Cloud\Metastore\V1\KerberosConfig $kerberos_config
+ * Information used to configure the Hive metastore service as a service
+ * principal in a Kerberos realm. To disable Kerberos, use the `UpdateService`
+ * method and specify this field's path
+ * (`hive_metastore_config.kerberos_config`) in the request's `update_mask`
+ * while omitting this field from the request's `service`.
+ * @type array|\Google\Protobuf\Internal\MapField $auxiliary_versions
+ * A mapping of Hive metastore version to the auxiliary version
+ * configuration. When specified, a secondary Hive metastore service is
+ * created along with the primary service. All auxiliary versions must be less
+ * than the service's primary version. The key is the auxiliary service name
+ * and it must match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?. This
+ * means that the first character must be a lowercase letter, and all the
+ * following characters must be hyphens, lowercase letters, or digits, except
+ * the last character, which cannot be a hyphen.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Immutable. The Hive metastore schema version.
+ *
+ * Generated from protobuf field string version = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return string
+ */
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ /**
+ * Immutable. The Hive metastore schema version.
+ *
+ * Generated from protobuf field string version = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param string $var
+ * @return $this
+ */
+ public function setVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->version = $var;
+
+ return $this;
+ }
+
+ /**
+ * A mapping of Hive metastore configuration key-value pairs to apply to the
+ * Hive metastore (configured in `hive-site.xml`). The mappings
+ * override system defaults (some keys cannot be overridden). These
+ * overrides are also applied to auxiliary versions and can be further
+ * customized in the auxiliary version's `AuxiliaryVersionConfig`.
+ *
+ * Generated from protobuf field map config_overrides = 2;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getConfigOverrides()
+ {
+ return $this->config_overrides;
+ }
+
+ /**
+ * A mapping of Hive metastore configuration key-value pairs to apply to the
+ * Hive metastore (configured in `hive-site.xml`). The mappings
+ * override system defaults (some keys cannot be overridden). These
+ * overrides are also applied to auxiliary versions and can be further
+ * customized in the auxiliary version's `AuxiliaryVersionConfig`.
+ *
+ * Generated from protobuf field map config_overrides = 2;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setConfigOverrides($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->config_overrides = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Information used to configure the Hive metastore service as a service
+ * principal in a Kerberos realm. To disable Kerberos, use the `UpdateService`
+ * method and specify this field's path
+ * (`hive_metastore_config.kerberos_config`) in the request's `update_mask`
+ * while omitting this field from the request's `service`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.KerberosConfig kerberos_config = 3;
+ * @return \Google\Cloud\Metastore\V1\KerberosConfig|null
+ */
+ public function getKerberosConfig()
+ {
+ return $this->kerberos_config;
+ }
+
+ public function hasKerberosConfig()
+ {
+ return isset($this->kerberos_config);
+ }
+
+ public function clearKerberosConfig()
+ {
+ unset($this->kerberos_config);
+ }
+
+ /**
+ * Information used to configure the Hive metastore service as a service
+ * principal in a Kerberos realm. To disable Kerberos, use the `UpdateService`
+ * method and specify this field's path
+ * (`hive_metastore_config.kerberos_config`) in the request's `update_mask`
+ * while omitting this field from the request's `service`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.KerberosConfig kerberos_config = 3;
+ * @param \Google\Cloud\Metastore\V1\KerberosConfig $var
+ * @return $this
+ */
+ public function setKerberosConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1\KerberosConfig::class);
+ $this->kerberos_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * A mapping of Hive metastore version to the auxiliary version
+ * configuration. When specified, a secondary Hive metastore service is
+ * created along with the primary service. All auxiliary versions must be less
+ * than the service's primary version. The key is the auxiliary service name
+ * and it must match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?. This
+ * means that the first character must be a lowercase letter, and all the
+ * following characters must be hyphens, lowercase letters, or digits, except
+ * the last character, which cannot be a hyphen.
+ *
+ * Generated from protobuf field map auxiliary_versions = 5;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getAuxiliaryVersions()
+ {
+ return $this->auxiliary_versions;
+ }
+
+ /**
+ * A mapping of Hive metastore version to the auxiliary version
+ * configuration. When specified, a secondary Hive metastore service is
+ * created along with the primary service. All auxiliary versions must be less
+ * than the service's primary version. The key is the auxiliary service name
+ * and it must match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?. This
+ * means that the first character must be a lowercase letter, and all the
+ * following characters must be hyphens, lowercase letters, or digits, except
+ * the last character, which cannot be a hyphen.
+ *
+ * Generated from protobuf field map auxiliary_versions = 5;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setAuxiliaryVersions($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1\AuxiliaryVersionConfig::class);
+ $this->auxiliary_versions = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/KerberosConfig.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/KerberosConfig.php
new file mode 100644
index 000000000000..df4b6eb6fc32
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/KerberosConfig.php
@@ -0,0 +1,165 @@
+google.cloud.metastore.v1.KerberosConfig
+ */
+class KerberosConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A Kerberos keytab file that can be used to authenticate a service principal
+ * with a Kerberos Key Distribution Center (KDC).
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Secret keytab = 1;
+ */
+ protected $keytab = null;
+ /**
+ * A Kerberos principal that exists in the both the keytab the KDC
+ * to authenticate as. A typical principal is of the form
+ * `primary/instance@REALM`, but there is no exact format.
+ *
+ * Generated from protobuf field string principal = 2;
+ */
+ protected $principal = '';
+ /**
+ * A Cloud Storage URI that specifies the path to a
+ * krb5.conf file. It is of the form `gs://{bucket_name}/path/to/krb5.conf`,
+ * although the file does not need to be named krb5.conf explicitly.
+ *
+ * Generated from protobuf field string krb5_config_gcs_uri = 3;
+ */
+ protected $krb5_config_gcs_uri = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Metastore\V1\Secret $keytab
+ * A Kerberos keytab file that can be used to authenticate a service principal
+ * with a Kerberos Key Distribution Center (KDC).
+ * @type string $principal
+ * A Kerberos principal that exists in the both the keytab the KDC
+ * to authenticate as. A typical principal is of the form
+ * `primary/instance@REALM`, but there is no exact format.
+ * @type string $krb5_config_gcs_uri
+ * A Cloud Storage URI that specifies the path to a
+ * krb5.conf file. It is of the form `gs://{bucket_name}/path/to/krb5.conf`,
+ * although the file does not need to be named krb5.conf explicitly.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A Kerberos keytab file that can be used to authenticate a service principal
+ * with a Kerberos Key Distribution Center (KDC).
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Secret keytab = 1;
+ * @return \Google\Cloud\Metastore\V1\Secret|null
+ */
+ public function getKeytab()
+ {
+ return $this->keytab;
+ }
+
+ public function hasKeytab()
+ {
+ return isset($this->keytab);
+ }
+
+ public function clearKeytab()
+ {
+ unset($this->keytab);
+ }
+
+ /**
+ * A Kerberos keytab file that can be used to authenticate a service principal
+ * with a Kerberos Key Distribution Center (KDC).
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Secret keytab = 1;
+ * @param \Google\Cloud\Metastore\V1\Secret $var
+ * @return $this
+ */
+ public function setKeytab($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1\Secret::class);
+ $this->keytab = $var;
+
+ return $this;
+ }
+
+ /**
+ * A Kerberos principal that exists in the both the keytab the KDC
+ * to authenticate as. A typical principal is of the form
+ * `primary/instance@REALM`, but there is no exact format.
+ *
+ * Generated from protobuf field string principal = 2;
+ * @return string
+ */
+ public function getPrincipal()
+ {
+ return $this->principal;
+ }
+
+ /**
+ * A Kerberos principal that exists in the both the keytab the KDC
+ * to authenticate as. A typical principal is of the form
+ * `primary/instance@REALM`, but there is no exact format.
+ *
+ * Generated from protobuf field string principal = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setPrincipal($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->principal = $var;
+
+ return $this;
+ }
+
+ /**
+ * A Cloud Storage URI that specifies the path to a
+ * krb5.conf file. It is of the form `gs://{bucket_name}/path/to/krb5.conf`,
+ * although the file does not need to be named krb5.conf explicitly.
+ *
+ * Generated from protobuf field string krb5_config_gcs_uri = 3;
+ * @return string
+ */
+ public function getKrb5ConfigGcsUri()
+ {
+ return $this->krb5_config_gcs_uri;
+ }
+
+ /**
+ * A Cloud Storage URI that specifies the path to a
+ * krb5.conf file. It is of the form `gs://{bucket_name}/path/to/krb5.conf`,
+ * although the file does not need to be named krb5.conf explicitly.
+ *
+ * Generated from protobuf field string krb5_config_gcs_uri = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setKrb5ConfigGcsUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->krb5_config_gcs_uri = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ListBackupsRequest.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ListBackupsRequest.php
new file mode 100644
index 000000000000..b73891dd55c0
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ListBackupsRequest.php
@@ -0,0 +1,269 @@
+google.cloud.metastore.v1.ListBackupsRequest
+ */
+class ListBackupsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the service whose backups to
+ * list, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. The maximum number of backups to return. The response may contain
+ * less than the maximum number. If unspecified, no more than 500 backups are
+ * returned. The maximum value is 1000; values above 1000 are changed to 1000.
+ *
+ * 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
+ * [DataprocMetastore.ListBackups][google.cloud.metastore.v1.DataprocMetastore.ListBackups]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListBackups][google.cloud.metastore.v1.DataprocMetastore.ListBackups]
+ * 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. The filter to apply to list results.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+ /**
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $order_by = '';
+
+ /**
+ * @param string $parent Required. The relative resource name of the service whose backups to
+ * list, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups`. Please see
+ * {@see DataprocMetastoreClient::serviceName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Metastore\V1\ListBackupsRequest
+ *
+ * @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 relative resource name of the service whose backups to
+ * list, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups`.
+ * @type int $page_size
+ * Optional. The maximum number of backups to return. The response may contain
+ * less than the maximum number. If unspecified, no more than 500 backups are
+ * returned. The maximum value is 1000; values above 1000 are changed to 1000.
+ * @type string $page_token
+ * Optional. A page token, received from a previous
+ * [DataprocMetastore.ListBackups][google.cloud.metastore.v1.DataprocMetastore.ListBackups]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListBackups][google.cloud.metastore.v1.DataprocMetastore.ListBackups]
+ * must match the call that provided the page token.
+ * @type string $filter
+ * Optional. The filter to apply to list results.
+ * @type string $order_by
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the service whose backups to
+ * list, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups`.
+ *
+ * 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 relative resource name of the service whose backups to
+ * list, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups`.
+ *
+ * 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 backups to return. The response may contain
+ * less than the maximum number. If unspecified, no more than 500 backups are
+ * returned. The maximum value is 1000; values above 1000 are changed to 1000.
+ *
+ * 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 backups to return. The response may contain
+ * less than the maximum number. If unspecified, no more than 500 backups are
+ * returned. The maximum value is 1000; values above 1000 are changed to 1000.
+ *
+ * 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
+ * [DataprocMetastore.ListBackups][google.cloud.metastore.v1.DataprocMetastore.ListBackups]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListBackups][google.cloud.metastore.v1.DataprocMetastore.ListBackups]
+ * 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
+ * [DataprocMetastore.ListBackups][google.cloud.metastore.v1.DataprocMetastore.ListBackups]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListBackups][google.cloud.metastore.v1.DataprocMetastore.ListBackups]
+ * 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. The filter to apply to list results.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. The filter to apply to list results.
+ *
+ * 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. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * 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/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ListBackupsResponse.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ListBackupsResponse.php
new file mode 100644
index 000000000000..d4c62d5e2a3e
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ListBackupsResponse.php
@@ -0,0 +1,140 @@
+google.cloud.metastore.v1.ListBackupsResponse
+ */
+class ListBackupsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The backups of the specified service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1.Backup backups = 1;
+ */
+ private $backups;
+ /**
+ * 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\Metastore\V1\Backup>|\Google\Protobuf\Internal\RepeatedField $backups
+ * The backups of the specified service.
+ * @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\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The backups of the specified service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1.Backup backups = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getBackups()
+ {
+ return $this->backups;
+ }
+
+ /**
+ * The backups of the specified service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1.Backup backups = 1;
+ * @param array<\Google\Cloud\Metastore\V1\Backup>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setBackups($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1\Backup::class);
+ $this->backups = $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/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ListFederationsRequest.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ListFederationsRequest.php
new file mode 100644
index 000000000000..0113d75b1995
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ListFederationsRequest.php
@@ -0,0 +1,267 @@
+google.cloud.metastore.v1.ListFederationsRequest
+ */
+class ListFederationsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the location of metastore
+ * federations to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. The maximum number of federations to return. The response may
+ * contain less than the maximum number. If unspecified, no more than 500
+ * services are returned. The maximum value is 1000; values above 1000 are
+ * changed to 1000.
+ *
+ * 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 ListFederationServices
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * ListFederationServices 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. The filter to apply to list results.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+ /**
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $order_by = '';
+
+ /**
+ * @param string $parent Required. The relative resource name of the location of metastore
+ * federations to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`. Please see
+ * {@see DataprocMetastoreFederationClient::locationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Metastore\V1\ListFederationsRequest
+ *
+ * @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 relative resource name of the location of metastore
+ * federations to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ * @type int $page_size
+ * Optional. The maximum number of federations to return. The response may
+ * contain less than the maximum number. If unspecified, no more than 500
+ * services are returned. The maximum value is 1000; values above 1000 are
+ * changed to 1000.
+ * @type string $page_token
+ * Optional. A page token, received from a previous ListFederationServices
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * ListFederationServices must match the call that provided the
+ * page token.
+ * @type string $filter
+ * Optional. The filter to apply to list results.
+ * @type string $order_by
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\MetastoreFederation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the location of metastore
+ * federations to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * 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 relative resource name of the location of metastore
+ * federations to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * 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 federations to return. The response may
+ * contain less than the maximum number. If unspecified, no more than 500
+ * services are returned. The maximum value is 1000; values above 1000 are
+ * changed to 1000.
+ *
+ * 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 federations to return. The response may
+ * contain less than the maximum number. If unspecified, no more than 500
+ * services are returned. The maximum value is 1000; values above 1000 are
+ * changed to 1000.
+ *
+ * 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 ListFederationServices
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * ListFederationServices 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 ListFederationServices
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * ListFederationServices 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. The filter to apply to list results.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. The filter to apply to list results.
+ *
+ * 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. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * 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/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ListFederationsResponse.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ListFederationsResponse.php
new file mode 100644
index 000000000000..6b9e36e583ce
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ListFederationsResponse.php
@@ -0,0 +1,139 @@
+google.cloud.metastore.v1.ListFederationsResponse
+ */
+class ListFederationsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The services in the specified location.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1.Federation federations = 1;
+ */
+ private $federations;
+ /**
+ * 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\Metastore\V1\Federation>|\Google\Protobuf\Internal\RepeatedField $federations
+ * The services in the specified location.
+ * @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\Metastore\V1\MetastoreFederation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The services in the specified location.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1.Federation federations = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getFederations()
+ {
+ return $this->federations;
+ }
+
+ /**
+ * The services in the specified location.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1.Federation federations = 1;
+ * @param array<\Google\Cloud\Metastore\V1\Federation>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setFederations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1\Federation::class);
+ $this->federations = $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/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ListMetadataImportsRequest.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ListMetadataImportsRequest.php
new file mode 100644
index 000000000000..582bf2479535
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ListMetadataImportsRequest.php
@@ -0,0 +1,269 @@
+google.cloud.metastore.v1.ListMetadataImportsRequest
+ */
+class ListMetadataImportsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the service whose metadata imports
+ * to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. The maximum number of imports to return. The response may contain
+ * less than the maximum number. If unspecified, no more than 500 imports are
+ * returned. The maximum value is 1000; values above 1000 are changed to 1000.
+ *
+ * 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
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1.DataprocMetastore.ListServices]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1.DataprocMetastore.ListServices]
+ * 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. The filter to apply to list results.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+ /**
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $order_by = '';
+
+ /**
+ * @param string $parent Required. The relative resource name of the service whose metadata imports
+ * to list, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports`. Please see
+ * {@see DataprocMetastoreClient::serviceName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Metastore\V1\ListMetadataImportsRequest
+ *
+ * @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 relative resource name of the service whose metadata imports
+ * to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports`.
+ * @type int $page_size
+ * Optional. The maximum number of imports to return. The response may contain
+ * less than the maximum number. If unspecified, no more than 500 imports are
+ * returned. The maximum value is 1000; values above 1000 are changed to 1000.
+ * @type string $page_token
+ * Optional. A page token, received from a previous
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1.DataprocMetastore.ListServices]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1.DataprocMetastore.ListServices]
+ * must match the call that provided the page token.
+ * @type string $filter
+ * Optional. The filter to apply to list results.
+ * @type string $order_by
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the service whose metadata imports
+ * to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports`.
+ *
+ * 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 relative resource name of the service whose metadata imports
+ * to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports`.
+ *
+ * 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 imports to return. The response may contain
+ * less than the maximum number. If unspecified, no more than 500 imports are
+ * returned. The maximum value is 1000; values above 1000 are changed to 1000.
+ *
+ * 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 imports to return. The response may contain
+ * less than the maximum number. If unspecified, no more than 500 imports are
+ * returned. The maximum value is 1000; values above 1000 are changed to 1000.
+ *
+ * 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
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1.DataprocMetastore.ListServices]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1.DataprocMetastore.ListServices]
+ * 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
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1.DataprocMetastore.ListServices]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1.DataprocMetastore.ListServices]
+ * 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. The filter to apply to list results.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. The filter to apply to list results.
+ *
+ * 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. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * 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/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ListMetadataImportsResponse.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ListMetadataImportsResponse.php
new file mode 100644
index 000000000000..361360dd7312
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ListMetadataImportsResponse.php
@@ -0,0 +1,140 @@
+google.cloud.metastore.v1.ListMetadataImportsResponse
+ */
+class ListMetadataImportsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The imports in the specified service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1.MetadataImport metadata_imports = 1;
+ */
+ private $metadata_imports;
+ /**
+ * 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\Metastore\V1\MetadataImport>|\Google\Protobuf\Internal\RepeatedField $metadata_imports
+ * The imports in the specified service.
+ * @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\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The imports in the specified service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1.MetadataImport metadata_imports = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getMetadataImports()
+ {
+ return $this->metadata_imports;
+ }
+
+ /**
+ * The imports in the specified service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1.MetadataImport metadata_imports = 1;
+ * @param array<\Google\Cloud\Metastore\V1\MetadataImport>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setMetadataImports($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1\MetadataImport::class);
+ $this->metadata_imports = $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/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ListServicesRequest.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ListServicesRequest.php
new file mode 100644
index 000000000000..3821776ec78d
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ListServicesRequest.php
@@ -0,0 +1,273 @@
+google.cloud.metastore.v1.ListServicesRequest
+ */
+class ListServicesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the location of metastore services
+ * to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. The maximum number of services to return. The response may
+ * contain less than the maximum number. If unspecified, no more than 500
+ * services are returned. The maximum value is 1000; values above 1000 are
+ * changed to 1000.
+ *
+ * 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
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1.DataprocMetastore.ListServices]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1.DataprocMetastore.ListServices]
+ * 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. The filter to apply to list results.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+ /**
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $order_by = '';
+
+ /**
+ * @param string $parent Required. The relative resource name of the location of metastore services
+ * to list, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}`. Please see
+ * {@see DataprocMetastoreClient::locationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Metastore\V1\ListServicesRequest
+ *
+ * @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 relative resource name of the location of metastore services
+ * to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ * @type int $page_size
+ * Optional. The maximum number of services to return. The response may
+ * contain less than the maximum number. If unspecified, no more than 500
+ * services are returned. The maximum value is 1000; values above 1000 are
+ * changed to 1000.
+ * @type string $page_token
+ * Optional. A page token, received from a previous
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1.DataprocMetastore.ListServices]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1.DataprocMetastore.ListServices]
+ * must match the call that provided the page token.
+ * @type string $filter
+ * Optional. The filter to apply to list results.
+ * @type string $order_by
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the location of metastore services
+ * to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * 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 relative resource name of the location of metastore services
+ * to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * 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 services to return. The response may
+ * contain less than the maximum number. If unspecified, no more than 500
+ * services are returned. The maximum value is 1000; values above 1000 are
+ * changed to 1000.
+ *
+ * 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 services to return. The response may
+ * contain less than the maximum number. If unspecified, no more than 500
+ * services are returned. The maximum value is 1000; values above 1000 are
+ * changed to 1000.
+ *
+ * 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
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1.DataprocMetastore.ListServices]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1.DataprocMetastore.ListServices]
+ * 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
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1.DataprocMetastore.ListServices]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1.DataprocMetastore.ListServices]
+ * 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. The filter to apply to list results.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. The filter to apply to list results.
+ *
+ * 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. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * 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/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ListServicesResponse.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ListServicesResponse.php
new file mode 100644
index 000000000000..40a31f47a158
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ListServicesResponse.php
@@ -0,0 +1,140 @@
+google.cloud.metastore.v1.ListServicesResponse
+ */
+class ListServicesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The services in the specified location.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1.Service services = 1;
+ */
+ private $services;
+ /**
+ * 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\Metastore\V1\Service>|\Google\Protobuf\Internal\RepeatedField $services
+ * The services in the specified location.
+ * @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\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The services in the specified location.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1.Service services = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getServices()
+ {
+ return $this->services;
+ }
+
+ /**
+ * The services in the specified location.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1.Service services = 1;
+ * @param array<\Google\Cloud\Metastore\V1\Service>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setServices($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1\Service::class);
+ $this->services = $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/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/LocationMetadata.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/LocationMetadata.php
new file mode 100644
index 000000000000..a36d20f571ce
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/LocationMetadata.php
@@ -0,0 +1,75 @@
+google.cloud.metastore.v1.LocationMetadata
+ */
+class LocationMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The versions of Hive Metastore that can be used when creating a new
+ * metastore service in this location. The server guarantees that exactly one
+ * `HiveMetastoreVersion` in the list will set `is_default`.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1.LocationMetadata.HiveMetastoreVersion supported_hive_metastore_versions = 1;
+ */
+ private $supported_hive_metastore_versions;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Metastore\V1\LocationMetadata\HiveMetastoreVersion>|\Google\Protobuf\Internal\RepeatedField $supported_hive_metastore_versions
+ * The versions of Hive Metastore that can be used when creating a new
+ * metastore service in this location. The server guarantees that exactly one
+ * `HiveMetastoreVersion` in the list will set `is_default`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The versions of Hive Metastore that can be used when creating a new
+ * metastore service in this location. The server guarantees that exactly one
+ * `HiveMetastoreVersion` in the list will set `is_default`.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1.LocationMetadata.HiveMetastoreVersion supported_hive_metastore_versions = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getSupportedHiveMetastoreVersions()
+ {
+ return $this->supported_hive_metastore_versions;
+ }
+
+ /**
+ * The versions of Hive Metastore that can be used when creating a new
+ * metastore service in this location. The server guarantees that exactly one
+ * `HiveMetastoreVersion` in the list will set `is_default`.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1.LocationMetadata.HiveMetastoreVersion supported_hive_metastore_versions = 1;
+ * @param array<\Google\Cloud\Metastore\V1\LocationMetadata\HiveMetastoreVersion>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setSupportedHiveMetastoreVersions($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1\LocationMetadata\HiveMetastoreVersion::class);
+ $this->supported_hive_metastore_versions = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/LocationMetadata/HiveMetastoreVersion.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/LocationMetadata/HiveMetastoreVersion.php
new file mode 100644
index 000000000000..58687bbf80df
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/LocationMetadata/HiveMetastoreVersion.php
@@ -0,0 +1,108 @@
+google.cloud.metastore.v1.LocationMetadata.HiveMetastoreVersion
+ */
+class HiveMetastoreVersion extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The semantic version of the Hive Metastore software.
+ *
+ * Generated from protobuf field string version = 1;
+ */
+ protected $version = '';
+ /**
+ * Whether `version` will be chosen by the server if a metastore service is
+ * created with a `HiveMetastoreConfig` that omits the `version`.
+ *
+ * Generated from protobuf field bool is_default = 2;
+ */
+ protected $is_default = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $version
+ * The semantic version of the Hive Metastore software.
+ * @type bool $is_default
+ * Whether `version` will be chosen by the server if a metastore service is
+ * created with a `HiveMetastoreConfig` that omits the `version`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The semantic version of the Hive Metastore software.
+ *
+ * Generated from protobuf field string version = 1;
+ * @return string
+ */
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ /**
+ * The semantic version of the Hive Metastore software.
+ *
+ * Generated from protobuf field string version = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->version = $var;
+
+ return $this;
+ }
+
+ /**
+ * Whether `version` will be chosen by the server if a metastore service is
+ * created with a `HiveMetastoreConfig` that omits the `version`.
+ *
+ * Generated from protobuf field bool is_default = 2;
+ * @return bool
+ */
+ public function getIsDefault()
+ {
+ return $this->is_default;
+ }
+
+ /**
+ * Whether `version` will be chosen by the server if a metastore service is
+ * created with a `HiveMetastoreConfig` that omits the `version`.
+ *
+ * Generated from protobuf field bool is_default = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setIsDefault($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->is_default = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(HiveMetastoreVersion::class, \Google\Cloud\Metastore\V1\LocationMetadata_HiveMetastoreVersion::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/LocationMetadata_HiveMetastoreVersion.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/LocationMetadata_HiveMetastoreVersion.php
new file mode 100644
index 000000000000..52ccdf580e02
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/LocationMetadata_HiveMetastoreVersion.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1.MaintenanceWindow
+ */
+class MaintenanceWindow extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The hour of day (0-23) when the window starts.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value hour_of_day = 1;
+ */
+ protected $hour_of_day = null;
+ /**
+ * The day of week, when the window starts.
+ *
+ * Generated from protobuf field .google.type.DayOfWeek day_of_week = 2;
+ */
+ protected $day_of_week = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Int32Value $hour_of_day
+ * The hour of day (0-23) when the window starts.
+ * @type int $day_of_week
+ * The day of week, when the window starts.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The hour of day (0-23) when the window starts.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value hour_of_day = 1;
+ * @return \Google\Protobuf\Int32Value|null
+ */
+ public function getHourOfDay()
+ {
+ return $this->hour_of_day;
+ }
+
+ public function hasHourOfDay()
+ {
+ return isset($this->hour_of_day);
+ }
+
+ public function clearHourOfDay()
+ {
+ unset($this->hour_of_day);
+ }
+
+ /**
+ * Returns the unboxed value from getHourOfDay()
+
+ * The hour of day (0-23) when the window starts.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value hour_of_day = 1;
+ * @return int|null
+ */
+ public function getHourOfDayUnwrapped()
+ {
+ return $this->readWrapperValue("hour_of_day");
+ }
+
+ /**
+ * The hour of day (0-23) when the window starts.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value hour_of_day = 1;
+ * @param \Google\Protobuf\Int32Value $var
+ * @return $this
+ */
+ public function setHourOfDay($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Int32Value::class);
+ $this->hour_of_day = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sets the field by wrapping a primitive type in a Google\Protobuf\Int32Value object.
+
+ * The hour of day (0-23) when the window starts.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value hour_of_day = 1;
+ * @param int|null $var
+ * @return $this
+ */
+ public function setHourOfDayUnwrapped($var)
+ {
+ $this->writeWrapperValue("hour_of_day", $var);
+ return $this;}
+
+ /**
+ * The day of week, when the window starts.
+ *
+ * Generated from protobuf field .google.type.DayOfWeek day_of_week = 2;
+ * @return int
+ */
+ public function getDayOfWeek()
+ {
+ return $this->day_of_week;
+ }
+
+ /**
+ * The day of week, when the window starts.
+ *
+ * Generated from protobuf field .google.type.DayOfWeek day_of_week = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setDayOfWeek($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Type\DayOfWeek::class);
+ $this->day_of_week = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/MetadataExport.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/MetadataExport.php
new file mode 100644
index 000000000000..b8d76e8d94d4
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/MetadataExport.php
@@ -0,0 +1,240 @@
+google.cloud.metastore.v1.MetadataExport
+ */
+class MetadataExport extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The time when the export started.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $start_time = null;
+ /**
+ * Output only. The time when the export ended.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $end_time = null;
+ /**
+ * Output only. The current state of the export.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.MetadataExport.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. The type of the database dump.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.DatabaseDumpSpec.Type database_dump_type = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $database_dump_type = 0;
+ protected $destination;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $destination_gcs_uri
+ * Output only. A Cloud Storage URI of a folder that metadata are exported
+ * to, in the form of
+ * `gs:////`, where
+ * `` is automatically generated.
+ * @type \Google\Protobuf\Timestamp $start_time
+ * Output only. The time when the export started.
+ * @type \Google\Protobuf\Timestamp $end_time
+ * Output only. The time when the export ended.
+ * @type int $state
+ * Output only. The current state of the export.
+ * @type int $database_dump_type
+ * Output only. The type of the database dump.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. A Cloud Storage URI of a folder that metadata are exported
+ * to, in the form of
+ * `gs:////`, where
+ * `` is automatically generated.
+ *
+ * Generated from protobuf field string destination_gcs_uri = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getDestinationGcsUri()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasDestinationGcsUri()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * Output only. A Cloud Storage URI of a folder that metadata are exported
+ * to, in the form of
+ * `gs:////`, where
+ * `` is automatically generated.
+ *
+ * Generated from protobuf field string destination_gcs_uri = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setDestinationGcsUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the export started.
+ *
+ * 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 time when the export started.
+ *
+ * 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 time when the export ended.
+ *
+ * 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 when the export ended.
+ *
+ * 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 current state of the export.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.MetadataExport.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The current state of the export.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.MetadataExport.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1\MetadataExport\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The type of the database dump.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.DatabaseDumpSpec.Type database_dump_type = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getDatabaseDumpType()
+ {
+ return $this->database_dump_type;
+ }
+
+ /**
+ * Output only. The type of the database dump.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.DatabaseDumpSpec.Type database_dump_type = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setDatabaseDumpType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1\DatabaseDumpSpec\Type::class);
+ $this->database_dump_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getDestination()
+ {
+ return $this->whichOneof("destination");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/MetadataExport/State.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/MetadataExport/State.php
new file mode 100644
index 000000000000..9edc49059ec8
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/MetadataExport/State.php
@@ -0,0 +1,78 @@
+google.cloud.metastore.v1.MetadataExport.State
+ */
+class State
+{
+ /**
+ * The state of the metadata export is unknown.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The metadata export is running.
+ *
+ * Generated from protobuf enum RUNNING = 1;
+ */
+ const RUNNING = 1;
+ /**
+ * The metadata export completed successfully.
+ *
+ * Generated from protobuf enum SUCCEEDED = 2;
+ */
+ const SUCCEEDED = 2;
+ /**
+ * The metadata export failed.
+ *
+ * Generated from protobuf enum FAILED = 3;
+ */
+ const FAILED = 3;
+ /**
+ * The metadata export is cancelled.
+ *
+ * Generated from protobuf enum CANCELLED = 4;
+ */
+ const CANCELLED = 4;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::RUNNING => 'RUNNING',
+ self::SUCCEEDED => 'SUCCEEDED',
+ self::FAILED => 'FAILED',
+ self::CANCELLED => 'CANCELLED',
+ ];
+
+ 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\Metastore\V1\MetadataExport_State::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/MetadataExport_State.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/MetadataExport_State.php
new file mode 100644
index 000000000000..1bbb018dbd5e
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/MetadataExport_State.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1.MetadataImport
+ */
+class MetadataImport extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Immutable. The relative resource name of the metadata import, of the form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{metadata_import_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $name = '';
+ /**
+ * The description of the metadata import.
+ *
+ * Generated from protobuf field string description = 2;
+ */
+ protected $description = '';
+ /**
+ * Output only. The time when the metadata import was started.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The time when the metadata import 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 time when the metadata import finished.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $end_time = null;
+ /**
+ * Output only. The current state of the metadata import.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.MetadataImport.State state = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ protected $metadata;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Metastore\V1\MetadataImport\DatabaseDump $database_dump
+ * Immutable. A database dump from a pre-existing metastore's database.
+ * @type string $name
+ * Immutable. The relative resource name of the metadata import, of the form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{metadata_import_id}`.
+ * @type string $description
+ * The description of the metadata import.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time when the metadata import was started.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The time when the metadata import was last updated.
+ * @type \Google\Protobuf\Timestamp $end_time
+ * Output only. The time when the metadata import finished.
+ * @type int $state
+ * Output only. The current state of the metadata import.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Immutable. A database dump from a pre-existing metastore's database.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.MetadataImport.DatabaseDump database_dump = 6 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return \Google\Cloud\Metastore\V1\MetadataImport\DatabaseDump|null
+ */
+ public function getDatabaseDump()
+ {
+ return $this->readOneof(6);
+ }
+
+ public function hasDatabaseDump()
+ {
+ return $this->hasOneof(6);
+ }
+
+ /**
+ * Immutable. A database dump from a pre-existing metastore's database.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.MetadataImport.DatabaseDump database_dump = 6 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param \Google\Cloud\Metastore\V1\MetadataImport\DatabaseDump $var
+ * @return $this
+ */
+ public function setDatabaseDump($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1\MetadataImport\DatabaseDump::class);
+ $this->writeOneof(6, $var);
+
+ return $this;
+ }
+
+ /**
+ * Immutable. The relative resource name of the metadata import, of the form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{metadata_import_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Immutable. The relative resource name of the metadata import, of the form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{metadata_import_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The description of the metadata import.
+ *
+ * Generated from protobuf field string description = 2;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * The description of the metadata import.
+ *
+ * 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;
+ }
+
+ /**
+ * Output only. The time when the metadata import was started.
+ *
+ * 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 time when the metadata import was started.
+ *
+ * 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 time when the metadata import 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 time when the metadata import 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 time when the metadata import finished.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 7 [(.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 when the metadata import finished.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 7 [(.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 current state of the metadata import.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.MetadataImport.State state = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The current state of the metadata import.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.MetadataImport.State state = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1\MetadataImport\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getMetadata()
+ {
+ return $this->whichOneof("metadata");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/MetadataImport/DatabaseDump.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/MetadataImport/DatabaseDump.php
new file mode 100644
index 000000000000..dd3ab9de1707
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/MetadataImport/DatabaseDump.php
@@ -0,0 +1,152 @@
+google.cloud.metastore.v1.MetadataImport.DatabaseDump
+ */
+class DatabaseDump extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The type of the database.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.MetadataImport.DatabaseDump.DatabaseType database_type = 1 [deprecated = true];
+ * @deprecated
+ */
+ protected $database_type = 0;
+ /**
+ * A Cloud Storage object or folder URI that specifies the source from which
+ * to import metadata. It must begin with `gs://`.
+ *
+ * Generated from protobuf field string gcs_uri = 2;
+ */
+ protected $gcs_uri = '';
+ /**
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.DatabaseDumpSpec.Type type = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $type = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $database_type
+ * The type of the database.
+ * @type string $gcs_uri
+ * A Cloud Storage object or folder URI that specifies the source from which
+ * to import metadata. It must begin with `gs://`.
+ * @type int $type
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The type of the database.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.MetadataImport.DatabaseDump.DatabaseType database_type = 1 [deprecated = true];
+ * @return int
+ * @deprecated
+ */
+ public function getDatabaseType()
+ {
+ @trigger_error('database_type is deprecated.', E_USER_DEPRECATED);
+ return $this->database_type;
+ }
+
+ /**
+ * The type of the database.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.MetadataImport.DatabaseDump.DatabaseType database_type = 1 [deprecated = true];
+ * @param int $var
+ * @return $this
+ * @deprecated
+ */
+ public function setDatabaseType($var)
+ {
+ @trigger_error('database_type is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1\MetadataImport\DatabaseDump\DatabaseType::class);
+ $this->database_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * A Cloud Storage object or folder URI that specifies the source from which
+ * to import metadata. It must begin with `gs://`.
+ *
+ * Generated from protobuf field string gcs_uri = 2;
+ * @return string
+ */
+ public function getGcsUri()
+ {
+ return $this->gcs_uri;
+ }
+
+ /**
+ * A Cloud Storage object or folder URI that specifies the source from which
+ * to import metadata. It must begin with `gs://`.
+ *
+ * Generated from protobuf field string gcs_uri = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setGcsUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->gcs_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.DatabaseDumpSpec.Type type = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.DatabaseDumpSpec.Type type = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1\DatabaseDumpSpec\Type::class);
+ $this->type = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(DatabaseDump::class, \Google\Cloud\Metastore\V1\MetadataImport_DatabaseDump::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/MetadataImport/DatabaseDump/DatabaseType.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/MetadataImport/DatabaseDump/DatabaseType.php
new file mode 100644
index 000000000000..c5d6380893d5
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/MetadataImport/DatabaseDump/DatabaseType.php
@@ -0,0 +1,57 @@
+google.cloud.metastore.v1.MetadataImport.DatabaseDump.DatabaseType
+ */
+class DatabaseType
+{
+ /**
+ * The type of the source database is unknown.
+ *
+ * Generated from protobuf enum DATABASE_TYPE_UNSPECIFIED = 0;
+ */
+ const DATABASE_TYPE_UNSPECIFIED = 0;
+ /**
+ * The type of the source database is MySQL.
+ *
+ * Generated from protobuf enum MYSQL = 1;
+ */
+ const MYSQL = 1;
+
+ private static $valueToName = [
+ self::DATABASE_TYPE_UNSPECIFIED => 'DATABASE_TYPE_UNSPECIFIED',
+ self::MYSQL => 'MYSQL',
+ ];
+
+ 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(DatabaseType::class, \Google\Cloud\Metastore\V1\MetadataImport_DatabaseDump_DatabaseType::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/MetadataImport/State.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/MetadataImport/State.php
new file mode 100644
index 000000000000..627621ca37c4
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/MetadataImport/State.php
@@ -0,0 +1,79 @@
+google.cloud.metastore.v1.MetadataImport.State
+ */
+class State
+{
+ /**
+ * The state of the metadata import is unknown.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The metadata import is running.
+ *
+ * Generated from protobuf enum RUNNING = 1;
+ */
+ const RUNNING = 1;
+ /**
+ * The metadata import completed successfully.
+ *
+ * Generated from protobuf enum SUCCEEDED = 2;
+ */
+ const SUCCEEDED = 2;
+ /**
+ * The metadata import is being updated.
+ *
+ * Generated from protobuf enum UPDATING = 3;
+ */
+ const UPDATING = 3;
+ /**
+ * The metadata import failed, and attempted metadata changes were rolled
+ * back.
+ *
+ * Generated from protobuf enum FAILED = 4;
+ */
+ const FAILED = 4;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::RUNNING => 'RUNNING',
+ self::SUCCEEDED => 'SUCCEEDED',
+ self::UPDATING => 'UPDATING',
+ 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\Metastore\V1\MetadataImport_State::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/MetadataImport_DatabaseDump.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/MetadataImport_DatabaseDump.php
new file mode 100644
index 000000000000..36c27aad31f9
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/MetadataImport_DatabaseDump.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1.MetadataManagementActivity
+ */
+class MetadataManagementActivity extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The latest metadata exports of the metastore service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1.MetadataExport metadata_exports = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $metadata_exports;
+ /**
+ * Output only. The latest restores of the metastore service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1.Restore restores = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $restores;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Metastore\V1\MetadataExport>|\Google\Protobuf\Internal\RepeatedField $metadata_exports
+ * Output only. The latest metadata exports of the metastore service.
+ * @type array<\Google\Cloud\Metastore\V1\Restore>|\Google\Protobuf\Internal\RepeatedField $restores
+ * Output only. The latest restores of the metastore service.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The latest metadata exports of the metastore service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1.MetadataExport metadata_exports = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getMetadataExports()
+ {
+ return $this->metadata_exports;
+ }
+
+ /**
+ * Output only. The latest metadata exports of the metastore service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1.MetadataExport metadata_exports = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array<\Google\Cloud\Metastore\V1\MetadataExport>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setMetadataExports($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1\MetadataExport::class);
+ $this->metadata_exports = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The latest restores of the metastore service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1.Restore restores = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRestores()
+ {
+ return $this->restores;
+ }
+
+ /**
+ * Output only. The latest restores of the metastore service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1.Restore restores = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array<\Google\Cloud\Metastore\V1\Restore>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRestores($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1\Restore::class);
+ $this->restores = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/NetworkConfig.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/NetworkConfig.php
new file mode 100644
index 000000000000..0b1d4cba0157
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/NetworkConfig.php
@@ -0,0 +1,71 @@
+google.cloud.metastore.v1.NetworkConfig
+ */
+class NetworkConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Immutable. The consumer-side network configuration for the Dataproc
+ * Metastore instance.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1.NetworkConfig.Consumer consumers = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ private $consumers;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Metastore\V1\NetworkConfig\Consumer>|\Google\Protobuf\Internal\RepeatedField $consumers
+ * Immutable. The consumer-side network configuration for the Dataproc
+ * Metastore instance.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Immutable. The consumer-side network configuration for the Dataproc
+ * Metastore instance.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1.NetworkConfig.Consumer consumers = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getConsumers()
+ {
+ return $this->consumers;
+ }
+
+ /**
+ * Immutable. The consumer-side network configuration for the Dataproc
+ * Metastore instance.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1.NetworkConfig.Consumer consumers = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param array<\Google\Cloud\Metastore\V1\NetworkConfig\Consumer>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setConsumers($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1\NetworkConfig\Consumer::class);
+ $this->consumers = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/NetworkConfig/Consumer.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/NetworkConfig/Consumer.php
new file mode 100644
index 000000000000..9a69fad5d124
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/NetworkConfig/Consumer.php
@@ -0,0 +1,134 @@
+google.cloud.metastore.v1.NetworkConfig.Consumer
+ */
+class Consumer extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The URI of the endpoint used to access the metastore
+ * service.
+ *
+ * Generated from protobuf field string endpoint_uri = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $endpoint_uri = '';
+ protected $vpc_resource;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $subnetwork
+ * Immutable. The subnetwork of the customer project from which an IP
+ * address is reserved and used as the Dataproc Metastore service's
+ * endpoint. It is accessible to hosts in the subnet and to all
+ * hosts in a subnet in the same region and same network. There must
+ * be at least one IP address available in the subnet's primary range. The
+ * subnet is specified in the following form:
+ * `projects/{project_number}/regions/{region_id}/subnetworks/{subnetwork_id}`
+ * @type string $endpoint_uri
+ * Output only. The URI of the endpoint used to access the metastore
+ * service.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Immutable. The subnetwork of the customer project from which an IP
+ * address is reserved and used as the Dataproc Metastore service's
+ * endpoint. It is accessible to hosts in the subnet and to all
+ * hosts in a subnet in the same region and same network. There must
+ * be at least one IP address available in the subnet's primary range. The
+ * subnet is specified in the following form:
+ * `projects/{project_number}/regions/{region_id}/subnetworks/{subnetwork_id}`
+ *
+ * Generated from protobuf field string subnetwork = 1 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getSubnetwork()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasSubnetwork()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Immutable. The subnetwork of the customer project from which an IP
+ * address is reserved and used as the Dataproc Metastore service's
+ * endpoint. It is accessible to hosts in the subnet and to all
+ * hosts in a subnet in the same region and same network. There must
+ * be at least one IP address available in the subnet's primary range. The
+ * subnet is specified in the following form:
+ * `projects/{project_number}/regions/{region_id}/subnetworks/{subnetwork_id}`
+ *
+ * Generated from protobuf field string subnetwork = 1 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setSubnetwork($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The URI of the endpoint used to access the metastore
+ * service.
+ *
+ * Generated from protobuf field string endpoint_uri = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getEndpointUri()
+ {
+ return $this->endpoint_uri;
+ }
+
+ /**
+ * Output only. The URI of the endpoint used to access the metastore
+ * service.
+ *
+ * Generated from protobuf field string endpoint_uri = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setEndpointUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->endpoint_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getVpcResource()
+ {
+ return $this->whichOneof("vpc_resource");
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Consumer::class, \Google\Cloud\Metastore\V1\NetworkConfig_Consumer::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/NetworkConfig_Consumer.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/NetworkConfig_Consumer.php
new file mode 100644
index 000000000000..414791f9fbbf
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/NetworkConfig_Consumer.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.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 caller 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 = 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 caller 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\Metastore\V1\Metastore::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 caller 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 = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return bool
+ */
+ public function getRequestedCancellation()
+ {
+ return $this->requested_cancellation;
+ }
+
+ /**
+ * Output only. Identifies whether the caller 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 = 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/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Restore.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Restore.php
new file mode 100644
index 000000000000..40f6b3f7dfa7
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Restore.php
@@ -0,0 +1,269 @@
+google.cloud.metastore.v1.Restore
+ */
+class Restore extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The time when the restore started.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $start_time = null;
+ /**
+ * Output only. The time when the restore ended.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $end_time = null;
+ /**
+ * Output only. The current state of the restore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Restore.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * Generated from protobuf field string backup = 4 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ */
+ protected $backup = '';
+ /**
+ * Output only. The type of restore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Restore.RestoreType type = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $type = 0;
+ /**
+ * Output only. The restore details containing the revision of the service to
+ * be restored to, in format of JSON.
+ *
+ * Generated from protobuf field string details = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $details = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Timestamp $start_time
+ * Output only. The time when the restore started.
+ * @type \Google\Protobuf\Timestamp $end_time
+ * Output only. The time when the restore ended.
+ * @type int $state
+ * Output only. The current state of the restore.
+ * @type string $backup
+ * Output only. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ * @type int $type
+ * Output only. The type of restore.
+ * @type string $details
+ * Output only. The restore details containing the revision of the service to
+ * be restored to, in format of JSON.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The time when the restore started.
+ *
+ * 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 time when the restore started.
+ *
+ * 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 time when the restore ended.
+ *
+ * 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 when the restore ended.
+ *
+ * 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 current state of the restore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Restore.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The current state of the restore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Restore.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1\Restore\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * Generated from protobuf field string backup = 4 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getBackup()
+ {
+ return $this->backup;
+ }
+
+ /**
+ * Output only. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * Generated from protobuf field string backup = 4 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setBackup($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->backup = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The type of restore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Restore.RestoreType type = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * Output only. The type of restore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Restore.RestoreType type = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1\Restore\RestoreType::class);
+ $this->type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The restore details containing the revision of the service to
+ * be restored to, in format of JSON.
+ *
+ * Generated from protobuf field string details = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getDetails()
+ {
+ return $this->details;
+ }
+
+ /**
+ * Output only. The restore details containing the revision of the service to
+ * be restored to, in format of JSON.
+ *
+ * Generated from protobuf field string details = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setDetails($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->details = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Restore/RestoreType.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Restore/RestoreType.php
new file mode 100644
index 000000000000..1dbf9a631af0
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Restore/RestoreType.php
@@ -0,0 +1,64 @@
+google.cloud.metastore.v1.Restore.RestoreType
+ */
+class RestoreType
+{
+ /**
+ * The restore type is unknown.
+ *
+ * Generated from protobuf enum RESTORE_TYPE_UNSPECIFIED = 0;
+ */
+ const RESTORE_TYPE_UNSPECIFIED = 0;
+ /**
+ * The service's metadata and configuration are restored.
+ *
+ * Generated from protobuf enum FULL = 1;
+ */
+ const FULL = 1;
+ /**
+ * Only the service's metadata is restored.
+ *
+ * Generated from protobuf enum METADATA_ONLY = 2;
+ */
+ const METADATA_ONLY = 2;
+
+ private static $valueToName = [
+ self::RESTORE_TYPE_UNSPECIFIED => 'RESTORE_TYPE_UNSPECIFIED',
+ self::FULL => 'FULL',
+ self::METADATA_ONLY => 'METADATA_ONLY',
+ ];
+
+ 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(RestoreType::class, \Google\Cloud\Metastore\V1\Restore_RestoreType::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Restore/State.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Restore/State.php
new file mode 100644
index 000000000000..e00016549808
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Restore/State.php
@@ -0,0 +1,78 @@
+google.cloud.metastore.v1.Restore.State
+ */
+class State
+{
+ /**
+ * The state of the metadata restore is unknown.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The metadata restore is running.
+ *
+ * Generated from protobuf enum RUNNING = 1;
+ */
+ const RUNNING = 1;
+ /**
+ * The metadata restore completed successfully.
+ *
+ * Generated from protobuf enum SUCCEEDED = 2;
+ */
+ const SUCCEEDED = 2;
+ /**
+ * The metadata restore failed.
+ *
+ * Generated from protobuf enum FAILED = 3;
+ */
+ const FAILED = 3;
+ /**
+ * The metadata restore is cancelled.
+ *
+ * Generated from protobuf enum CANCELLED = 4;
+ */
+ const CANCELLED = 4;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::RUNNING => 'RUNNING',
+ self::SUCCEEDED => 'SUCCEEDED',
+ self::FAILED => 'FAILED',
+ self::CANCELLED => 'CANCELLED',
+ ];
+
+ 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\Metastore\V1\Restore_State::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/RestoreServiceRequest.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/RestoreServiceRequest.php
new file mode 100644
index 000000000000..b55b901f0c82
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/RestoreServiceRequest.php
@@ -0,0 +1,244 @@
+google.cloud.metastore.v1.RestoreServiceRequest
+ */
+class RestoreServiceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metastore service to run
+ * restore, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $service = '';
+ /**
+ * Required. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * Generated from protobuf field string backup = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $backup = '';
+ /**
+ * Optional. The type of restore. If unspecified, defaults to `METADATA_ONLY`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Restore.RestoreType restore_type = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $restore_type = 0;
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param string $service Required. The relative resource name of the metastore service to run
+ * restore, in the following form:
+ *
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`. Please see
+ * {@see DataprocMetastoreClient::serviceName()} for help formatting this field.
+ * @param string $backup Required. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ *
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`. Please see
+ * {@see DataprocMetastoreClient::backupName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Metastore\V1\RestoreServiceRequest
+ *
+ * @experimental
+ */
+ public static function build(string $service, string $backup): self
+ {
+ return (new self())
+ ->setService($service)
+ ->setBackup($backup);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $service
+ * Required. The relative resource name of the metastore service to run
+ * restore, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ * @type string $backup
+ * Required. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ * @type int $restore_type
+ * Optional. The type of restore. If unspecified, defaults to `METADATA_ONLY`.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to run
+ * restore, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to run
+ * restore, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * Generated from protobuf field string backup = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getBackup()
+ {
+ return $this->backup;
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * Generated from protobuf field string backup = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setBackup($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->backup = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The type of restore. If unspecified, defaults to `METADATA_ONLY`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Restore.RestoreType restore_type = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getRestoreType()
+ {
+ return $this->restore_type;
+ }
+
+ /**
+ * Optional. The type of restore. If unspecified, defaults to `METADATA_ONLY`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Restore.RestoreType restore_type = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setRestoreType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1\Restore\RestoreType::class);
+ $this->restore_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Restore_RestoreType.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Restore_RestoreType.php
new file mode 100644
index 000000000000..31910ab62964
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Restore_RestoreType.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1.ScalingConfig
+ */
+class ScalingConfig extends \Google\Protobuf\Internal\Message
+{
+ protected $scaling_model;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $instance_size
+ * An enum of readable instance sizes, with each instance size mapping to a
+ * float value (e.g. InstanceSize.EXTRA_SMALL = scaling_factor(0.1))
+ * @type float $scaling_factor
+ * Scaling factor, increments of 0.1 for values less than 1.0, and
+ * increments of 1.0 for values greater than 1.0.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * An enum of readable instance sizes, with each instance size mapping to a
+ * float value (e.g. InstanceSize.EXTRA_SMALL = scaling_factor(0.1))
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.ScalingConfig.InstanceSize instance_size = 1;
+ * @return int
+ */
+ public function getInstanceSize()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasInstanceSize()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * An enum of readable instance sizes, with each instance size mapping to a
+ * float value (e.g. InstanceSize.EXTRA_SMALL = scaling_factor(0.1))
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.ScalingConfig.InstanceSize instance_size = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setInstanceSize($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1\ScalingConfig\InstanceSize::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Scaling factor, increments of 0.1 for values less than 1.0, and
+ * increments of 1.0 for values greater than 1.0.
+ *
+ * Generated from protobuf field float scaling_factor = 2;
+ * @return float
+ */
+ public function getScalingFactor()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasScalingFactor()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Scaling factor, increments of 0.1 for values less than 1.0, and
+ * increments of 1.0 for values greater than 1.0.
+ *
+ * Generated from protobuf field float scaling_factor = 2;
+ * @param float $var
+ * @return $this
+ */
+ public function setScalingFactor($var)
+ {
+ GPBUtil::checkFloat($var);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getScalingModel()
+ {
+ return $this->whichOneof("scaling_model");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ScalingConfig/InstanceSize.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ScalingConfig/InstanceSize.php
new file mode 100644
index 000000000000..742e323a97fb
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ScalingConfig/InstanceSize.php
@@ -0,0 +1,85 @@
+google.cloud.metastore.v1.ScalingConfig.InstanceSize
+ */
+class InstanceSize
+{
+ /**
+ * Unspecified instance size
+ *
+ * Generated from protobuf enum INSTANCE_SIZE_UNSPECIFIED = 0;
+ */
+ const INSTANCE_SIZE_UNSPECIFIED = 0;
+ /**
+ * Extra small instance size, maps to a scaling factor of 0.1.
+ *
+ * Generated from protobuf enum EXTRA_SMALL = 1;
+ */
+ const EXTRA_SMALL = 1;
+ /**
+ * Small instance size, maps to a scaling factor of 0.5.
+ *
+ * Generated from protobuf enum SMALL = 2;
+ */
+ const SMALL = 2;
+ /**
+ * Medium instance size, maps to a scaling factor of 1.0.
+ *
+ * Generated from protobuf enum MEDIUM = 3;
+ */
+ const MEDIUM = 3;
+ /**
+ * Large instance size, maps to a scaling factor of 3.0.
+ *
+ * Generated from protobuf enum LARGE = 4;
+ */
+ const LARGE = 4;
+ /**
+ * Extra large instance size, maps to a scaling factor of 6.0.
+ *
+ * Generated from protobuf enum EXTRA_LARGE = 5;
+ */
+ const EXTRA_LARGE = 5;
+
+ private static $valueToName = [
+ self::INSTANCE_SIZE_UNSPECIFIED => 'INSTANCE_SIZE_UNSPECIFIED',
+ self::EXTRA_SMALL => 'EXTRA_SMALL',
+ self::SMALL => 'SMALL',
+ self::MEDIUM => 'MEDIUM',
+ self::LARGE => 'LARGE',
+ self::EXTRA_LARGE => 'EXTRA_LARGE',
+ ];
+
+ 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(InstanceSize::class, \Google\Cloud\Metastore\V1\ScalingConfig_InstanceSize::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ScalingConfig_InstanceSize.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ScalingConfig_InstanceSize.php
new file mode 100644
index 000000000000..6b43e68b2ec2
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/ScalingConfig_InstanceSize.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1.Secret
+ */
+class Secret extends \Google\Protobuf\Internal\Message
+{
+ protected $value;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $cloud_secret
+ * The relative resource name of a Secret Manager secret version, in the
+ * following form:
+ * `projects/{project_number}/secrets/{secret_id}/versions/{version_id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The relative resource name of a Secret Manager secret version, in the
+ * following form:
+ * `projects/{project_number}/secrets/{secret_id}/versions/{version_id}`.
+ *
+ * Generated from protobuf field string cloud_secret = 2;
+ * @return string
+ */
+ public function getCloudSecret()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasCloudSecret()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * The relative resource name of a Secret Manager secret version, in the
+ * following form:
+ * `projects/{project_number}/secrets/{secret_id}/versions/{version_id}`.
+ *
+ * Generated from protobuf field string cloud_secret = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setCloudSecret($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getValue()
+ {
+ return $this->whichOneof("value");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Service.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Service.php
new file mode 100644
index 000000000000..36f66eaa77ac
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Service.php
@@ -0,0 +1,894 @@
+google.cloud.metastore.v1.Service
+ */
+class Service extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Immutable. The relative resource name of the metastore service, in the
+ * following format:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $name = '';
+ /**
+ * Output only. The time when the metastore service 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 metastore service was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * User-defined labels for the metastore service.
+ *
+ * Generated from protobuf field map labels = 4;
+ */
+ private $labels;
+ /**
+ * Immutable. The relative resource name of the VPC network on which the
+ * instance can be accessed. It is specified in the following form:
+ * `projects/{project_number}/global/networks/{network_id}`.
+ *
+ * Generated from protobuf field string network = 7 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ */
+ protected $network = '';
+ /**
+ * Output only. The URI of the endpoint used to access the metastore service.
+ *
+ * Generated from protobuf field string endpoint_uri = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $endpoint_uri = '';
+ /**
+ * The TCP port at which the metastore service is reached. Default: 9083.
+ *
+ * Generated from protobuf field int32 port = 9;
+ */
+ protected $port = 0;
+ /**
+ * Output only. The current state of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Service.State state = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. Additional information about the current state of the
+ * metastore service, if available.
+ *
+ * Generated from protobuf field string state_message = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state_message = '';
+ /**
+ * Output only. A Cloud Storage URI (starting with `gs://`) that specifies
+ * where artifacts related to the metastore service are stored.
+ *
+ * Generated from protobuf field string artifact_gcs_uri = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $artifact_gcs_uri = '';
+ /**
+ * The tier of the service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Service.Tier tier = 13;
+ */
+ protected $tier = 0;
+ /**
+ * The one hour maintenance window of the metastore service. This specifies
+ * when the service can be restarted for maintenance purposes in UTC time.
+ * Maintenance window is not needed for services with the SPANNER
+ * database type.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.MaintenanceWindow maintenance_window = 15;
+ */
+ protected $maintenance_window = null;
+ /**
+ * Output only. The globally unique resource identifier of the metastore
+ * service.
+ *
+ * Generated from protobuf field string uid = 16 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $uid = '';
+ /**
+ * Output only. The metadata management activities of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.MetadataManagementActivity metadata_management_activity = 17 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $metadata_management_activity = null;
+ /**
+ * Immutable. The release channel of the service.
+ * If unspecified, defaults to `STABLE`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Service.ReleaseChannel release_channel = 19 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $release_channel = 0;
+ /**
+ * Immutable. Information used to configure the Dataproc Metastore service to
+ * encrypt customer data at rest. Cannot be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.EncryptionConfig encryption_config = 20 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $encryption_config = null;
+ /**
+ * The configuration specifying the network settings for the
+ * Dataproc Metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.NetworkConfig network_config = 21;
+ */
+ protected $network_config = null;
+ /**
+ * Immutable. The database type that the Metastore service stores its data.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Service.DatabaseType database_type = 22 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $database_type = 0;
+ /**
+ * The configuration specifying telemetry settings for the Dataproc Metastore
+ * service. If unspecified defaults to `JSON`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.TelemetryConfig telemetry_config = 23;
+ */
+ protected $telemetry_config = null;
+ /**
+ * Scaling configuration of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.ScalingConfig scaling_config = 24;
+ */
+ protected $scaling_config = null;
+ protected $metastore_config;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Metastore\V1\HiveMetastoreConfig $hive_metastore_config
+ * Configuration information specific to running Hive metastore
+ * software as the metastore service.
+ * @type string $name
+ * Immutable. The relative resource name of the metastore service, in the
+ * following format:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time when the metastore service was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The time when the metastore service was last updated.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * User-defined labels for the metastore service.
+ * @type string $network
+ * Immutable. The relative resource name of the VPC network on which the
+ * instance can be accessed. It is specified in the following form:
+ * `projects/{project_number}/global/networks/{network_id}`.
+ * @type string $endpoint_uri
+ * Output only. The URI of the endpoint used to access the metastore service.
+ * @type int $port
+ * The TCP port at which the metastore service is reached. Default: 9083.
+ * @type int $state
+ * Output only. The current state of the metastore service.
+ * @type string $state_message
+ * Output only. Additional information about the current state of the
+ * metastore service, if available.
+ * @type string $artifact_gcs_uri
+ * Output only. A Cloud Storage URI (starting with `gs://`) that specifies
+ * where artifacts related to the metastore service are stored.
+ * @type int $tier
+ * The tier of the service.
+ * @type \Google\Cloud\Metastore\V1\MaintenanceWindow $maintenance_window
+ * The one hour maintenance window of the metastore service. This specifies
+ * when the service can be restarted for maintenance purposes in UTC time.
+ * Maintenance window is not needed for services with the SPANNER
+ * database type.
+ * @type string $uid
+ * Output only. The globally unique resource identifier of the metastore
+ * service.
+ * @type \Google\Cloud\Metastore\V1\MetadataManagementActivity $metadata_management_activity
+ * Output only. The metadata management activities of the metastore service.
+ * @type int $release_channel
+ * Immutable. The release channel of the service.
+ * If unspecified, defaults to `STABLE`.
+ * @type \Google\Cloud\Metastore\V1\EncryptionConfig $encryption_config
+ * Immutable. Information used to configure the Dataproc Metastore service to
+ * encrypt customer data at rest. Cannot be updated.
+ * @type \Google\Cloud\Metastore\V1\NetworkConfig $network_config
+ * The configuration specifying the network settings for the
+ * Dataproc Metastore service.
+ * @type int $database_type
+ * Immutable. The database type that the Metastore service stores its data.
+ * @type \Google\Cloud\Metastore\V1\TelemetryConfig $telemetry_config
+ * The configuration specifying telemetry settings for the Dataproc Metastore
+ * service. If unspecified defaults to `JSON`.
+ * @type \Google\Cloud\Metastore\V1\ScalingConfig $scaling_config
+ * Scaling configuration of the metastore service.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Configuration information specific to running Hive metastore
+ * software as the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.HiveMetastoreConfig hive_metastore_config = 5;
+ * @return \Google\Cloud\Metastore\V1\HiveMetastoreConfig|null
+ */
+ public function getHiveMetastoreConfig()
+ {
+ return $this->readOneof(5);
+ }
+
+ public function hasHiveMetastoreConfig()
+ {
+ return $this->hasOneof(5);
+ }
+
+ /**
+ * Configuration information specific to running Hive metastore
+ * software as the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.HiveMetastoreConfig hive_metastore_config = 5;
+ * @param \Google\Cloud\Metastore\V1\HiveMetastoreConfig $var
+ * @return $this
+ */
+ public function setHiveMetastoreConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1\HiveMetastoreConfig::class);
+ $this->writeOneof(5, $var);
+
+ return $this;
+ }
+
+ /**
+ * Immutable. The relative resource name of the metastore service, in the
+ * following format:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Immutable. The relative resource name of the metastore service, in the
+ * following format:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the metastore service 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 metastore service 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 metastore service 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 metastore service 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-defined labels for the metastore service.
+ *
+ * Generated from protobuf field map labels = 4;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * User-defined labels for the metastore service.
+ *
+ * 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;
+ }
+
+ /**
+ * Immutable. The relative resource name of the VPC network on which the
+ * instance can be accessed. It is specified in the following form:
+ * `projects/{project_number}/global/networks/{network_id}`.
+ *
+ * Generated from protobuf field string network = 7 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getNetwork()
+ {
+ return $this->network;
+ }
+
+ /**
+ * Immutable. The relative resource name of the VPC network on which the
+ * instance can be accessed. It is specified in the following form:
+ * `projects/{project_number}/global/networks/{network_id}`.
+ *
+ * Generated from protobuf field string network = 7 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setNetwork($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->network = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The URI of the endpoint used to access the metastore service.
+ *
+ * Generated from protobuf field string endpoint_uri = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getEndpointUri()
+ {
+ return $this->endpoint_uri;
+ }
+
+ /**
+ * Output only. The URI of the endpoint used to access the metastore service.
+ *
+ * Generated from protobuf field string endpoint_uri = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setEndpointUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->endpoint_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * The TCP port at which the metastore service is reached. Default: 9083.
+ *
+ * Generated from protobuf field int32 port = 9;
+ * @return int
+ */
+ public function getPort()
+ {
+ return $this->port;
+ }
+
+ /**
+ * The TCP port at which the metastore service is reached. Default: 9083.
+ *
+ * Generated from protobuf field int32 port = 9;
+ * @param int $var
+ * @return $this
+ */
+ public function setPort($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->port = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The current state of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Service.State state = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The current state of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Service.State state = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1\Service\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Additional information about the current state of the
+ * metastore service, if available.
+ *
+ * Generated from protobuf field string state_message = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getStateMessage()
+ {
+ return $this->state_message;
+ }
+
+ /**
+ * Output only. Additional information about the current state of the
+ * metastore service, if available.
+ *
+ * Generated from protobuf field string state_message = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setStateMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->state_message = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. A Cloud Storage URI (starting with `gs://`) that specifies
+ * where artifacts related to the metastore service are stored.
+ *
+ * Generated from protobuf field string artifact_gcs_uri = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getArtifactGcsUri()
+ {
+ return $this->artifact_gcs_uri;
+ }
+
+ /**
+ * Output only. A Cloud Storage URI (starting with `gs://`) that specifies
+ * where artifacts related to the metastore service are stored.
+ *
+ * Generated from protobuf field string artifact_gcs_uri = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setArtifactGcsUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->artifact_gcs_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * The tier of the service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Service.Tier tier = 13;
+ * @return int
+ */
+ public function getTier()
+ {
+ return $this->tier;
+ }
+
+ /**
+ * The tier of the service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Service.Tier tier = 13;
+ * @param int $var
+ * @return $this
+ */
+ public function setTier($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1\Service\Tier::class);
+ $this->tier = $var;
+
+ return $this;
+ }
+
+ /**
+ * The one hour maintenance window of the metastore service. This specifies
+ * when the service can be restarted for maintenance purposes in UTC time.
+ * Maintenance window is not needed for services with the SPANNER
+ * database type.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.MaintenanceWindow maintenance_window = 15;
+ * @return \Google\Cloud\Metastore\V1\MaintenanceWindow|null
+ */
+ public function getMaintenanceWindow()
+ {
+ return $this->maintenance_window;
+ }
+
+ public function hasMaintenanceWindow()
+ {
+ return isset($this->maintenance_window);
+ }
+
+ public function clearMaintenanceWindow()
+ {
+ unset($this->maintenance_window);
+ }
+
+ /**
+ * The one hour maintenance window of the metastore service. This specifies
+ * when the service can be restarted for maintenance purposes in UTC time.
+ * Maintenance window is not needed for services with the SPANNER
+ * database type.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.MaintenanceWindow maintenance_window = 15;
+ * @param \Google\Cloud\Metastore\V1\MaintenanceWindow $var
+ * @return $this
+ */
+ public function setMaintenanceWindow($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1\MaintenanceWindow::class);
+ $this->maintenance_window = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The globally unique resource identifier of the metastore
+ * service.
+ *
+ * Generated from protobuf field string uid = 16 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getUid()
+ {
+ return $this->uid;
+ }
+
+ /**
+ * Output only. The globally unique resource identifier of the metastore
+ * service.
+ *
+ * Generated from protobuf field string uid = 16 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setUid($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uid = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The metadata management activities of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.MetadataManagementActivity metadata_management_activity = 17 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Metastore\V1\MetadataManagementActivity|null
+ */
+ public function getMetadataManagementActivity()
+ {
+ return $this->metadata_management_activity;
+ }
+
+ public function hasMetadataManagementActivity()
+ {
+ return isset($this->metadata_management_activity);
+ }
+
+ public function clearMetadataManagementActivity()
+ {
+ unset($this->metadata_management_activity);
+ }
+
+ /**
+ * Output only. The metadata management activities of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.MetadataManagementActivity metadata_management_activity = 17 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Metastore\V1\MetadataManagementActivity $var
+ * @return $this
+ */
+ public function setMetadataManagementActivity($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1\MetadataManagementActivity::class);
+ $this->metadata_management_activity = $var;
+
+ return $this;
+ }
+
+ /**
+ * Immutable. The release channel of the service.
+ * If unspecified, defaults to `STABLE`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Service.ReleaseChannel release_channel = 19 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return int
+ */
+ public function getReleaseChannel()
+ {
+ return $this->release_channel;
+ }
+
+ /**
+ * Immutable. The release channel of the service.
+ * If unspecified, defaults to `STABLE`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Service.ReleaseChannel release_channel = 19 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param int $var
+ * @return $this
+ */
+ public function setReleaseChannel($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1\Service\ReleaseChannel::class);
+ $this->release_channel = $var;
+
+ return $this;
+ }
+
+ /**
+ * Immutable. Information used to configure the Dataproc Metastore service to
+ * encrypt customer data at rest. Cannot be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.EncryptionConfig encryption_config = 20 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return \Google\Cloud\Metastore\V1\EncryptionConfig|null
+ */
+ public function getEncryptionConfig()
+ {
+ return $this->encryption_config;
+ }
+
+ public function hasEncryptionConfig()
+ {
+ return isset($this->encryption_config);
+ }
+
+ public function clearEncryptionConfig()
+ {
+ unset($this->encryption_config);
+ }
+
+ /**
+ * Immutable. Information used to configure the Dataproc Metastore service to
+ * encrypt customer data at rest. Cannot be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.EncryptionConfig encryption_config = 20 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param \Google\Cloud\Metastore\V1\EncryptionConfig $var
+ * @return $this
+ */
+ public function setEncryptionConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1\EncryptionConfig::class);
+ $this->encryption_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The configuration specifying the network settings for the
+ * Dataproc Metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.NetworkConfig network_config = 21;
+ * @return \Google\Cloud\Metastore\V1\NetworkConfig|null
+ */
+ public function getNetworkConfig()
+ {
+ return $this->network_config;
+ }
+
+ public function hasNetworkConfig()
+ {
+ return isset($this->network_config);
+ }
+
+ public function clearNetworkConfig()
+ {
+ unset($this->network_config);
+ }
+
+ /**
+ * The configuration specifying the network settings for the
+ * Dataproc Metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.NetworkConfig network_config = 21;
+ * @param \Google\Cloud\Metastore\V1\NetworkConfig $var
+ * @return $this
+ */
+ public function setNetworkConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1\NetworkConfig::class);
+ $this->network_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Immutable. The database type that the Metastore service stores its data.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Service.DatabaseType database_type = 22 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return int
+ */
+ public function getDatabaseType()
+ {
+ return $this->database_type;
+ }
+
+ /**
+ * Immutable. The database type that the Metastore service stores its data.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Service.DatabaseType database_type = 22 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param int $var
+ * @return $this
+ */
+ public function setDatabaseType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1\Service\DatabaseType::class);
+ $this->database_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * The configuration specifying telemetry settings for the Dataproc Metastore
+ * service. If unspecified defaults to `JSON`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.TelemetryConfig telemetry_config = 23;
+ * @return \Google\Cloud\Metastore\V1\TelemetryConfig|null
+ */
+ public function getTelemetryConfig()
+ {
+ return $this->telemetry_config;
+ }
+
+ public function hasTelemetryConfig()
+ {
+ return isset($this->telemetry_config);
+ }
+
+ public function clearTelemetryConfig()
+ {
+ unset($this->telemetry_config);
+ }
+
+ /**
+ * The configuration specifying telemetry settings for the Dataproc Metastore
+ * service. If unspecified defaults to `JSON`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.TelemetryConfig telemetry_config = 23;
+ * @param \Google\Cloud\Metastore\V1\TelemetryConfig $var
+ * @return $this
+ */
+ public function setTelemetryConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1\TelemetryConfig::class);
+ $this->telemetry_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Scaling configuration of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.ScalingConfig scaling_config = 24;
+ * @return \Google\Cloud\Metastore\V1\ScalingConfig|null
+ */
+ public function getScalingConfig()
+ {
+ return $this->scaling_config;
+ }
+
+ public function hasScalingConfig()
+ {
+ return isset($this->scaling_config);
+ }
+
+ public function clearScalingConfig()
+ {
+ unset($this->scaling_config);
+ }
+
+ /**
+ * Scaling configuration of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.ScalingConfig scaling_config = 24;
+ * @param \Google\Cloud\Metastore\V1\ScalingConfig $var
+ * @return $this
+ */
+ public function setScalingConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1\ScalingConfig::class);
+ $this->scaling_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getMetastoreConfig()
+ {
+ return $this->whichOneof("metastore_config");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Service/DatabaseType.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Service/DatabaseType.php
new file mode 100644
index 000000000000..825ddf6b0f47
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Service/DatabaseType.php
@@ -0,0 +1,64 @@
+google.cloud.metastore.v1.Service.DatabaseType
+ */
+class DatabaseType
+{
+ /**
+ * The DATABASE_TYPE is not set.
+ *
+ * Generated from protobuf enum DATABASE_TYPE_UNSPECIFIED = 0;
+ */
+ const DATABASE_TYPE_UNSPECIFIED = 0;
+ /**
+ * MySQL is used to persist the metastore data.
+ *
+ * Generated from protobuf enum MYSQL = 1;
+ */
+ const MYSQL = 1;
+ /**
+ * Spanner is used to persist the metastore data.
+ *
+ * Generated from protobuf enum SPANNER = 2;
+ */
+ const SPANNER = 2;
+
+ private static $valueToName = [
+ self::DATABASE_TYPE_UNSPECIFIED => 'DATABASE_TYPE_UNSPECIFIED',
+ self::MYSQL => 'MYSQL',
+ self::SPANNER => 'SPANNER',
+ ];
+
+ 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(DatabaseType::class, \Google\Cloud\Metastore\V1\Service_DatabaseType::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Service/ReleaseChannel.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Service/ReleaseChannel.php
new file mode 100644
index 000000000000..5f79d822e3bc
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Service/ReleaseChannel.php
@@ -0,0 +1,69 @@
+google.cloud.metastore.v1.Service.ReleaseChannel
+ */
+class ReleaseChannel
+{
+ /**
+ * Release channel is not specified.
+ *
+ * Generated from protobuf enum RELEASE_CHANNEL_UNSPECIFIED = 0;
+ */
+ const RELEASE_CHANNEL_UNSPECIFIED = 0;
+ /**
+ * The `CANARY` release channel contains the newest features, which may be
+ * unstable and subject to unresolved issues with no known workarounds.
+ * Services using the `CANARY` release channel are not subject to any SLAs.
+ *
+ * Generated from protobuf enum CANARY = 1;
+ */
+ const CANARY = 1;
+ /**
+ * The `STABLE` release channel contains features that are considered stable
+ * and have been validated for production use.
+ *
+ * Generated from protobuf enum STABLE = 2;
+ */
+ const STABLE = 2;
+
+ private static $valueToName = [
+ self::RELEASE_CHANNEL_UNSPECIFIED => 'RELEASE_CHANNEL_UNSPECIFIED',
+ self::CANARY => 'CANARY',
+ self::STABLE => 'STABLE',
+ ];
+
+ 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(ReleaseChannel::class, \Google\Cloud\Metastore\V1\Service_ReleaseChannel::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Service/State.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Service/State.php
new file mode 100644
index 000000000000..335f72a766a0
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Service/State.php
@@ -0,0 +1,102 @@
+google.cloud.metastore.v1.Service.State
+ */
+class State
+{
+ /**
+ * The state of the metastore service is unknown.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The metastore service is in the process of being created.
+ *
+ * Generated from protobuf enum CREATING = 1;
+ */
+ const CREATING = 1;
+ /**
+ * The metastore service is running and ready to serve queries.
+ *
+ * Generated from protobuf enum ACTIVE = 2;
+ */
+ const ACTIVE = 2;
+ /**
+ * The metastore service is entering suspension. Its query-serving
+ * availability may cease unexpectedly.
+ *
+ * Generated from protobuf enum SUSPENDING = 3;
+ */
+ const SUSPENDING = 3;
+ /**
+ * The metastore service is suspended and unable to serve queries.
+ *
+ * Generated from protobuf enum SUSPENDED = 4;
+ */
+ const SUSPENDED = 4;
+ /**
+ * The metastore service is being updated. It remains usable but cannot
+ * accept additional update requests or be deleted at this time.
+ *
+ * Generated from protobuf enum UPDATING = 5;
+ */
+ const UPDATING = 5;
+ /**
+ * The metastore service is undergoing deletion. It cannot be used.
+ *
+ * Generated from protobuf enum DELETING = 6;
+ */
+ const DELETING = 6;
+ /**
+ * The metastore service has encountered an error and cannot be used. The
+ * metastore service should be deleted.
+ *
+ * Generated from protobuf enum ERROR = 7;
+ */
+ const ERROR = 7;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::CREATING => 'CREATING',
+ self::ACTIVE => 'ACTIVE',
+ self::SUSPENDING => 'SUSPENDING',
+ self::SUSPENDED => 'SUSPENDED',
+ self::UPDATING => 'UPDATING',
+ self::DELETING => 'DELETING',
+ self::ERROR => 'ERROR',
+ ];
+
+ 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\Metastore\V1\Service_State::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Service/Tier.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Service/Tier.php
new file mode 100644
index 000000000000..6603ae6a7018
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Service/Tier.php
@@ -0,0 +1,66 @@
+google.cloud.metastore.v1.Service.Tier
+ */
+class Tier
+{
+ /**
+ * The tier is not set.
+ *
+ * Generated from protobuf enum TIER_UNSPECIFIED = 0;
+ */
+ const TIER_UNSPECIFIED = 0;
+ /**
+ * The developer tier provides limited scalability and no fault tolerance.
+ * Good for low-cost proof-of-concept.
+ *
+ * Generated from protobuf enum DEVELOPER = 1;
+ */
+ const DEVELOPER = 1;
+ /**
+ * The enterprise tier provides multi-zone high availability, and sufficient
+ * scalability for enterprise-level Dataproc Metastore workloads.
+ *
+ * Generated from protobuf enum ENTERPRISE = 3;
+ */
+ const ENTERPRISE = 3;
+
+ private static $valueToName = [
+ self::TIER_UNSPECIFIED => 'TIER_UNSPECIFIED',
+ self::DEVELOPER => 'DEVELOPER',
+ self::ENTERPRISE => 'ENTERPRISE',
+ ];
+
+ 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(Tier::class, \Google\Cloud\Metastore\V1\Service_Tier::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Service_DatabaseType.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Service_DatabaseType.php
new file mode 100644
index 000000000000..284be95d2f53
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/Service_DatabaseType.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1.TelemetryConfig
+ */
+class TelemetryConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The output format of the Dataproc Metastore service's logs.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.TelemetryConfig.LogFormat log_format = 1;
+ */
+ protected $log_format = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $log_format
+ * The output format of the Dataproc Metastore service's logs.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The output format of the Dataproc Metastore service's logs.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.TelemetryConfig.LogFormat log_format = 1;
+ * @return int
+ */
+ public function getLogFormat()
+ {
+ return $this->log_format;
+ }
+
+ /**
+ * The output format of the Dataproc Metastore service's logs.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.TelemetryConfig.LogFormat log_format = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setLogFormat($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1\TelemetryConfig\LogFormat::class);
+ $this->log_format = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/TelemetryConfig/LogFormat.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/TelemetryConfig/LogFormat.php
new file mode 100644
index 000000000000..071414412d7d
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/TelemetryConfig/LogFormat.php
@@ -0,0 +1,62 @@
+google.cloud.metastore.v1.TelemetryConfig.LogFormat
+ */
+class LogFormat
+{
+ /**
+ * The LOG_FORMAT is not set.
+ *
+ * Generated from protobuf enum LOG_FORMAT_UNSPECIFIED = 0;
+ */
+ const LOG_FORMAT_UNSPECIFIED = 0;
+ /**
+ * Logging output uses the legacy `textPayload` format.
+ *
+ * Generated from protobuf enum LEGACY = 1;
+ */
+ const LEGACY = 1;
+ /**
+ * Logging output uses the `jsonPayload` format.
+ *
+ * Generated from protobuf enum JSON = 2;
+ */
+ const JSON = 2;
+
+ private static $valueToName = [
+ self::LOG_FORMAT_UNSPECIFIED => 'LOG_FORMAT_UNSPECIFIED',
+ self::LEGACY => 'LEGACY',
+ self::JSON => 'JSON',
+ ];
+
+ 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(LogFormat::class, \Google\Cloud\Metastore\V1\TelemetryConfig_LogFormat::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/TelemetryConfig_LogFormat.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/TelemetryConfig_LogFormat.php
new file mode 100644
index 000000000000..2675da399d1e
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/TelemetryConfig_LogFormat.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1.UpdateFederationRequest
+ */
+class UpdateFederationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metastore federation resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. The metastore federation to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ * The metastore federation's `name` field is used to identify the
+ * metastore service to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Federation federation = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $federation = null;
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param \Google\Cloud\Metastore\V1\Federation $federation Required. The metastore federation to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ *
+ * The metastore federation's `name` field is used to identify the
+ * metastore service to be updated.
+ * @param \Google\Protobuf\FieldMask $updateMask Required. A field mask used to specify the fields to be overwritten in the
+ * metastore federation resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * @return \Google\Cloud\Metastore\V1\UpdateFederationRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\Metastore\V1\Federation $federation, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setFederation($federation)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metastore federation resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ * @type \Google\Cloud\Metastore\V1\Federation $federation
+ * Required. The metastore federation to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ * The metastore federation's `name` field is used to identify the
+ * metastore service to be updated.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\MetastoreFederation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metastore federation resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * 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. A field mask used to specify the fields to be overwritten in the
+ * metastore federation resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * 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 metastore federation to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ * The metastore federation's `name` field is used to identify the
+ * metastore service to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Federation federation = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Metastore\V1\Federation|null
+ */
+ public function getFederation()
+ {
+ return $this->federation;
+ }
+
+ public function hasFederation()
+ {
+ return isset($this->federation);
+ }
+
+ public function clearFederation()
+ {
+ unset($this->federation);
+ }
+
+ /**
+ * Required. The metastore federation to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ * The metastore federation's `name` field is used to identify the
+ * metastore service to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Federation federation = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Metastore\V1\Federation $var
+ * @return $this
+ */
+ public function setFederation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1\Federation::class);
+ $this->federation = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/UpdateMetadataImportRequest.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/UpdateMetadataImportRequest.php
new file mode 100644
index 000000000000..0779fd76ed43
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/UpdateMetadataImportRequest.php
@@ -0,0 +1,238 @@
+google.cloud.metastore.v1.UpdateMetadataImportRequest
+ */
+class UpdateMetadataImportRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metadata import resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. The metadata import to update. The server only merges fields
+ * in the import if they are specified in `update_mask`.
+ * The metadata import's `name` field is used to identify the metastore
+ * import to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.MetadataImport metadata_import = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $metadata_import = null;
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param \Google\Cloud\Metastore\V1\MetadataImport $metadataImport Required. The metadata import to update. The server only merges fields
+ * in the import if they are specified in `update_mask`.
+ *
+ * The metadata import's `name` field is used to identify the metastore
+ * import to be updated.
+ * @param \Google\Protobuf\FieldMask $updateMask Required. A field mask used to specify the fields to be overwritten in the
+ * metadata import resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * @return \Google\Cloud\Metastore\V1\UpdateMetadataImportRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\Metastore\V1\MetadataImport $metadataImport, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setMetadataImport($metadataImport)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metadata import resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ * @type \Google\Cloud\Metastore\V1\MetadataImport $metadata_import
+ * Required. The metadata import to update. The server only merges fields
+ * in the import if they are specified in `update_mask`.
+ * The metadata import's `name` field is used to identify the metastore
+ * import to be updated.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metadata import resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * 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. A field mask used to specify the fields to be overwritten in the
+ * metadata import resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * 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 metadata import to update. The server only merges fields
+ * in the import if they are specified in `update_mask`.
+ * The metadata import's `name` field is used to identify the metastore
+ * import to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.MetadataImport metadata_import = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Metastore\V1\MetadataImport|null
+ */
+ public function getMetadataImport()
+ {
+ return $this->metadata_import;
+ }
+
+ public function hasMetadataImport()
+ {
+ return isset($this->metadata_import);
+ }
+
+ public function clearMetadataImport()
+ {
+ unset($this->metadata_import);
+ }
+
+ /**
+ * Required. The metadata import to update. The server only merges fields
+ * in the import if they are specified in `update_mask`.
+ * The metadata import's `name` field is used to identify the metastore
+ * import to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.MetadataImport metadata_import = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Metastore\V1\MetadataImport $var
+ * @return $this
+ */
+ public function setMetadataImport($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1\MetadataImport::class);
+ $this->metadata_import = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/UpdateServiceRequest.php b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/UpdateServiceRequest.php
new file mode 100644
index 000000000000..c5723944ac75
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/proto/src/Google/Cloud/Metastore/V1/UpdateServiceRequest.php
@@ -0,0 +1,238 @@
+google.cloud.metastore.v1.UpdateServiceRequest
+ */
+class UpdateServiceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metastore service resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. The metastore service to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ * The metastore service's `name` field is used to identify the metastore
+ * service to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Service service = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $service = null;
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * @param \Google\Cloud\Metastore\V1\Service $service Required. The metastore service to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ *
+ * The metastore service's `name` field is used to identify the metastore
+ * service to be updated.
+ * @param \Google\Protobuf\FieldMask $updateMask Required. A field mask used to specify the fields to be overwritten in the
+ * metastore service resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * @return \Google\Cloud\Metastore\V1\UpdateServiceRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\Metastore\V1\Service $service, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setService($service)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metastore service resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ * @type \Google\Cloud\Metastore\V1\Service $service
+ * Required. The metastore service to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ * The metastore service's `name` field is used to identify the metastore
+ * service to be updated.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metastore service resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * 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. A field mask used to specify the fields to be overwritten in the
+ * metastore service resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * 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 metastore service to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ * The metastore service's `name` field is used to identify the metastore
+ * service to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Service service = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Metastore\V1\Service|null
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ public function hasService()
+ {
+ return isset($this->service);
+ }
+
+ public function clearService()
+ {
+ unset($this->service);
+ }
+
+ /**
+ * Required. The metastore service to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ * The metastore service's `name` field is used to identify the metastore
+ * service to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1.Service service = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Metastore\V1\Service $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1\Service::class);
+ $this->service = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/create_backup.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/create_backup.php
new file mode 100644
index 000000000000..0c2445804427
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/create_backup.php
@@ -0,0 +1,96 @@
+setParent($formattedParent)
+ ->setBackupId($backupId)
+ ->setBackup($backup);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $dataprocMetastoreClient->createBackup($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Backup $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 = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $backupId = '[BACKUP_ID]';
+
+ create_backup_sample($formattedParent, $backupId);
+}
+// [END metastore_v1_generated_DataprocMetastore_CreateBackup_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/create_metadata_import.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/create_metadata_import.php
new file mode 100644
index 000000000000..4cf61987390f
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/create_metadata_import.php
@@ -0,0 +1,96 @@
+setParent($formattedParent)
+ ->setMetadataImportId($metadataImportId)
+ ->setMetadataImport($metadataImport);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $dataprocMetastoreClient->createMetadataImport($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var MetadataImport $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 = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $metadataImportId = '[METADATA_IMPORT_ID]';
+
+ create_metadata_import_sample($formattedParent, $metadataImportId);
+}
+// [END metastore_v1_generated_DataprocMetastore_CreateMetadataImport_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/create_service.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/create_service.php
new file mode 100644
index 000000000000..c99318a76693
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/create_service.php
@@ -0,0 +1,96 @@
+setParent($formattedParent)
+ ->setServiceId($serviceId)
+ ->setService($service);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $dataprocMetastoreClient->createService($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Service $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 = DataprocMetastoreClient::locationName('[PROJECT]', '[LOCATION]');
+ $serviceId = '[SERVICE_ID]';
+
+ create_service_sample($formattedParent, $serviceId);
+}
+// [END metastore_v1_generated_DataprocMetastore_CreateService_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/delete_backup.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/delete_backup.php
new file mode 100644
index 000000000000..2ade8ff790f5
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/delete_backup.php
@@ -0,0 +1,88 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $dataprocMetastoreClient->deleteBackup($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 = DataprocMetastoreClient::backupName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[SERVICE]',
+ '[BACKUP]'
+ );
+
+ delete_backup_sample($formattedName);
+}
+// [END metastore_v1_generated_DataprocMetastore_DeleteBackup_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/delete_service.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/delete_service.php
new file mode 100644
index 000000000000..eadf0bc599e8
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/delete_service.php
@@ -0,0 +1,83 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $dataprocMetastoreClient->deleteService($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 = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+
+ delete_service_sample($formattedName);
+}
+// [END metastore_v1_generated_DataprocMetastore_DeleteService_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/export_metadata.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/export_metadata.php
new file mode 100644
index 000000000000..71747b9fce80
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/export_metadata.php
@@ -0,0 +1,86 @@
+setService($formattedService);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $dataprocMetastoreClient->exportMetadata($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var MetadataExport $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
+{
+ $formattedService = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+
+ export_metadata_sample($formattedService);
+}
+// [END metastore_v1_generated_DataprocMetastore_ExportMetadata_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/get_backup.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/get_backup.php
new file mode 100644
index 000000000000..5ad2570cb926
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/get_backup.php
@@ -0,0 +1,79 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Backup $response */
+ $response = $dataprocMetastoreClient->getBackup($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 = DataprocMetastoreClient::backupName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[SERVICE]',
+ '[BACKUP]'
+ );
+
+ get_backup_sample($formattedName);
+}
+// [END metastore_v1_generated_DataprocMetastore_GetBackup_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/get_iam_policy.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/get_iam_policy.php
new file mode 100644
index 000000000000..ff2b200937bd
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/get_iam_policy.php
@@ -0,0 +1,72 @@
+setResource($resource);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Policy $response */
+ $response = $dataprocMetastoreClient->getIamPolicy($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
+{
+ $resource = '[RESOURCE]';
+
+ get_iam_policy_sample($resource);
+}
+// [END metastore_v1_generated_DataprocMetastore_GetIamPolicy_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/get_location.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/get_location.php
new file mode 100644
index 000000000000..10355f90bde7
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/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 metastore_v1_generated_DataprocMetastore_GetLocation_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/get_metadata_import.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/get_metadata_import.php
new file mode 100644
index 000000000000..8f05d3e8dc65
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/get_metadata_import.php
@@ -0,0 +1,79 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var MetadataImport $response */
+ $response = $dataprocMetastoreClient->getMetadataImport($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 = DataprocMetastoreClient::metadataImportName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[SERVICE]',
+ '[METADATA_IMPORT]'
+ );
+
+ get_metadata_import_sample($formattedName);
+}
+// [END metastore_v1_generated_DataprocMetastore_GetMetadataImport_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/get_service.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/get_service.php
new file mode 100644
index 000000000000..3ebf6c826a83
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/get_service.php
@@ -0,0 +1,74 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Service $response */
+ $response = $dataprocMetastoreClient->getService($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 = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+
+ get_service_sample($formattedName);
+}
+// [END metastore_v1_generated_DataprocMetastore_GetService_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/list_backups.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/list_backups.php
new file mode 100644
index 000000000000..f7a6f008e91e
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/list_backups.php
@@ -0,0 +1,79 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $dataprocMetastoreClient->listBackups($request);
+
+ /** @var Backup $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 = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+
+ list_backups_sample($formattedParent);
+}
+// [END metastore_v1_generated_DataprocMetastore_ListBackups_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/list_locations.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/list_locations.php
new file mode 100644
index 000000000000..f5a53eca3bbc
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/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 metastore_v1_generated_DataprocMetastore_ListLocations_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/list_metadata_imports.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/list_metadata_imports.php
new file mode 100644
index 000000000000..21854595053b
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/list_metadata_imports.php
@@ -0,0 +1,79 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $dataprocMetastoreClient->listMetadataImports($request);
+
+ /** @var MetadataImport $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 = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+
+ list_metadata_imports_sample($formattedParent);
+}
+// [END metastore_v1_generated_DataprocMetastore_ListMetadataImports_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/list_services.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/list_services.php
new file mode 100644
index 000000000000..49c1d902e0cc
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/list_services.php
@@ -0,0 +1,79 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $dataprocMetastoreClient->listServices($request);
+
+ /** @var Service $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 = DataprocMetastoreClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_services_sample($formattedParent);
+}
+// [END metastore_v1_generated_DataprocMetastore_ListServices_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/restore_service.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/restore_service.php
new file mode 100644
index 000000000000..32d7a2306429
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/restore_service.php
@@ -0,0 +1,98 @@
+setService($formattedService)
+ ->setBackup($formattedBackup);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $dataprocMetastoreClient->restoreService($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Restore $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
+{
+ $formattedService = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $formattedBackup = DataprocMetastoreClient::backupName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[SERVICE]',
+ '[BACKUP]'
+ );
+
+ restore_service_sample($formattedService, $formattedBackup);
+}
+// [END metastore_v1_generated_DataprocMetastore_RestoreService_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/set_iam_policy.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/set_iam_policy.php
new file mode 100644
index 000000000000..121d4cbe31c0
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/set_iam_policy.php
@@ -0,0 +1,77 @@
+setResource($resource)
+ ->setPolicy($policy);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Policy $response */
+ $response = $dataprocMetastoreClient->setIamPolicy($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
+{
+ $resource = '[RESOURCE]';
+
+ set_iam_policy_sample($resource);
+}
+// [END metastore_v1_generated_DataprocMetastore_SetIamPolicy_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/test_iam_permissions.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/test_iam_permissions.php
new file mode 100644
index 000000000000..0de4b26974e3
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/test_iam_permissions.php
@@ -0,0 +1,84 @@
+setResource($resource)
+ ->setPermissions($permissions);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var TestIamPermissionsResponse $response */
+ $response = $dataprocMetastoreClient->testIamPermissions($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
+{
+ $resource = '[RESOURCE]';
+ $permissionsElement = '[PERMISSIONS]';
+
+ test_iam_permissions_sample($resource, $permissionsElement);
+}
+// [END metastore_v1_generated_DataprocMetastore_TestIamPermissions_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/update_metadata_import.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/update_metadata_import.php
new file mode 100644
index 000000000000..256fffcf68bb
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/update_metadata_import.php
@@ -0,0 +1,75 @@
+setUpdateMask($updateMask)
+ ->setMetadataImport($metadataImport);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $dataprocMetastoreClient->updateMetadataImport($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var MetadataImport $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 metastore_v1_generated_DataprocMetastore_UpdateMetadataImport_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/update_service.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/update_service.php
new file mode 100644
index 000000000000..b2efbd27c329
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreClient/update_service.php
@@ -0,0 +1,74 @@
+setUpdateMask($updateMask)
+ ->setService($service);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $dataprocMetastoreClient->updateService($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Service $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 metastore_v1_generated_DataprocMetastore_UpdateService_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/create_federation.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/create_federation.php
new file mode 100644
index 000000000000..7f95c0a44129
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/create_federation.php
@@ -0,0 +1,96 @@
+setParent($formattedParent)
+ ->setFederationId($federationId)
+ ->setFederation($federation);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $dataprocMetastoreFederationClient->createFederation($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Federation $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 = DataprocMetastoreFederationClient::locationName('[PROJECT]', '[LOCATION]');
+ $federationId = '[FEDERATION_ID]';
+
+ create_federation_sample($formattedParent, $federationId);
+}
+// [END metastore_v1_generated_DataprocMetastoreFederation_CreateFederation_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/delete_federation.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/delete_federation.php
new file mode 100644
index 000000000000..3d71504b0c1f
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/delete_federation.php
@@ -0,0 +1,87 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $dataprocMetastoreFederationClient->deleteFederation($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 = DataprocMetastoreFederationClient::federationName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[FEDERATION]'
+ );
+
+ delete_federation_sample($formattedName);
+}
+// [END metastore_v1_generated_DataprocMetastoreFederation_DeleteFederation_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/get_federation.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/get_federation.php
new file mode 100644
index 000000000000..bf619b58bbf6
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/get_federation.php
@@ -0,0 +1,78 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Federation $response */
+ $response = $dataprocMetastoreFederationClient->getFederation($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 = DataprocMetastoreFederationClient::federationName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[FEDERATION]'
+ );
+
+ get_federation_sample($formattedName);
+}
+// [END metastore_v1_generated_DataprocMetastoreFederation_GetFederation_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/get_iam_policy.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/get_iam_policy.php
new file mode 100644
index 000000000000..f0d1d9f042cf
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/get_iam_policy.php
@@ -0,0 +1,72 @@
+setResource($resource);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Policy $response */
+ $response = $dataprocMetastoreFederationClient->getIamPolicy($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
+{
+ $resource = '[RESOURCE]';
+
+ get_iam_policy_sample($resource);
+}
+// [END metastore_v1_generated_DataprocMetastoreFederation_GetIamPolicy_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/get_location.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/get_location.php
new file mode 100644
index 000000000000..a1af3288dcca
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/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 metastore_v1_generated_DataprocMetastoreFederation_GetLocation_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/list_federations.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/list_federations.php
new file mode 100644
index 000000000000..2d46f916433a
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/list_federations.php
@@ -0,0 +1,78 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $dataprocMetastoreFederationClient->listFederations($request);
+
+ /** @var Federation $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 = DataprocMetastoreFederationClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_federations_sample($formattedParent);
+}
+// [END metastore_v1_generated_DataprocMetastoreFederation_ListFederations_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/list_locations.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/list_locations.php
new file mode 100644
index 000000000000..b712c9799315
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/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 metastore_v1_generated_DataprocMetastoreFederation_ListLocations_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/set_iam_policy.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/set_iam_policy.php
new file mode 100644
index 000000000000..3704dbdc607b
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/set_iam_policy.php
@@ -0,0 +1,77 @@
+setResource($resource)
+ ->setPolicy($policy);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Policy $response */
+ $response = $dataprocMetastoreFederationClient->setIamPolicy($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
+{
+ $resource = '[RESOURCE]';
+
+ set_iam_policy_sample($resource);
+}
+// [END metastore_v1_generated_DataprocMetastoreFederation_SetIamPolicy_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/test_iam_permissions.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/test_iam_permissions.php
new file mode 100644
index 000000000000..4e202f857ca6
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/test_iam_permissions.php
@@ -0,0 +1,84 @@
+setResource($resource)
+ ->setPermissions($permissions);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var TestIamPermissionsResponse $response */
+ $response = $dataprocMetastoreFederationClient->testIamPermissions($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
+{
+ $resource = '[RESOURCE]';
+ $permissionsElement = '[PERMISSIONS]';
+
+ test_iam_permissions_sample($resource, $permissionsElement);
+}
+// [END metastore_v1_generated_DataprocMetastoreFederation_TestIamPermissions_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/update_federation.php b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/update_federation.php
new file mode 100644
index 000000000000..38e96e951961
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/samples/V1/DataprocMetastoreFederationClient/update_federation.php
@@ -0,0 +1,74 @@
+setUpdateMask($updateMask)
+ ->setFederation($federation);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $dataprocMetastoreFederationClient->updateFederation($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Federation $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 metastore_v1_generated_DataprocMetastoreFederation_UpdateFederation_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1/src/V1/Client/BaseClient/DataprocMetastoreBaseClient.php b/owl-bot-staging/DataprocMetastore/v1/src/V1/Client/BaseClient/DataprocMetastoreBaseClient.php
new file mode 100644
index 000000000000..ab3258fefdbd
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/src/V1/Client/BaseClient/DataprocMetastoreBaseClient.php
@@ -0,0 +1,899 @@
+ self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../../resources/dataproc_metastore_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../../resources/dataproc_metastore_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../../resources/dataproc_metastore_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../../resources/dataproc_metastore_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;
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a backup
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $service
+ * @param string $backup
+ *
+ * @return string The formatted backup resource.
+ */
+ public static function backupName(string $project, string $location, string $service, string $backup): string
+ {
+ return self::getPathTemplate('backup')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'service' => $service,
+ 'backup' => $backup,
+ ]);
+ }
+
+ /**
+ * 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
+ * metadata_import resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $service
+ * @param string $metadataImport
+ *
+ * @return string The formatted metadata_import resource.
+ */
+ public static function metadataImportName(string $project, string $location, string $service, string $metadataImport): string
+ {
+ return self::getPathTemplate('metadataImport')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'service' => $service,
+ 'metadata_import' => $metadataImport,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a network
+ * resource.
+ *
+ * @param string $project
+ * @param string $network
+ *
+ * @return string The formatted network resource.
+ */
+ public static function networkName(string $project, string $network): string
+ {
+ return self::getPathTemplate('network')->render([
+ 'project' => $project,
+ 'network' => $network,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a service
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $service
+ *
+ * @return string The formatted service resource.
+ */
+ public static function serviceName(string $project, string $location, string $service): string
+ {
+ return self::getPathTemplate('service')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'service' => $service,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a subnetwork
+ * resource.
+ *
+ * @param string $project
+ * @param string $region
+ * @param string $subnetwork
+ *
+ * @return string The formatted subnetwork resource.
+ */
+ public static function subnetworkName(string $project, string $region, string $subnetwork): string
+ {
+ return self::getPathTemplate('subnetwork')->render([
+ 'project' => $project,
+ 'region' => $region,
+ 'subnetwork' => $subnetwork,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - backup: projects/{project}/locations/{location}/services/{service}/backups/{backup}
+ * - location: projects/{project}/locations/{location}
+ * - metadataImport: projects/{project}/locations/{location}/services/{service}/metadataImports/{metadata_import}
+ * - network: projects/{project}/global/networks/{network}
+ * - service: projects/{project}/locations/{location}/services/{service}
+ * - subnetwork: projects/{project}/regions/{region}/subnetworks/{subnetwork}
+ *
+ * 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 'metastore.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
+ */
+ 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 backup in a given project and location.
+ *
+ * The async variant is {@see self::createBackupAsync()} .
+ *
+ * @param CreateBackupRequest $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 createBackup(CreateBackupRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('CreateBackup', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates a new MetadataImport in a given project and location.
+ *
+ * The async variant is {@see self::createMetadataImportAsync()} .
+ *
+ * @param CreateMetadataImportRequest $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 createMetadataImport(CreateMetadataImportRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('CreateMetadataImport', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates a metastore service in a project and location.
+ *
+ * The async variant is {@see self::createServiceAsync()} .
+ *
+ * @param CreateServiceRequest $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 createService(CreateServiceRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('CreateService', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a single backup.
+ *
+ * The async variant is {@see self::deleteBackupAsync()} .
+ *
+ * @param DeleteBackupRequest $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 deleteBackup(DeleteBackupRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('DeleteBackup', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a single service.
+ *
+ * The async variant is {@see self::deleteServiceAsync()} .
+ *
+ * @param DeleteServiceRequest $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 deleteService(DeleteServiceRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('DeleteService', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Exports metadata from a service.
+ *
+ * The async variant is {@see self::exportMetadataAsync()} .
+ *
+ * @param ExportMetadataRequest $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 exportMetadata(ExportMetadataRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('ExportMetadata', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets details of a single backup.
+ *
+ * The async variant is {@see self::getBackupAsync()} .
+ *
+ * @param GetBackupRequest $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 Backup
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getBackup(GetBackupRequest $request, array $callOptions = []): Backup
+ {
+ return $this->startApiCall('GetBackup', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets details of a single import.
+ *
+ * The async variant is {@see self::getMetadataImportAsync()} .
+ *
+ * @param GetMetadataImportRequest $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 MetadataImport
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getMetadataImport(GetMetadataImportRequest $request, array $callOptions = []): MetadataImport
+ {
+ return $this->startApiCall('GetMetadataImport', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets the details of a single service.
+ *
+ * The async variant is {@see self::getServiceAsync()} .
+ *
+ * @param GetServiceRequest $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 Service
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getService(GetServiceRequest $request, array $callOptions = []): Service
+ {
+ return $this->startApiCall('GetService', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Lists backups in a service.
+ *
+ * The async variant is {@see self::listBackupsAsync()} .
+ *
+ * @param ListBackupsRequest $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 listBackups(ListBackupsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListBackups', $request, $callOptions);
+ }
+
+ /**
+ * Lists imports in a service.
+ *
+ * The async variant is {@see self::listMetadataImportsAsync()} .
+ *
+ * @param ListMetadataImportsRequest $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 listMetadataImports(ListMetadataImportsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListMetadataImports', $request, $callOptions);
+ }
+
+ /**
+ * Lists services in a project and location.
+ *
+ * The async variant is {@see self::listServicesAsync()} .
+ *
+ * @param ListServicesRequest $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 listServices(ListServicesRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListServices', $request, $callOptions);
+ }
+
+ /**
+ * Restores a service from a backup.
+ *
+ * The async variant is {@see self::restoreServiceAsync()} .
+ *
+ * @param RestoreServiceRequest $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 restoreService(RestoreServiceRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('RestoreService', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates a single import.
+ * Only the description field of MetadataImport is supported to be updated.
+ *
+ * The async variant is {@see self::updateMetadataImportAsync()} .
+ *
+ * @param UpdateMetadataImportRequest $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 updateMetadataImport(UpdateMetadataImportRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('UpdateMetadataImport', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates the parameters of a single service.
+ *
+ * The async variant is {@see self::updateServiceAsync()} .
+ *
+ * @param UpdateServiceRequest $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 updateService(UpdateServiceRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('UpdateService', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets information about a location.
+ *
+ * The async variant is {@see self::getLocationAsync()} .
+ *
+ * @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 self::listLocationsAsync()} .
+ *
+ * @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);
+ }
+
+ /**
+ * Gets the access control policy for a resource. Returns an empty policy
+ if the resource exists and does not have a policy set.
+ *
+ * The async variant is {@see self::getIamPolicyAsync()} .
+ *
+ * @param GetIamPolicyRequest $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 Policy
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getIamPolicy(GetIamPolicyRequest $request, array $callOptions = []): Policy
+ {
+ return $this->startApiCall('GetIamPolicy', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Sets the access control policy on the specified resource. Replaces
+ any existing policy.
+
+ Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
+ errors.
+ *
+ * The async variant is {@see self::setIamPolicyAsync()} .
+ *
+ * @param SetIamPolicyRequest $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 Policy
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function setIamPolicy(SetIamPolicyRequest $request, array $callOptions = []): Policy
+ {
+ return $this->startApiCall('SetIamPolicy', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Returns permissions that a caller has on the specified resource. If the
+ resource does not exist, this will return an empty set of
+ permissions, not a `NOT_FOUND` error.
+
+ Note: This operation is designed to be used for building
+ permission-aware UIs and command-line tools, not for authorization
+ checking. This operation may "fail open" without warning.
+ *
+ * The async variant is {@see self::testIamPermissionsAsync()} .
+ *
+ * @param TestIamPermissionsRequest $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 TestIamPermissionsResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function testIamPermissions(TestIamPermissionsRequest $request, array $callOptions = []): TestIamPermissionsResponse
+ {
+ return $this->startApiCall('TestIamPermissions', $request, $callOptions)->wait();
+ }
+}
diff --git a/owl-bot-staging/DataprocMetastore/v1/src/V1/Client/BaseClient/DataprocMetastoreFederationBaseClient.php b/owl-bot-staging/DataprocMetastore/v1/src/V1/Client/BaseClient/DataprocMetastoreFederationBaseClient.php
new file mode 100644
index 000000000000..36ababa04e23
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/src/V1/Client/BaseClient/DataprocMetastoreFederationBaseClient.php
@@ -0,0 +1,550 @@
+ self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../../resources/dataproc_metastore_federation_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../../resources/dataproc_metastore_federation_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../../resources/dataproc_metastore_federation_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../../resources/dataproc_metastore_federation_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;
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a federation
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $federation
+ *
+ * @return string The formatted federation resource.
+ */
+ public static function federationName(string $project, string $location, string $federation): string
+ {
+ return self::getPathTemplate('federation')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'federation' => $federation,
+ ]);
+ }
+
+ /**
+ * 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
+ * - federation: projects/{project}/locations/{location}/federations/{federation}
+ * - 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 'metastore.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
+ */
+ 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 metastore federation in a project and location.
+ *
+ * The async variant is {@see self::createFederationAsync()} .
+ *
+ * @param CreateFederationRequest $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 createFederation(CreateFederationRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('CreateFederation', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a single federation.
+ *
+ * The async variant is {@see self::deleteFederationAsync()} .
+ *
+ * @param DeleteFederationRequest $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 deleteFederation(DeleteFederationRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('DeleteFederation', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets the details of a single federation.
+ *
+ * The async variant is {@see self::getFederationAsync()} .
+ *
+ * @param GetFederationRequest $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 Federation
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getFederation(GetFederationRequest $request, array $callOptions = []): Federation
+ {
+ return $this->startApiCall('GetFederation', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Lists federations in a project and location.
+ *
+ * The async variant is {@see self::listFederationsAsync()} .
+ *
+ * @param ListFederationsRequest $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 listFederations(ListFederationsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListFederations', $request, $callOptions);
+ }
+
+ /**
+ * Updates the fields of a federation.
+ *
+ * The async variant is {@see self::updateFederationAsync()} .
+ *
+ * @param UpdateFederationRequest $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 updateFederation(UpdateFederationRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('UpdateFederation', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets information about a location.
+ *
+ * The async variant is {@see self::getLocationAsync()} .
+ *
+ * @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 self::listLocationsAsync()} .
+ *
+ * @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);
+ }
+
+ /**
+ * Gets the access control policy for a resource. Returns an empty policy
+ if the resource exists and does not have a policy set.
+ *
+ * The async variant is {@see self::getIamPolicyAsync()} .
+ *
+ * @param GetIamPolicyRequest $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 Policy
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getIamPolicy(GetIamPolicyRequest $request, array $callOptions = []): Policy
+ {
+ return $this->startApiCall('GetIamPolicy', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Sets the access control policy on the specified resource. Replaces
+ any existing policy.
+
+ Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
+ errors.
+ *
+ * The async variant is {@see self::setIamPolicyAsync()} .
+ *
+ * @param SetIamPolicyRequest $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 Policy
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function setIamPolicy(SetIamPolicyRequest $request, array $callOptions = []): Policy
+ {
+ return $this->startApiCall('SetIamPolicy', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Returns permissions that a caller has on the specified resource. If the
+ resource does not exist, this will return an empty set of
+ permissions, not a `NOT_FOUND` error.
+
+ Note: This operation is designed to be used for building
+ permission-aware UIs and command-line tools, not for authorization
+ checking. This operation may "fail open" without warning.
+ *
+ * The async variant is {@see self::testIamPermissionsAsync()} .
+ *
+ * @param TestIamPermissionsRequest $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 TestIamPermissionsResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function testIamPermissions(TestIamPermissionsRequest $request, array $callOptions = []): TestIamPermissionsResponse
+ {
+ return $this->startApiCall('TestIamPermissions', $request, $callOptions)->wait();
+ }
+}
diff --git a/owl-bot-staging/DataprocMetastore/v1/src/V1/Client/DataprocMetastoreClient.php b/owl-bot-staging/DataprocMetastore/v1/src/V1/Client/DataprocMetastoreClient.php
new file mode 100644
index 000000000000..6b5a5912c86c
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/src/V1/Client/DataprocMetastoreClient.php
@@ -0,0 +1,40 @@
+locationName('[PROJECT]', '[LOCATION]');
+ * $federationId = 'federation_id';
+ * $federation = new Federation();
+ * $operationResponse = $dataprocMetastoreFederationClient->createFederation($formattedParent, $federationId, $federation);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreFederationClient->createFederation($formattedParent, $federationId, $federation);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreFederationClient->resumeOperation($operationName, 'createFederation');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * Many parameters require resource names to be formatted in a particular way. To
+ * assist with these names, this class includes a format method for each type of
+ * name, and additionally a parseName method to extract the individual identifiers
+ * contained within formatted names that are returned by the API.
+ */
+class DataprocMetastoreFederationGapicClient
+{
+ use GapicClientTrait;
+
+ /** The name of the service. */
+ const SERVICE_NAME = 'google.cloud.metastore.v1.DataprocMetastoreFederation';
+
+ /** The default address of the service. */
+ const SERVICE_ADDRESS = 'metastore.googleapis.com';
+
+ /** 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 $federationNameTemplate;
+
+ private static $locationNameTemplate;
+
+ private static $pathTemplateMap;
+
+ private $operationsClient;
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/dataproc_metastore_federation_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/dataproc_metastore_federation_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/dataproc_metastore_federation_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/dataproc_metastore_federation_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ private static function getFederationNameTemplate()
+ {
+ if (self::$federationNameTemplate == null) {
+ self::$federationNameTemplate = new PathTemplate('projects/{project}/locations/{location}/federations/{federation}');
+ }
+
+ return self::$federationNameTemplate;
+ }
+
+ private static function getLocationNameTemplate()
+ {
+ if (self::$locationNameTemplate == null) {
+ self::$locationNameTemplate = new PathTemplate('projects/{project}/locations/{location}');
+ }
+
+ return self::$locationNameTemplate;
+ }
+
+ private static function getPathTemplateMap()
+ {
+ if (self::$pathTemplateMap == null) {
+ self::$pathTemplateMap = [
+ 'federation' => self::getFederationNameTemplate(),
+ 'location' => self::getLocationNameTemplate(),
+ ];
+ }
+
+ return self::$pathTemplateMap;
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a federation
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $federation
+ *
+ * @return string The formatted federation resource.
+ */
+ public static function federationName($project, $location, $federation)
+ {
+ return self::getFederationNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'federation' => $federation,
+ ]);
+ }
+
+ /**
+ * 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($project, $location)
+ {
+ return self::getLocationNameTemplate()->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
+ * - federation: projects/{project}/locations/{location}/federations/{federation}
+ * - 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($formattedName, $template = null)
+ {
+ $templateMap = self::getPathTemplateMap();
+ if ($template) {
+ if (!isset($templateMap[$template])) {
+ throw new ValidationException("Template name $template does not exist");
+ }
+
+ return $templateMap[$template]->match($formattedName);
+ }
+
+ foreach ($templateMap as $templateName => $pathTemplate) {
+ try {
+ return $pathTemplate->match($formattedName);
+ } catch (ValidationException $ex) {
+ // Swallow the exception to continue trying other path templates
+ }
+ }
+
+ throw new ValidationException("Input did not match any known format. Input: $formattedName");
+ }
+
+ /**
+ * 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;
+ }
+
+ /**
+ * 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 'metastore.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
+ */
+ public function __construct(array $options = [])
+ {
+ $clientOptions = $this->buildClientOptions($options);
+ $this->setClientOptions($clientOptions);
+ $this->operationsClient = $this->createOperationsClient($clientOptions);
+ }
+
+ /**
+ * Creates a metastore federation in a project and location.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $formattedParent = $dataprocMetastoreFederationClient->locationName('[PROJECT]', '[LOCATION]');
+ * $federationId = 'federation_id';
+ * $federation = new Federation();
+ * $operationResponse = $dataprocMetastoreFederationClient->createFederation($formattedParent, $federationId, $federation);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreFederationClient->createFederation($formattedParent, $federationId, $federation);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreFederationClient->resumeOperation($operationName, 'createFederation');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The relative resource name of the location in which to create a
+ * federation service, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}`.
+ * @param string $federationId Required. The ID of the metastore federation, which is used as the final
+ * component of the metastore federation's name.
+ *
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ * @param Federation $federation Required. The Metastore Federation to create. The `name` field is
+ * ignored. The ID of the created metastore federation must be
+ * provided in the request's `federation_id` field.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function createFederation($parent, $federationId, $federation, array $optionalArgs = [])
+ {
+ $request = new CreateFederationRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setFederationId($federationId);
+ $request->setFederation($federation);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('CreateFederation', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Deletes a single federation.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $formattedName = $dataprocMetastoreFederationClient->federationName('[PROJECT]', '[LOCATION]', '[FEDERATION]');
+ * $operationResponse = $dataprocMetastoreFederationClient->deleteFederation($formattedName);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * // operation succeeded and returns no value
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreFederationClient->deleteFederation($formattedName);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreFederationClient->resumeOperation($operationName, 'deleteFederation');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * // operation succeeded and returns no value
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The relative resource name of the metastore federation to delete,
+ * in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function deleteFederation($name, array $optionalArgs = [])
+ {
+ $request = new DeleteFederationRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('DeleteFederation', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Gets the details of a single federation.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $formattedName = $dataprocMetastoreFederationClient->federationName('[PROJECT]', '[LOCATION]', '[FEDERATION]');
+ * $response = $dataprocMetastoreFederationClient->getFederation($formattedName);
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The relative resource name of the metastore federation to
+ * retrieve, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Metastore\V1\Federation
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getFederation($name, array $optionalArgs = [])
+ {
+ $request = new GetFederationRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetFederation', Federation::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Lists federations in a project and location.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $formattedParent = $dataprocMetastoreFederationClient->locationName('[PROJECT]', '[LOCATION]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataprocMetastoreFederationClient->listFederations($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataprocMetastoreFederationClient->listFederations($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The relative resource name of the location of metastore
+ * federations to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @type string $filter
+ * Optional. The filter to apply to list results.
+ * @type string $orderBy
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function listFederations($parent, array $optionalArgs = [])
+ {
+ $request = new ListFederationsRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['orderBy'])) {
+ $request->setOrderBy($optionalArgs['orderBy']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListFederations', $optionalArgs, ListFederationsResponse::class, $request);
+ }
+
+ /**
+ * Updates the fields of a federation.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $updateMask = new FieldMask();
+ * $federation = new Federation();
+ * $operationResponse = $dataprocMetastoreFederationClient->updateFederation($updateMask, $federation);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreFederationClient->updateFederation($updateMask, $federation);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreFederationClient->resumeOperation($operationName, 'updateFederation');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param FieldMask $updateMask Required. A field mask used to specify the fields to be overwritten in the
+ * metastore federation resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ * @param Federation $federation Required. The metastore federation to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ *
+ * The metastore federation's `name` field is used to identify the
+ * metastore service to be updated.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function updateFederation($updateMask, $federation, array $optionalArgs = [])
+ {
+ $request = new UpdateFederationRequest();
+ $requestParamHeaders = [];
+ $request->setUpdateMask($updateMask);
+ $request->setFederation($federation);
+ $requestParamHeaders['federation.name'] = $federation->getName();
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('UpdateFederation', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Gets information about a location.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $response = $dataprocMetastoreFederationClient->getLocation();
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $name
+ * Resource name for the location.
+ * @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 \Google\Cloud\Location\Location
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getLocation(array $optionalArgs = [])
+ {
+ $request = new GetLocationRequest();
+ $requestParamHeaders = [];
+ if (isset($optionalArgs['name'])) {
+ $request->setName($optionalArgs['name']);
+ $requestParamHeaders['name'] = $optionalArgs['name'];
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetLocation', Location::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.cloud.location.Locations')->wait();
+ }
+
+ /**
+ * Lists information about the supported locations for this service.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataprocMetastoreFederationClient->listLocations();
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataprocMetastoreFederationClient->listLocations();
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $name
+ * The resource that owns the locations collection, if applicable.
+ * @type string $filter
+ * The standard list filter.
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function listLocations(array $optionalArgs = [])
+ {
+ $request = new ListLocationsRequest();
+ $requestParamHeaders = [];
+ if (isset($optionalArgs['name'])) {
+ $request->setName($optionalArgs['name']);
+ $requestParamHeaders['name'] = $optionalArgs['name'];
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListLocations', $optionalArgs, ListLocationsResponse::class, $request, 'google.cloud.location.Locations');
+ }
+
+ /**
+ * Gets the access control policy for a resource. Returns an empty policy
+ if the resource exists and does not have a policy set.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $resource = 'resource';
+ * $response = $dataprocMetastoreFederationClient->getIamPolicy($resource);
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param string $resource REQUIRED: The resource for which the policy is being requested.
+ * See the operation documentation for the appropriate value for this field.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type GetPolicyOptions $options
+ * OPTIONAL: A `GetPolicyOptions` object for specifying options to
+ * `GetIamPolicy`.
+ * @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 \Google\Cloud\Iam\V1\Policy
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getIamPolicy($resource, array $optionalArgs = [])
+ {
+ $request = new GetIamPolicyRequest();
+ $requestParamHeaders = [];
+ $request->setResource($resource);
+ $requestParamHeaders['resource'] = $resource;
+ if (isset($optionalArgs['options'])) {
+ $request->setOptions($optionalArgs['options']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetIamPolicy', Policy::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.iam.v1.IAMPolicy')->wait();
+ }
+
+ /**
+ * Sets the access control policy on the specified resource. Replaces
+ any existing policy.
+
+ Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
+ errors.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $resource = 'resource';
+ * $policy = new Policy();
+ * $response = $dataprocMetastoreFederationClient->setIamPolicy($resource, $policy);
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param string $resource REQUIRED: The resource for which the policy is being specified.
+ * See the operation documentation for the appropriate value for this field.
+ * @param Policy $policy REQUIRED: The complete policy to be applied to the `resource`. The size of
+ * the policy is limited to a few 10s of KB. An empty policy is a
+ * valid policy but certain Cloud Platform services (such as Projects)
+ * might reject them.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type FieldMask $updateMask
+ * OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
+ * the fields in the mask will be modified. If no mask is provided, the
+ * following default mask is used:
+ *
+ * `paths: "bindings, etag"`
+ * @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 \Google\Cloud\Iam\V1\Policy
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function setIamPolicy($resource, $policy, array $optionalArgs = [])
+ {
+ $request = new SetIamPolicyRequest();
+ $requestParamHeaders = [];
+ $request->setResource($resource);
+ $request->setPolicy($policy);
+ $requestParamHeaders['resource'] = $resource;
+ if (isset($optionalArgs['updateMask'])) {
+ $request->setUpdateMask($optionalArgs['updateMask']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('SetIamPolicy', Policy::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.iam.v1.IAMPolicy')->wait();
+ }
+
+ /**
+ * Returns permissions that a caller has on the specified resource. If the
+ resource does not exist, this will return an empty set of
+ permissions, not a `NOT_FOUND` error.
+
+ Note: This operation is designed to be used for building
+ permission-aware UIs and command-line tools, not for authorization
+ checking. This operation may "fail open" without warning.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $resource = 'resource';
+ * $permissions = [];
+ * $response = $dataprocMetastoreFederationClient->testIamPermissions($resource, $permissions);
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param string $resource REQUIRED: The resource for which the policy detail is being requested.
+ * See the operation documentation for the appropriate value for this field.
+ * @param string[] $permissions The set of permissions to check for the `resource`. Permissions with
+ * wildcards (such as '*' or 'storage.*') are not allowed. For more
+ * information see
+ * [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Iam\V1\TestIamPermissionsResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function testIamPermissions($resource, $permissions, array $optionalArgs = [])
+ {
+ $request = new TestIamPermissionsRequest();
+ $requestParamHeaders = [];
+ $request->setResource($resource);
+ $request->setPermissions($permissions);
+ $requestParamHeaders['resource'] = $resource;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('TestIamPermissions', TestIamPermissionsResponse::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.iam.v1.IAMPolicy')->wait();
+ }
+}
diff --git a/owl-bot-staging/DataprocMetastore/v1/src/V1/Gapic/DataprocMetastoreGapicClient.php b/owl-bot-staging/DataprocMetastore/v1/src/V1/Gapic/DataprocMetastoreGapicClient.php
new file mode 100644
index 000000000000..de50ae7aa8e6
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/src/V1/Gapic/DataprocMetastoreGapicClient.php
@@ -0,0 +1,2008 @@
+serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $backupId = 'backup_id';
+ * $backup = new Backup();
+ * $operationResponse = $dataprocMetastoreClient->createBackup($formattedParent, $backupId, $backup);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->createBackup($formattedParent, $backupId, $backup);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'createBackup');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * Many parameters require resource names to be formatted in a particular way. To
+ * assist with these names, this class includes a format method for each type of
+ * name, and additionally a parseName method to extract the individual identifiers
+ * contained within formatted names that are returned by the API.
+ */
+class DataprocMetastoreGapicClient
+{
+ use GapicClientTrait;
+
+ /** The name of the service. */
+ const SERVICE_NAME = 'google.cloud.metastore.v1.DataprocMetastore';
+
+ /** The default address of the service. */
+ const SERVICE_ADDRESS = 'metastore.googleapis.com';
+
+ /** 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 $backupNameTemplate;
+
+ private static $locationNameTemplate;
+
+ private static $metadataImportNameTemplate;
+
+ private static $networkNameTemplate;
+
+ private static $serviceNameTemplate;
+
+ private static $subnetworkNameTemplate;
+
+ private static $pathTemplateMap;
+
+ private $operationsClient;
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/dataproc_metastore_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/dataproc_metastore_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/dataproc_metastore_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/dataproc_metastore_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ private static function getBackupNameTemplate()
+ {
+ if (self::$backupNameTemplate == null) {
+ self::$backupNameTemplate = new PathTemplate('projects/{project}/locations/{location}/services/{service}/backups/{backup}');
+ }
+
+ return self::$backupNameTemplate;
+ }
+
+ private static function getLocationNameTemplate()
+ {
+ if (self::$locationNameTemplate == null) {
+ self::$locationNameTemplate = new PathTemplate('projects/{project}/locations/{location}');
+ }
+
+ return self::$locationNameTemplate;
+ }
+
+ private static function getMetadataImportNameTemplate()
+ {
+ if (self::$metadataImportNameTemplate == null) {
+ self::$metadataImportNameTemplate = new PathTemplate('projects/{project}/locations/{location}/services/{service}/metadataImports/{metadata_import}');
+ }
+
+ return self::$metadataImportNameTemplate;
+ }
+
+ private static function getNetworkNameTemplate()
+ {
+ if (self::$networkNameTemplate == null) {
+ self::$networkNameTemplate = new PathTemplate('projects/{project}/global/networks/{network}');
+ }
+
+ return self::$networkNameTemplate;
+ }
+
+ private static function getServiceNameTemplate()
+ {
+ if (self::$serviceNameTemplate == null) {
+ self::$serviceNameTemplate = new PathTemplate('projects/{project}/locations/{location}/services/{service}');
+ }
+
+ return self::$serviceNameTemplate;
+ }
+
+ private static function getSubnetworkNameTemplate()
+ {
+ if (self::$subnetworkNameTemplate == null) {
+ self::$subnetworkNameTemplate = new PathTemplate('projects/{project}/regions/{region}/subnetworks/{subnetwork}');
+ }
+
+ return self::$subnetworkNameTemplate;
+ }
+
+ private static function getPathTemplateMap()
+ {
+ if (self::$pathTemplateMap == null) {
+ self::$pathTemplateMap = [
+ 'backup' => self::getBackupNameTemplate(),
+ 'location' => self::getLocationNameTemplate(),
+ 'metadataImport' => self::getMetadataImportNameTemplate(),
+ 'network' => self::getNetworkNameTemplate(),
+ 'service' => self::getServiceNameTemplate(),
+ 'subnetwork' => self::getSubnetworkNameTemplate(),
+ ];
+ }
+
+ return self::$pathTemplateMap;
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a backup
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $service
+ * @param string $backup
+ *
+ * @return string The formatted backup resource.
+ */
+ public static function backupName($project, $location, $service, $backup)
+ {
+ return self::getBackupNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'service' => $service,
+ 'backup' => $backup,
+ ]);
+ }
+
+ /**
+ * 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($project, $location)
+ {
+ return self::getLocationNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * metadata_import resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $service
+ * @param string $metadataImport
+ *
+ * @return string The formatted metadata_import resource.
+ */
+ public static function metadataImportName($project, $location, $service, $metadataImport)
+ {
+ return self::getMetadataImportNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'service' => $service,
+ 'metadata_import' => $metadataImport,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a network
+ * resource.
+ *
+ * @param string $project
+ * @param string $network
+ *
+ * @return string The formatted network resource.
+ */
+ public static function networkName($project, $network)
+ {
+ return self::getNetworkNameTemplate()->render([
+ 'project' => $project,
+ 'network' => $network,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a service
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $service
+ *
+ * @return string The formatted service resource.
+ */
+ public static function serviceName($project, $location, $service)
+ {
+ return self::getServiceNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'service' => $service,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a subnetwork
+ * resource.
+ *
+ * @param string $project
+ * @param string $region
+ * @param string $subnetwork
+ *
+ * @return string The formatted subnetwork resource.
+ */
+ public static function subnetworkName($project, $region, $subnetwork)
+ {
+ return self::getSubnetworkNameTemplate()->render([
+ 'project' => $project,
+ 'region' => $region,
+ 'subnetwork' => $subnetwork,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - backup: projects/{project}/locations/{location}/services/{service}/backups/{backup}
+ * - location: projects/{project}/locations/{location}
+ * - metadataImport: projects/{project}/locations/{location}/services/{service}/metadataImports/{metadata_import}
+ * - network: projects/{project}/global/networks/{network}
+ * - service: projects/{project}/locations/{location}/services/{service}
+ * - subnetwork: projects/{project}/regions/{region}/subnetworks/{subnetwork}
+ *
+ * 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($formattedName, $template = null)
+ {
+ $templateMap = self::getPathTemplateMap();
+ if ($template) {
+ if (!isset($templateMap[$template])) {
+ throw new ValidationException("Template name $template does not exist");
+ }
+
+ return $templateMap[$template]->match($formattedName);
+ }
+
+ foreach ($templateMap as $templateName => $pathTemplate) {
+ try {
+ return $pathTemplate->match($formattedName);
+ } catch (ValidationException $ex) {
+ // Swallow the exception to continue trying other path templates
+ }
+ }
+
+ throw new ValidationException("Input did not match any known format. Input: $formattedName");
+ }
+
+ /**
+ * 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;
+ }
+
+ /**
+ * 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 'metastore.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
+ */
+ public function __construct(array $options = [])
+ {
+ $clientOptions = $this->buildClientOptions($options);
+ $this->setClientOptions($clientOptions);
+ $this->operationsClient = $this->createOperationsClient($clientOptions);
+ }
+
+ /**
+ * Creates a new backup in a given project and location.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedParent = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $backupId = 'backup_id';
+ * $backup = new Backup();
+ * $operationResponse = $dataprocMetastoreClient->createBackup($formattedParent, $backupId, $backup);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->createBackup($formattedParent, $backupId, $backup);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'createBackup');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The relative resource name of the service in which to create a
+ * backup of the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * @param string $backupId Required. The ID of the backup, which is used as the final component of the
+ * backup's name.
+ *
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ * @param Backup $backup Required. The backup to create. The `name` field is ignored. The ID of the
+ * created backup must be provided in the request's `backup_id` field.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function createBackup($parent, $backupId, $backup, array $optionalArgs = [])
+ {
+ $request = new CreateBackupRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setBackupId($backupId);
+ $request->setBackup($backup);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('CreateBackup', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Creates a new MetadataImport in a given project and location.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedParent = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $metadataImportId = 'metadata_import_id';
+ * $metadataImport = new MetadataImport();
+ * $operationResponse = $dataprocMetastoreClient->createMetadataImport($formattedParent, $metadataImportId, $metadataImport);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->createMetadataImport($formattedParent, $metadataImportId, $metadataImport);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'createMetadataImport');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The relative resource name of the service in which to create a
+ * metastore import, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * @param string $metadataImportId Required. The ID of the metadata import, which is used as the final
+ * component of the metadata import's name.
+ *
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ * @param MetadataImport $metadataImport Required. The metadata import to create. The `name` field is ignored. The
+ * ID of the created metadata import must be provided in the request's
+ * `metadata_import_id` field.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function createMetadataImport($parent, $metadataImportId, $metadataImport, array $optionalArgs = [])
+ {
+ $request = new CreateMetadataImportRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setMetadataImportId($metadataImportId);
+ $request->setMetadataImport($metadataImport);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('CreateMetadataImport', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Creates a metastore service in a project and location.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedParent = $dataprocMetastoreClient->locationName('[PROJECT]', '[LOCATION]');
+ * $serviceId = 'service_id';
+ * $service = new Service();
+ * $operationResponse = $dataprocMetastoreClient->createService($formattedParent, $serviceId, $service);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->createService($formattedParent, $serviceId, $service);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'createService');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The relative resource name of the location in which to create a
+ * metastore service, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}`.
+ * @param string $serviceId Required. The ID of the metastore service, which is used as the final
+ * component of the metastore service's name.
+ *
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ * @param Service $service Required. The Metastore service to create. The `name` field is
+ * ignored. The ID of the created metastore service must be provided in
+ * the request's `service_id` field.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function createService($parent, $serviceId, $service, array $optionalArgs = [])
+ {
+ $request = new CreateServiceRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setServiceId($serviceId);
+ $request->setService($service);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('CreateService', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Deletes a single backup.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedName = $dataprocMetastoreClient->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ * $operationResponse = $dataprocMetastoreClient->deleteBackup($formattedName);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * // operation succeeded and returns no value
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->deleteBackup($formattedName);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'deleteBackup');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * // operation succeeded and returns no value
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The relative resource name of the backup to delete, in the
+ * following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function deleteBackup($name, array $optionalArgs = [])
+ {
+ $request = new DeleteBackupRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('DeleteBackup', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Deletes a single service.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedName = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $operationResponse = $dataprocMetastoreClient->deleteService($formattedName);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * // operation succeeded and returns no value
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->deleteService($formattedName);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'deleteService');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * // operation succeeded and returns no value
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The relative resource name of the metastore service to delete, in
+ * the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function deleteService($name, array $optionalArgs = [])
+ {
+ $request = new DeleteServiceRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('DeleteService', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Exports metadata from a service.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedService = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $operationResponse = $dataprocMetastoreClient->exportMetadata($formattedService);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->exportMetadata($formattedService);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'exportMetadata');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $service Required. The relative resource name of the metastore service to run
+ * export, in the following form:
+ *
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $destinationGcsFolder
+ * A Cloud Storage URI of a folder, in the format
+ * `gs:///`. A sub-folder
+ * `` containing exported files will be created below it.
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @type int $databaseDumpType
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ * For allowed values, use constants defined on {@see \Google\Cloud\Metastore\V1\DatabaseDumpSpec\Type}
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function exportMetadata($service, array $optionalArgs = [])
+ {
+ $request = new ExportMetadataRequest();
+ $requestParamHeaders = [];
+ $request->setService($service);
+ $requestParamHeaders['service'] = $service;
+ if (isset($optionalArgs['destinationGcsFolder'])) {
+ $request->setDestinationGcsFolder($optionalArgs['destinationGcsFolder']);
+ }
+
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ if (isset($optionalArgs['databaseDumpType'])) {
+ $request->setDatabaseDumpType($optionalArgs['databaseDumpType']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('ExportMetadata', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Gets details of a single backup.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedName = $dataprocMetastoreClient->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ * $response = $dataprocMetastoreClient->getBackup($formattedName);
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The relative resource name of the backup to retrieve, in the
+ * following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Metastore\V1\Backup
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getBackup($name, array $optionalArgs = [])
+ {
+ $request = new GetBackupRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetBackup', Backup::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Gets details of a single import.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedName = $dataprocMetastoreClient->metadataImportName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[METADATA_IMPORT]');
+ * $response = $dataprocMetastoreClient->getMetadataImport($formattedName);
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The relative resource name of the metadata import to retrieve, in
+ * the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{import_id}`.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Metastore\V1\MetadataImport
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getMetadataImport($name, array $optionalArgs = [])
+ {
+ $request = new GetMetadataImportRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetMetadataImport', MetadataImport::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Gets the details of a single service.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedName = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $response = $dataprocMetastoreClient->getService($formattedName);
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The relative resource name of the metastore service to retrieve,
+ * in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Metastore\V1\Service
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getService($name, array $optionalArgs = [])
+ {
+ $request = new GetServiceRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetService', Service::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Lists backups in a service.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedParent = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataprocMetastoreClient->listBackups($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataprocMetastoreClient->listBackups($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The relative resource name of the service whose backups to
+ * list, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @type string $filter
+ * Optional. The filter to apply to list results.
+ * @type string $orderBy
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function listBackups($parent, array $optionalArgs = [])
+ {
+ $request = new ListBackupsRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['orderBy'])) {
+ $request->setOrderBy($optionalArgs['orderBy']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListBackups', $optionalArgs, ListBackupsResponse::class, $request);
+ }
+
+ /**
+ * Lists imports in a service.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedParent = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataprocMetastoreClient->listMetadataImports($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataprocMetastoreClient->listMetadataImports($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The relative resource name of the service whose metadata imports
+ * to list, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @type string $filter
+ * Optional. The filter to apply to list results.
+ * @type string $orderBy
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function listMetadataImports($parent, array $optionalArgs = [])
+ {
+ $request = new ListMetadataImportsRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['orderBy'])) {
+ $request->setOrderBy($optionalArgs['orderBy']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListMetadataImports', $optionalArgs, ListMetadataImportsResponse::class, $request);
+ }
+
+ /**
+ * Lists services in a project and location.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedParent = $dataprocMetastoreClient->locationName('[PROJECT]', '[LOCATION]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataprocMetastoreClient->listServices($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataprocMetastoreClient->listServices($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The relative resource name of the location of metastore services
+ * to list, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @type string $filter
+ * Optional. The filter to apply to list results.
+ * @type string $orderBy
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function listServices($parent, array $optionalArgs = [])
+ {
+ $request = new ListServicesRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['orderBy'])) {
+ $request->setOrderBy($optionalArgs['orderBy']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListServices', $optionalArgs, ListServicesResponse::class, $request);
+ }
+
+ /**
+ * Restores a service from a backup.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedService = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $formattedBackup = $dataprocMetastoreClient->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ * $operationResponse = $dataprocMetastoreClient->restoreService($formattedService, $formattedBackup);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->restoreService($formattedService, $formattedBackup);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'restoreService');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $service Required. The relative resource name of the metastore service to run
+ * restore, in the following form:
+ *
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ * @param string $backup Required. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ *
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $restoreType
+ * Optional. The type of restore. If unspecified, defaults to `METADATA_ONLY`.
+ * For allowed values, use constants defined on {@see \Google\Cloud\Metastore\V1\Restore\RestoreType}
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function restoreService($service, $backup, array $optionalArgs = [])
+ {
+ $request = new RestoreServiceRequest();
+ $requestParamHeaders = [];
+ $request->setService($service);
+ $request->setBackup($backup);
+ $requestParamHeaders['service'] = $service;
+ if (isset($optionalArgs['restoreType'])) {
+ $request->setRestoreType($optionalArgs['restoreType']);
+ }
+
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('RestoreService', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Updates a single import.
+ * Only the description field of MetadataImport is supported to be updated.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $updateMask = new FieldMask();
+ * $metadataImport = new MetadataImport();
+ * $operationResponse = $dataprocMetastoreClient->updateMetadataImport($updateMask, $metadataImport);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->updateMetadataImport($updateMask, $metadataImport);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'updateMetadataImport');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param FieldMask $updateMask Required. A field mask used to specify the fields to be overwritten in the
+ * metadata import resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ * @param MetadataImport $metadataImport Required. The metadata import to update. The server only merges fields
+ * in the import if they are specified in `update_mask`.
+ *
+ * The metadata import's `name` field is used to identify the metastore
+ * import to be updated.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function updateMetadataImport($updateMask, $metadataImport, array $optionalArgs = [])
+ {
+ $request = new UpdateMetadataImportRequest();
+ $requestParamHeaders = [];
+ $request->setUpdateMask($updateMask);
+ $request->setMetadataImport($metadataImport);
+ $requestParamHeaders['metadata_import.name'] = $metadataImport->getName();
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('UpdateMetadataImport', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Updates the parameters of a single service.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $updateMask = new FieldMask();
+ * $service = new Service();
+ * $operationResponse = $dataprocMetastoreClient->updateService($updateMask, $service);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->updateService($updateMask, $service);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'updateService');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param FieldMask $updateMask Required. A field mask used to specify the fields to be overwritten in the
+ * metastore service resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ * @param Service $service Required. The metastore service to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ *
+ * The metastore service's `name` field is used to identify the metastore
+ * service to be updated.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function updateService($updateMask, $service, array $optionalArgs = [])
+ {
+ $request = new UpdateServiceRequest();
+ $requestParamHeaders = [];
+ $request->setUpdateMask($updateMask);
+ $request->setService($service);
+ $requestParamHeaders['service.name'] = $service->getName();
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('UpdateService', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Gets information about a location.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $response = $dataprocMetastoreClient->getLocation();
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $name
+ * Resource name for the location.
+ * @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 \Google\Cloud\Location\Location
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getLocation(array $optionalArgs = [])
+ {
+ $request = new GetLocationRequest();
+ $requestParamHeaders = [];
+ if (isset($optionalArgs['name'])) {
+ $request->setName($optionalArgs['name']);
+ $requestParamHeaders['name'] = $optionalArgs['name'];
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetLocation', Location::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.cloud.location.Locations')->wait();
+ }
+
+ /**
+ * Lists information about the supported locations for this service.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataprocMetastoreClient->listLocations();
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataprocMetastoreClient->listLocations();
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $name
+ * The resource that owns the locations collection, if applicable.
+ * @type string $filter
+ * The standard list filter.
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function listLocations(array $optionalArgs = [])
+ {
+ $request = new ListLocationsRequest();
+ $requestParamHeaders = [];
+ if (isset($optionalArgs['name'])) {
+ $request->setName($optionalArgs['name']);
+ $requestParamHeaders['name'] = $optionalArgs['name'];
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListLocations', $optionalArgs, ListLocationsResponse::class, $request, 'google.cloud.location.Locations');
+ }
+
+ /**
+ * Gets the access control policy for a resource. Returns an empty policy
+ if the resource exists and does not have a policy set.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $resource = 'resource';
+ * $response = $dataprocMetastoreClient->getIamPolicy($resource);
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $resource REQUIRED: The resource for which the policy is being requested.
+ * See the operation documentation for the appropriate value for this field.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type GetPolicyOptions $options
+ * OPTIONAL: A `GetPolicyOptions` object for specifying options to
+ * `GetIamPolicy`.
+ * @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 \Google\Cloud\Iam\V1\Policy
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getIamPolicy($resource, array $optionalArgs = [])
+ {
+ $request = new GetIamPolicyRequest();
+ $requestParamHeaders = [];
+ $request->setResource($resource);
+ $requestParamHeaders['resource'] = $resource;
+ if (isset($optionalArgs['options'])) {
+ $request->setOptions($optionalArgs['options']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetIamPolicy', Policy::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.iam.v1.IAMPolicy')->wait();
+ }
+
+ /**
+ * Sets the access control policy on the specified resource. Replaces
+ any existing policy.
+
+ Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
+ errors.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $resource = 'resource';
+ * $policy = new Policy();
+ * $response = $dataprocMetastoreClient->setIamPolicy($resource, $policy);
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $resource REQUIRED: The resource for which the policy is being specified.
+ * See the operation documentation for the appropriate value for this field.
+ * @param Policy $policy REQUIRED: The complete policy to be applied to the `resource`. The size of
+ * the policy is limited to a few 10s of KB. An empty policy is a
+ * valid policy but certain Cloud Platform services (such as Projects)
+ * might reject them.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type FieldMask $updateMask
+ * OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
+ * the fields in the mask will be modified. If no mask is provided, the
+ * following default mask is used:
+ *
+ * `paths: "bindings, etag"`
+ * @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 \Google\Cloud\Iam\V1\Policy
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function setIamPolicy($resource, $policy, array $optionalArgs = [])
+ {
+ $request = new SetIamPolicyRequest();
+ $requestParamHeaders = [];
+ $request->setResource($resource);
+ $request->setPolicy($policy);
+ $requestParamHeaders['resource'] = $resource;
+ if (isset($optionalArgs['updateMask'])) {
+ $request->setUpdateMask($optionalArgs['updateMask']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('SetIamPolicy', Policy::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.iam.v1.IAMPolicy')->wait();
+ }
+
+ /**
+ * Returns permissions that a caller has on the specified resource. If the
+ resource does not exist, this will return an empty set of
+ permissions, not a `NOT_FOUND` error.
+
+ Note: This operation is designed to be used for building
+ permission-aware UIs and command-line tools, not for authorization
+ checking. This operation may "fail open" without warning.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $resource = 'resource';
+ * $permissions = [];
+ * $response = $dataprocMetastoreClient->testIamPermissions($resource, $permissions);
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $resource REQUIRED: The resource for which the policy detail is being requested.
+ * See the operation documentation for the appropriate value for this field.
+ * @param string[] $permissions The set of permissions to check for the `resource`. Permissions with
+ * wildcards (such as '*' or 'storage.*') are not allowed. For more
+ * information see
+ * [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Iam\V1\TestIamPermissionsResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function testIamPermissions($resource, $permissions, array $optionalArgs = [])
+ {
+ $request = new TestIamPermissionsRequest();
+ $requestParamHeaders = [];
+ $request->setResource($resource);
+ $request->setPermissions($permissions);
+ $requestParamHeaders['resource'] = $resource;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('TestIamPermissions', TestIamPermissionsResponse::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.iam.v1.IAMPolicy')->wait();
+ }
+}
diff --git a/owl-bot-staging/DataprocMetastore/v1/src/V1/gapic_metadata.json b/owl-bot-staging/DataprocMetastore/v1/src/V1/gapic_metadata.json
new file mode 100644
index 000000000000..554fc0dcd321
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/src/V1/gapic_metadata.json
@@ -0,0 +1,177 @@
+{
+ "schema": "1.0",
+ "comment": "This file maps proto services\/RPCs to the corresponding library clients\/methods",
+ "language": "php",
+ "protoPackage": "google.cloud.metastore.v1",
+ "libraryPackage": "Google\\Cloud\\Metastore\\V1",
+ "services": {
+ "DataprocMetastore": {
+ "clients": {
+ "grpc": {
+ "libraryClient": "DataprocMetastoreGapicClient",
+ "rpcs": {
+ "CreateBackup": {
+ "methods": [
+ "createBackup"
+ ]
+ },
+ "CreateMetadataImport": {
+ "methods": [
+ "createMetadataImport"
+ ]
+ },
+ "CreateService": {
+ "methods": [
+ "createService"
+ ]
+ },
+ "DeleteBackup": {
+ "methods": [
+ "deleteBackup"
+ ]
+ },
+ "DeleteService": {
+ "methods": [
+ "deleteService"
+ ]
+ },
+ "ExportMetadata": {
+ "methods": [
+ "exportMetadata"
+ ]
+ },
+ "GetBackup": {
+ "methods": [
+ "getBackup"
+ ]
+ },
+ "GetMetadataImport": {
+ "methods": [
+ "getMetadataImport"
+ ]
+ },
+ "GetService": {
+ "methods": [
+ "getService"
+ ]
+ },
+ "ListBackups": {
+ "methods": [
+ "listBackups"
+ ]
+ },
+ "ListMetadataImports": {
+ "methods": [
+ "listMetadataImports"
+ ]
+ },
+ "ListServices": {
+ "methods": [
+ "listServices"
+ ]
+ },
+ "RestoreService": {
+ "methods": [
+ "restoreService"
+ ]
+ },
+ "UpdateMetadataImport": {
+ "methods": [
+ "updateMetadataImport"
+ ]
+ },
+ "UpdateService": {
+ "methods": [
+ "updateService"
+ ]
+ },
+ "GetLocation": {
+ "methods": [
+ "getLocation"
+ ]
+ },
+ "ListLocations": {
+ "methods": [
+ "listLocations"
+ ]
+ },
+ "GetIamPolicy": {
+ "methods": [
+ "getIamPolicy"
+ ]
+ },
+ "SetIamPolicy": {
+ "methods": [
+ "setIamPolicy"
+ ]
+ },
+ "TestIamPermissions": {
+ "methods": [
+ "testIamPermissions"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "DataprocMetastoreFederation": {
+ "clients": {
+ "grpc": {
+ "libraryClient": "DataprocMetastoreFederationGapicClient",
+ "rpcs": {
+ "CreateFederation": {
+ "methods": [
+ "createFederation"
+ ]
+ },
+ "DeleteFederation": {
+ "methods": [
+ "deleteFederation"
+ ]
+ },
+ "GetFederation": {
+ "methods": [
+ "getFederation"
+ ]
+ },
+ "ListFederations": {
+ "methods": [
+ "listFederations"
+ ]
+ },
+ "UpdateFederation": {
+ "methods": [
+ "updateFederation"
+ ]
+ },
+ "GetLocation": {
+ "methods": [
+ "getLocation"
+ ]
+ },
+ "ListLocations": {
+ "methods": [
+ "listLocations"
+ ]
+ },
+ "GetIamPolicy": {
+ "methods": [
+ "getIamPolicy"
+ ]
+ },
+ "SetIamPolicy": {
+ "methods": [
+ "setIamPolicy"
+ ]
+ },
+ "TestIamPermissions": {
+ "methods": [
+ "testIamPermissions"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/owl-bot-staging/DataprocMetastore/v1/src/V1/resources/dataproc_metastore_client_config.json b/owl-bot-staging/DataprocMetastore/v1/src/V1/resources/dataproc_metastore_client_config.json
new file mode 100644
index 000000000000..7416b10ae3c3
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/src/V1/resources/dataproc_metastore_client_config.json
@@ -0,0 +1,144 @@
+{
+ "interfaces": {
+ "google.cloud.metastore.v1.DataprocMetastore": {
+ "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": {
+ "CreateBackup": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateMetadataImport": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateService": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteBackup": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteService": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ExportMetadata": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetBackup": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetMetadataImport": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetService": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListBackups": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListMetadataImports": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListServices": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "RestoreService": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateMetadataImport": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateService": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetLocation": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListLocations": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetIamPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "SetIamPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "TestIamPermissions": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ }
+ }
+ }
+ }
+}
diff --git a/owl-bot-staging/DataprocMetastore/v1/src/V1/resources/dataproc_metastore_descriptor_config.php b/owl-bot-staging/DataprocMetastore/v1/src/V1/resources/dataproc_metastore_descriptor_config.php
new file mode 100644
index 000000000000..e7782fa07039
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/src/V1/resources/dataproc_metastore_descriptor_config.php
@@ -0,0 +1,358 @@
+ [
+ 'google.cloud.metastore.v1.DataprocMetastore' => [
+ 'CreateBackup' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1\Backup',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateMetadataImport' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1\MetadataImport',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateService' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1\Service',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteBackup' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteService' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ExportMetadata' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1\MetadataExport',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'service',
+ 'fieldAccessors' => [
+ 'getService',
+ ],
+ ],
+ ],
+ ],
+ 'RestoreService' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1\Restore',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'service',
+ 'fieldAccessors' => [
+ 'getService',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateMetadataImport' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1\MetadataImport',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'metadata_import.name',
+ 'fieldAccessors' => [
+ 'getMetadataImport',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateService' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1\Service',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'service.name',
+ 'fieldAccessors' => [
+ 'getService',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetBackup' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Metastore\V1\Backup',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetMetadataImport' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Metastore\V1\MetadataImport',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetService' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Metastore\V1\Service',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListBackups' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getBackups',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Metastore\V1\ListBackupsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListMetadataImports' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getMetadataImports',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Metastore\V1\ListMetadataImportsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListServices' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getServices',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Metastore\V1\ListServicesResponse',
+ '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',
+ ],
+ 'GetIamPolicy' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Iam\V1\Policy',
+ 'headerParams' => [
+ [
+ 'keyName' => 'resource',
+ 'fieldAccessors' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ 'interfaceOverride' => 'google.iam.v1.IAMPolicy',
+ ],
+ 'SetIamPolicy' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Iam\V1\Policy',
+ 'headerParams' => [
+ [
+ 'keyName' => 'resource',
+ 'fieldAccessors' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ 'interfaceOverride' => 'google.iam.v1.IAMPolicy',
+ ],
+ 'TestIamPermissions' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Iam\V1\TestIamPermissionsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'resource',
+ 'fieldAccessors' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ 'interfaceOverride' => 'google.iam.v1.IAMPolicy',
+ ],
+ 'templateMap' => [
+ 'backup' => 'projects/{project}/locations/{location}/services/{service}/backups/{backup}',
+ 'location' => 'projects/{project}/locations/{location}',
+ 'metadataImport' => 'projects/{project}/locations/{location}/services/{service}/metadataImports/{metadata_import}',
+ 'network' => 'projects/{project}/global/networks/{network}',
+ 'service' => 'projects/{project}/locations/{location}/services/{service}',
+ 'subnetwork' => 'projects/{project}/regions/{region}/subnetworks/{subnetwork}',
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/DataprocMetastore/v1/src/V1/resources/dataproc_metastore_federation_client_config.json b/owl-bot-staging/DataprocMetastore/v1/src/V1/resources/dataproc_metastore_federation_client_config.json
new file mode 100644
index 000000000000..ffae7827578f
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/src/V1/resources/dataproc_metastore_federation_client_config.json
@@ -0,0 +1,72 @@
+{
+ "interfaces": {
+ "google.cloud.metastore.v1.DataprocMetastoreFederation": {
+ "retry_codes": {
+ "no_retry_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
+ }
+ },
+ "methods": {
+ "CreateFederation": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "DeleteFederation": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "GetFederation": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "ListFederations": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "UpdateFederation": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_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"
+ },
+ "GetIamPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "SetIamPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "TestIamPermissions": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ }
+ }
+ }
+ }
+}
diff --git a/owl-bot-staging/DataprocMetastore/v1/src/V1/resources/dataproc_metastore_federation_descriptor_config.php b/owl-bot-staging/DataprocMetastore/v1/src/V1/resources/dataproc_metastore_federation_descriptor_config.php
new file mode 100644
index 000000000000..5ec02fe35edb
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/src/V1/resources/dataproc_metastore_federation_descriptor_config.php
@@ -0,0 +1,175 @@
+ [
+ 'google.cloud.metastore.v1.DataprocMetastoreFederation' => [
+ 'CreateFederation' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1\Federation',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteFederation' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateFederation' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1\Federation',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'federation.name',
+ 'fieldAccessors' => [
+ 'getFederation',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetFederation' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Metastore\V1\Federation',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListFederations' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getFederations',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Metastore\V1\ListFederationsResponse',
+ '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',
+ ],
+ 'GetIamPolicy' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Iam\V1\Policy',
+ 'headerParams' => [
+ [
+ 'keyName' => 'resource',
+ 'fieldAccessors' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ 'interfaceOverride' => 'google.iam.v1.IAMPolicy',
+ ],
+ 'SetIamPolicy' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Iam\V1\Policy',
+ 'headerParams' => [
+ [
+ 'keyName' => 'resource',
+ 'fieldAccessors' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ 'interfaceOverride' => 'google.iam.v1.IAMPolicy',
+ ],
+ 'TestIamPermissions' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Iam\V1\TestIamPermissionsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'resource',
+ 'fieldAccessors' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ 'interfaceOverride' => 'google.iam.v1.IAMPolicy',
+ ],
+ 'templateMap' => [
+ 'federation' => 'projects/{project}/locations/{location}/federations/{federation}',
+ 'location' => 'projects/{project}/locations/{location}',
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/DataprocMetastore/v1/src/V1/resources/dataproc_metastore_federation_rest_client_config.php b/owl-bot-staging/DataprocMetastore/v1/src/V1/resources/dataproc_metastore_federation_rest_client_config.php
new file mode 100644
index 000000000000..d0d2069126b3
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/src/V1/resources/dataproc_metastore_federation_rest_client_config.php
@@ -0,0 +1,210 @@
+ [
+ '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.metastore.v1.DataprocMetastoreFederation' => [
+ 'CreateFederation' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/federations',
+ 'body' => 'federation',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'federation_id',
+ ],
+ ],
+ 'DeleteFederation' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/federations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetFederation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/federations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListFederations' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/federations',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateFederation' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{federation.name=projects/*/locations/*/federations/*}',
+ 'body' => 'federation',
+ 'placeholders' => [
+ 'federation.name' => [
+ 'getters' => [
+ 'getFederation',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ ],
+ 'google.iam.v1.IAMPolicy' => [
+ 'GetIamPolicy' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/services/*}:getIamPolicy',
+ 'additionalBindings' => [
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/services/*/backups/*}:getIamPolicy',
+ ],
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/federations/*}:getIamPolicy',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'SetIamPolicy' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/services/*}:setIamPolicy',
+ 'body' => '*',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/services/*/backups/*}:setIamPolicy',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/federations/*}:setIamPolicy',
+ 'body' => '*',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'TestIamPermissions' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/services/*}:testIamPermissions',
+ 'body' => '*',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/federations/*}:testIamPermissions',
+ 'body' => '*',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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/DataprocMetastore/v1/src/V1/resources/dataproc_metastore_rest_client_config.php b/owl-bot-staging/DataprocMetastore/v1/src/V1/resources/dataproc_metastore_rest_client_config.php
new file mode 100644
index 000000000000..267f7ae7af9b
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/src/V1/resources/dataproc_metastore_rest_client_config.php
@@ -0,0 +1,335 @@
+ [
+ '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.metastore.v1.DataprocMetastore' => [
+ 'CreateBackup' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/services/*}/backups',
+ 'body' => 'backup',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'backup_id',
+ ],
+ ],
+ 'CreateMetadataImport' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/services/*}/metadataImports',
+ 'body' => 'metadata_import',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'metadata_import_id',
+ ],
+ ],
+ 'CreateService' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/services',
+ 'body' => 'service',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'service_id',
+ ],
+ ],
+ 'DeleteBackup' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/services/*/backups/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteService' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/services/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ExportMetadata' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{service=projects/*/locations/*/services/*}:exportMetadata',
+ 'body' => '*',
+ 'placeholders' => [
+ 'service' => [
+ 'getters' => [
+ 'getService',
+ ],
+ ],
+ ],
+ ],
+ 'GetBackup' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/services/*/backups/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetMetadataImport' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/services/*/metadataImports/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetService' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/services/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListBackups' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/services/*}/backups',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListMetadataImports' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/services/*}/metadataImports',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListServices' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/services',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'RestoreService' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{service=projects/*/locations/*/services/*}:restore',
+ 'body' => '*',
+ 'placeholders' => [
+ 'service' => [
+ 'getters' => [
+ 'getService',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateMetadataImport' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{metadata_import.name=projects/*/locations/*/services/*/metadataImports/*}',
+ 'body' => 'metadata_import',
+ 'placeholders' => [
+ 'metadata_import.name' => [
+ 'getters' => [
+ 'getMetadataImport',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ 'UpdateService' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{service.name=projects/*/locations/*/services/*}',
+ 'body' => 'service',
+ 'placeholders' => [
+ 'service.name' => [
+ 'getters' => [
+ 'getService',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ ],
+ 'google.iam.v1.IAMPolicy' => [
+ 'GetIamPolicy' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/services/*}:getIamPolicy',
+ 'additionalBindings' => [
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/services/*/backups/*}:getIamPolicy',
+ ],
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/federations/*}:getIamPolicy',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'SetIamPolicy' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/services/*}:setIamPolicy',
+ 'body' => '*',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/services/*/backups/*}:setIamPolicy',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/federations/*}:setIamPolicy',
+ 'body' => '*',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'TestIamPermissions' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/services/*}:testIamPermissions',
+ 'body' => '*',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/federations/*}:testIamPermissions',
+ 'body' => '*',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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/DataprocMetastore/v1/tests/Unit/V1/Client/DataprocMetastoreClientTest.php b/owl-bot-staging/DataprocMetastore/v1/tests/Unit/V1/Client/DataprocMetastoreClientTest.php
new file mode 100644
index 000000000000..dda9f44cd452
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/tests/Unit/V1/Client/DataprocMetastoreClientTest.php
@@ -0,0 +1,2117 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return DataprocMetastoreClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new DataprocMetastoreClient($options);
+ }
+
+ /** @test */
+ public function createBackupTest()
+ {
+ $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/createBackupTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $description = 'description-1724546052';
+ $expectedResponse = new Backup();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDescription($description);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createBackupTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $backupId = 'backupId1355353272';
+ $backup = new Backup();
+ $request = (new CreateBackupRequest())
+ ->setParent($formattedParent)
+ ->setBackupId($backupId)
+ ->setBackup($backup);
+ $response = $gapicClient->createBackup($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.metastore.v1.DataprocMetastore/CreateBackup', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getBackupId();
+ $this->assertProtobufEquals($backupId, $actualValue);
+ $actualValue = $actualApiRequestObject->getBackup();
+ $this->assertProtobufEquals($backup, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createBackupTest');
+ $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 createBackupExceptionTest()
+ {
+ $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/createBackupTest');
+ $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->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $backupId = 'backupId1355353272';
+ $backup = new Backup();
+ $request = (new CreateBackupRequest())
+ ->setParent($formattedParent)
+ ->setBackupId($backupId)
+ ->setBackup($backup);
+ $response = $gapicClient->createBackup($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createBackupTest');
+ 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 createMetadataImportTest()
+ {
+ $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/createMetadataImportTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $description = 'description-1724546052';
+ $expectedResponse = new MetadataImport();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDescription($description);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createMetadataImportTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $metadataImportId = 'metadataImportId-476076315';
+ $metadataImport = new MetadataImport();
+ $request = (new CreateMetadataImportRequest())
+ ->setParent($formattedParent)
+ ->setMetadataImportId($metadataImportId)
+ ->setMetadataImport($metadataImport);
+ $response = $gapicClient->createMetadataImport($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.metastore.v1.DataprocMetastore/CreateMetadataImport', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getMetadataImportId();
+ $this->assertProtobufEquals($metadataImportId, $actualValue);
+ $actualValue = $actualApiRequestObject->getMetadataImport();
+ $this->assertProtobufEquals($metadataImport, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createMetadataImportTest');
+ $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 createMetadataImportExceptionTest()
+ {
+ $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/createMetadataImportTest');
+ $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->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $metadataImportId = 'metadataImportId-476076315';
+ $metadataImport = new MetadataImport();
+ $request = (new CreateMetadataImportRequest())
+ ->setParent($formattedParent)
+ ->setMetadataImportId($metadataImportId)
+ ->setMetadataImport($metadataImport);
+ $response = $gapicClient->createMetadataImport($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createMetadataImportTest');
+ 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 createServiceTest()
+ {
+ $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/createServiceTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $network = 'network1843485230';
+ $endpointUri = 'endpointUri-850313278';
+ $port = 3446913;
+ $stateMessage = 'stateMessage29641305';
+ $artifactGcsUri = 'artifactGcsUri1337121495';
+ $uid = 'uid115792';
+ $expectedResponse = new Service();
+ $expectedResponse->setName($name);
+ $expectedResponse->setNetwork($network);
+ $expectedResponse->setEndpointUri($endpointUri);
+ $expectedResponse->setPort($port);
+ $expectedResponse->setStateMessage($stateMessage);
+ $expectedResponse->setArtifactGcsUri($artifactGcsUri);
+ $expectedResponse->setUid($uid);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createServiceTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $serviceId = 'serviceId-1724763419';
+ $service = new Service();
+ $request = (new CreateServiceRequest())
+ ->setParent($formattedParent)
+ ->setServiceId($serviceId)
+ ->setService($service);
+ $response = $gapicClient->createService($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.metastore.v1.DataprocMetastore/CreateService', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getServiceId();
+ $this->assertProtobufEquals($serviceId, $actualValue);
+ $actualValue = $actualApiRequestObject->getService();
+ $this->assertProtobufEquals($service, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createServiceTest');
+ $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 createServiceExceptionTest()
+ {
+ $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/createServiceTest');
+ $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]');
+ $serviceId = 'serviceId-1724763419';
+ $service = new Service();
+ $request = (new CreateServiceRequest())
+ ->setParent($formattedParent)
+ ->setServiceId($serviceId)
+ ->setService($service);
+ $response = $gapicClient->createService($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createServiceTest');
+ 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 deleteBackupTest()
+ {
+ $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/deleteBackupTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteBackupTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ $request = (new DeleteBackupRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteBackup($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.metastore.v1.DataprocMetastore/DeleteBackup', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteBackupTest');
+ $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 deleteBackupExceptionTest()
+ {
+ $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/deleteBackupTest');
+ $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->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ $request = (new DeleteBackupRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteBackup($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteBackupTest');
+ 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 deleteServiceTest()
+ {
+ $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/deleteServiceTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteServiceTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $request = (new DeleteServiceRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteService($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.metastore.v1.DataprocMetastore/DeleteService', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteServiceTest');
+ $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 deleteServiceExceptionTest()
+ {
+ $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/deleteServiceTest');
+ $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->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $request = (new DeleteServiceRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteService($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteServiceTest');
+ 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 exportMetadataTest()
+ {
+ $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/exportMetadataTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $destinationGcsUri = 'destinationGcsUri1386421523';
+ $expectedResponse = new MetadataExport();
+ $expectedResponse->setDestinationGcsUri($destinationGcsUri);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/exportMetadataTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $request = (new ExportMetadataRequest())
+ ->setService($formattedService);
+ $response = $gapicClient->exportMetadata($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.metastore.v1.DataprocMetastore/ExportMetadata', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getService();
+ $this->assertProtobufEquals($formattedService, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/exportMetadataTest');
+ $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 exportMetadataExceptionTest()
+ {
+ $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/exportMetadataTest');
+ $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
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $request = (new ExportMetadataRequest())
+ ->setService($formattedService);
+ $response = $gapicClient->exportMetadata($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/exportMetadataTest');
+ 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 getBackupTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $description = 'description-1724546052';
+ $expectedResponse = new Backup();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ $request = (new GetBackupRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getBackup($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.metastore.v1.DataprocMetastore/GetBackup', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getBackupExceptionTest()
+ {
+ $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->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ $request = (new GetBackupRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getBackup($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 getMetadataImportTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $description = 'description-1724546052';
+ $expectedResponse = new MetadataImport();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->metadataImportName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[METADATA_IMPORT]');
+ $request = (new GetMetadataImportRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getMetadataImport($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.metastore.v1.DataprocMetastore/GetMetadataImport', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getMetadataImportExceptionTest()
+ {
+ $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->metadataImportName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[METADATA_IMPORT]');
+ $request = (new GetMetadataImportRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getMetadataImport($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 getServiceTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $network = 'network1843485230';
+ $endpointUri = 'endpointUri-850313278';
+ $port = 3446913;
+ $stateMessage = 'stateMessage29641305';
+ $artifactGcsUri = 'artifactGcsUri1337121495';
+ $uid = 'uid115792';
+ $expectedResponse = new Service();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setNetwork($network);
+ $expectedResponse->setEndpointUri($endpointUri);
+ $expectedResponse->setPort($port);
+ $expectedResponse->setStateMessage($stateMessage);
+ $expectedResponse->setArtifactGcsUri($artifactGcsUri);
+ $expectedResponse->setUid($uid);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $request = (new GetServiceRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getService($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.metastore.v1.DataprocMetastore/GetService', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getServiceExceptionTest()
+ {
+ $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->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $request = (new GetServiceRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getService($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 listBackupsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $backupsElement = new Backup();
+ $backups = [
+ $backupsElement,
+ ];
+ $expectedResponse = new ListBackupsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setBackups($backups);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $request = (new ListBackupsRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listBackups($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getBackups()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1.DataprocMetastore/ListBackups', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listBackupsExceptionTest()
+ {
+ $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->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $request = (new ListBackupsRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listBackups($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 listMetadataImportsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $metadataImportsElement = new MetadataImport();
+ $metadataImports = [
+ $metadataImportsElement,
+ ];
+ $expectedResponse = new ListMetadataImportsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setMetadataImports($metadataImports);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $request = (new ListMetadataImportsRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listMetadataImports($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getMetadataImports()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1.DataprocMetastore/ListMetadataImports', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listMetadataImportsExceptionTest()
+ {
+ $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->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $request = (new ListMetadataImportsRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listMetadataImports($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 listServicesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $servicesElement = new Service();
+ $services = [
+ $servicesElement,
+ ];
+ $expectedResponse = new ListServicesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setServices($services);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListServicesRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listServices($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getServices()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1.DataprocMetastore/ListServices', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listServicesExceptionTest()
+ {
+ $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 ListServicesRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listServices($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 restoreServiceTest()
+ {
+ $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/restoreServiceTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $backup2 = 'backup22121930997';
+ $details = 'details1557721666';
+ $expectedResponse = new Restore();
+ $expectedResponse->setBackup($backup2);
+ $expectedResponse->setDetails($details);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/restoreServiceTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $formattedBackup = $gapicClient->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ $request = (new RestoreServiceRequest())
+ ->setService($formattedService)
+ ->setBackup($formattedBackup);
+ $response = $gapicClient->restoreService($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.metastore.v1.DataprocMetastore/RestoreService', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getService();
+ $this->assertProtobufEquals($formattedService, $actualValue);
+ $actualValue = $actualApiRequestObject->getBackup();
+ $this->assertProtobufEquals($formattedBackup, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/restoreServiceTest');
+ $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 restoreServiceExceptionTest()
+ {
+ $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/restoreServiceTest');
+ $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
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $formattedBackup = $gapicClient->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ $request = (new RestoreServiceRequest())
+ ->setService($formattedService)
+ ->setBackup($formattedBackup);
+ $response = $gapicClient->restoreService($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/restoreServiceTest');
+ 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 updateMetadataImportTest()
+ {
+ $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/updateMetadataImportTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $description = 'description-1724546052';
+ $expectedResponse = new MetadataImport();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDescription($description);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateMetadataImportTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $updateMask = new FieldMask();
+ $metadataImport = new MetadataImport();
+ $request = (new UpdateMetadataImportRequest())
+ ->setUpdateMask($updateMask)
+ ->setMetadataImport($metadataImport);
+ $response = $gapicClient->updateMetadataImport($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.metastore.v1.DataprocMetastore/UpdateMetadataImport', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualApiRequestObject->getMetadataImport();
+ $this->assertProtobufEquals($metadataImport, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateMetadataImportTest');
+ $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 updateMetadataImportExceptionTest()
+ {
+ $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/updateMetadataImportTest');
+ $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();
+ $metadataImport = new MetadataImport();
+ $request = (new UpdateMetadataImportRequest())
+ ->setUpdateMask($updateMask)
+ ->setMetadataImport($metadataImport);
+ $response = $gapicClient->updateMetadataImport($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateMetadataImportTest');
+ 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 updateServiceTest()
+ {
+ $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/updateServiceTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $network = 'network1843485230';
+ $endpointUri = 'endpointUri-850313278';
+ $port = 3446913;
+ $stateMessage = 'stateMessage29641305';
+ $artifactGcsUri = 'artifactGcsUri1337121495';
+ $uid = 'uid115792';
+ $expectedResponse = new Service();
+ $expectedResponse->setName($name);
+ $expectedResponse->setNetwork($network);
+ $expectedResponse->setEndpointUri($endpointUri);
+ $expectedResponse->setPort($port);
+ $expectedResponse->setStateMessage($stateMessage);
+ $expectedResponse->setArtifactGcsUri($artifactGcsUri);
+ $expectedResponse->setUid($uid);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateServiceTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $updateMask = new FieldMask();
+ $service = new Service();
+ $request = (new UpdateServiceRequest())
+ ->setUpdateMask($updateMask)
+ ->setService($service);
+ $response = $gapicClient->updateService($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.metastore.v1.DataprocMetastore/UpdateService', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualApiRequestObject->getService();
+ $this->assertProtobufEquals($service, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateServiceTest');
+ $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 updateServiceExceptionTest()
+ {
+ $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/updateServiceTest');
+ $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();
+ $service = new Service();
+ $request = (new UpdateServiceRequest())
+ ->setUpdateMask($updateMask)
+ ->setService($service);
+ $response = $gapicClient->updateService($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateServiceTest');
+ 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 getIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $version = 351608024;
+ $etag = '21';
+ $expectedResponse = new Policy();
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $request = (new GetIamPolicyRequest())
+ ->setResource($resource);
+ $response = $gapicClient->getIamPolicy($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/GetIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getIamPolicyExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ $request = (new GetIamPolicyRequest())
+ ->setResource($resource);
+ try {
+ $gapicClient->getIamPolicy($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 setIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $version = 351608024;
+ $etag = '21';
+ $expectedResponse = new Policy();
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $policy = new Policy();
+ $request = (new SetIamPolicyRequest())
+ ->setResource($resource)
+ ->setPolicy($policy);
+ $response = $gapicClient->setIamPolicy($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/SetIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $actualValue = $actualRequestObject->getPolicy();
+ $this->assertProtobufEquals($policy, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function setIamPolicyExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ $policy = new Policy();
+ $request = (new SetIamPolicyRequest())
+ ->setResource($resource)
+ ->setPolicy($policy);
+ try {
+ $gapicClient->setIamPolicy($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 testIamPermissionsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new TestIamPermissionsResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $permissions = [];
+ $request = (new TestIamPermissionsRequest())
+ ->setResource($resource)
+ ->setPermissions($permissions);
+ $response = $gapicClient->testIamPermissions($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/TestIamPermissions', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $actualValue = $actualRequestObject->getPermissions();
+ $this->assertProtobufEquals($permissions, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function testIamPermissionsExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ $permissions = [];
+ $request = (new TestIamPermissionsRequest())
+ ->setResource($resource)
+ ->setPermissions($permissions);
+ try {
+ $gapicClient->testIamPermissions($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 createBackupAsyncTest()
+ {
+ $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/createBackupTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $description = 'description-1724546052';
+ $expectedResponse = new Backup();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDescription($description);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createBackupTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $backupId = 'backupId1355353272';
+ $backup = new Backup();
+ $request = (new CreateBackupRequest())
+ ->setParent($formattedParent)
+ ->setBackupId($backupId)
+ ->setBackup($backup);
+ $response = $gapicClient->createBackupAsync($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.metastore.v1.DataprocMetastore/CreateBackup', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getBackupId();
+ $this->assertProtobufEquals($backupId, $actualValue);
+ $actualValue = $actualApiRequestObject->getBackup();
+ $this->assertProtobufEquals($backup, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createBackupTest');
+ $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/DataprocMetastore/v1/tests/Unit/V1/Client/DataprocMetastoreFederationClientTest.php b/owl-bot-staging/DataprocMetastore/v1/tests/Unit/V1/Client/DataprocMetastoreFederationClientTest.php
new file mode 100644
index 000000000000..0c81a2c672e1
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/tests/Unit/V1/Client/DataprocMetastoreFederationClientTest.php
@@ -0,0 +1,1039 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return DataprocMetastoreFederationClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new DataprocMetastoreFederationClient($options);
+ }
+
+ /** @test */
+ public function createFederationTest()
+ {
+ $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/createFederationTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $version = 'version351608024';
+ $endpointUri = 'endpointUri-850313278';
+ $stateMessage = 'stateMessage29641305';
+ $uid = 'uid115792';
+ $expectedResponse = new Federation();
+ $expectedResponse->setName($name);
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEndpointUri($endpointUri);
+ $expectedResponse->setStateMessage($stateMessage);
+ $expectedResponse->setUid($uid);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createFederationTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $federationId = 'federationId-1338699881';
+ $federation = new Federation();
+ $request = (new CreateFederationRequest())
+ ->setParent($formattedParent)
+ ->setFederationId($federationId)
+ ->setFederation($federation);
+ $response = $gapicClient->createFederation($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.metastore.v1.DataprocMetastoreFederation/CreateFederation', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getFederationId();
+ $this->assertProtobufEquals($federationId, $actualValue);
+ $actualValue = $actualApiRequestObject->getFederation();
+ $this->assertProtobufEquals($federation, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createFederationTest');
+ $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 createFederationExceptionTest()
+ {
+ $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/createFederationTest');
+ $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]');
+ $federationId = 'federationId-1338699881';
+ $federation = new Federation();
+ $request = (new CreateFederationRequest())
+ ->setParent($formattedParent)
+ ->setFederationId($federationId)
+ ->setFederation($federation);
+ $response = $gapicClient->createFederation($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createFederationTest');
+ 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 deleteFederationTest()
+ {
+ $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/deleteFederationTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteFederationTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->federationName('[PROJECT]', '[LOCATION]', '[FEDERATION]');
+ $request = (new DeleteFederationRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteFederation($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.metastore.v1.DataprocMetastoreFederation/DeleteFederation', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteFederationTest');
+ $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 deleteFederationExceptionTest()
+ {
+ $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/deleteFederationTest');
+ $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->federationName('[PROJECT]', '[LOCATION]', '[FEDERATION]');
+ $request = (new DeleteFederationRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteFederation($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteFederationTest');
+ 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 getFederationTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $version = 'version351608024';
+ $endpointUri = 'endpointUri-850313278';
+ $stateMessage = 'stateMessage29641305';
+ $uid = 'uid115792';
+ $expectedResponse = new Federation();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEndpointUri($endpointUri);
+ $expectedResponse->setStateMessage($stateMessage);
+ $expectedResponse->setUid($uid);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->federationName('[PROJECT]', '[LOCATION]', '[FEDERATION]');
+ $request = (new GetFederationRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getFederation($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.metastore.v1.DataprocMetastoreFederation/GetFederation', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getFederationExceptionTest()
+ {
+ $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->federationName('[PROJECT]', '[LOCATION]', '[FEDERATION]');
+ $request = (new GetFederationRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getFederation($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 listFederationsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $federationsElement = new Federation();
+ $federations = [
+ $federationsElement,
+ ];
+ $expectedResponse = new ListFederationsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setFederations($federations);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListFederationsRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listFederations($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getFederations()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1.DataprocMetastoreFederation/ListFederations', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listFederationsExceptionTest()
+ {
+ $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 ListFederationsRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listFederations($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 updateFederationTest()
+ {
+ $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/updateFederationTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $version = 'version351608024';
+ $endpointUri = 'endpointUri-850313278';
+ $stateMessage = 'stateMessage29641305';
+ $uid = 'uid115792';
+ $expectedResponse = new Federation();
+ $expectedResponse->setName($name);
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEndpointUri($endpointUri);
+ $expectedResponse->setStateMessage($stateMessage);
+ $expectedResponse->setUid($uid);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateFederationTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $updateMask = new FieldMask();
+ $federation = new Federation();
+ $request = (new UpdateFederationRequest())
+ ->setUpdateMask($updateMask)
+ ->setFederation($federation);
+ $response = $gapicClient->updateFederation($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.metastore.v1.DataprocMetastoreFederation/UpdateFederation', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualApiRequestObject->getFederation();
+ $this->assertProtobufEquals($federation, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateFederationTest');
+ $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 updateFederationExceptionTest()
+ {
+ $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/updateFederationTest');
+ $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();
+ $federation = new Federation();
+ $request = (new UpdateFederationRequest())
+ ->setUpdateMask($updateMask)
+ ->setFederation($federation);
+ $response = $gapicClient->updateFederation($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateFederationTest');
+ 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 getIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $version = 351608024;
+ $etag = '21';
+ $expectedResponse = new Policy();
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $request = (new GetIamPolicyRequest())
+ ->setResource($resource);
+ $response = $gapicClient->getIamPolicy($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/GetIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getIamPolicyExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ $request = (new GetIamPolicyRequest())
+ ->setResource($resource);
+ try {
+ $gapicClient->getIamPolicy($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 setIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $version = 351608024;
+ $etag = '21';
+ $expectedResponse = new Policy();
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $policy = new Policy();
+ $request = (new SetIamPolicyRequest())
+ ->setResource($resource)
+ ->setPolicy($policy);
+ $response = $gapicClient->setIamPolicy($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/SetIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $actualValue = $actualRequestObject->getPolicy();
+ $this->assertProtobufEquals($policy, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function setIamPolicyExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ $policy = new Policy();
+ $request = (new SetIamPolicyRequest())
+ ->setResource($resource)
+ ->setPolicy($policy);
+ try {
+ $gapicClient->setIamPolicy($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 testIamPermissionsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new TestIamPermissionsResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $permissions = [];
+ $request = (new TestIamPermissionsRequest())
+ ->setResource($resource)
+ ->setPermissions($permissions);
+ $response = $gapicClient->testIamPermissions($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/TestIamPermissions', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $actualValue = $actualRequestObject->getPermissions();
+ $this->assertProtobufEquals($permissions, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function testIamPermissionsExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ $permissions = [];
+ $request = (new TestIamPermissionsRequest())
+ ->setResource($resource)
+ ->setPermissions($permissions);
+ try {
+ $gapicClient->testIamPermissions($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 createFederationAsyncTest()
+ {
+ $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/createFederationTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $version = 'version351608024';
+ $endpointUri = 'endpointUri-850313278';
+ $stateMessage = 'stateMessage29641305';
+ $uid = 'uid115792';
+ $expectedResponse = new Federation();
+ $expectedResponse->setName($name);
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEndpointUri($endpointUri);
+ $expectedResponse->setStateMessage($stateMessage);
+ $expectedResponse->setUid($uid);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createFederationTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $federationId = 'federationId-1338699881';
+ $federation = new Federation();
+ $request = (new CreateFederationRequest())
+ ->setParent($formattedParent)
+ ->setFederationId($federationId)
+ ->setFederation($federation);
+ $response = $gapicClient->createFederationAsync($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.metastore.v1.DataprocMetastoreFederation/CreateFederation', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getFederationId();
+ $this->assertProtobufEquals($federationId, $actualValue);
+ $actualValue = $actualApiRequestObject->getFederation();
+ $this->assertProtobufEquals($federation, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createFederationTest');
+ $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/DataprocMetastore/v1/tests/Unit/V1/DataprocMetastoreClientTest.php b/owl-bot-staging/DataprocMetastore/v1/tests/Unit/V1/DataprocMetastoreClientTest.php
new file mode 100644
index 000000000000..4cd2136c33ae
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/tests/Unit/V1/DataprocMetastoreClientTest.php
@@ -0,0 +1,1923 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return DataprocMetastoreClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new DataprocMetastoreClient($options);
+ }
+
+ /** @test */
+ public function createBackupTest()
+ {
+ $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/createBackupTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $description = 'description-1724546052';
+ $expectedResponse = new Backup();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDescription($description);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createBackupTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $backupId = 'backupId1355353272';
+ $backup = new Backup();
+ $response = $gapicClient->createBackup($formattedParent, $backupId, $backup);
+ $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.metastore.v1.DataprocMetastore/CreateBackup', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getBackupId();
+ $this->assertProtobufEquals($backupId, $actualValue);
+ $actualValue = $actualApiRequestObject->getBackup();
+ $this->assertProtobufEquals($backup, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createBackupTest');
+ $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 createBackupExceptionTest()
+ {
+ $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/createBackupTest');
+ $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->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $backupId = 'backupId1355353272';
+ $backup = new Backup();
+ $response = $gapicClient->createBackup($formattedParent, $backupId, $backup);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createBackupTest');
+ 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 createMetadataImportTest()
+ {
+ $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/createMetadataImportTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $description = 'description-1724546052';
+ $expectedResponse = new MetadataImport();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDescription($description);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createMetadataImportTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $metadataImportId = 'metadataImportId-476076315';
+ $metadataImport = new MetadataImport();
+ $response = $gapicClient->createMetadataImport($formattedParent, $metadataImportId, $metadataImport);
+ $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.metastore.v1.DataprocMetastore/CreateMetadataImport', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getMetadataImportId();
+ $this->assertProtobufEquals($metadataImportId, $actualValue);
+ $actualValue = $actualApiRequestObject->getMetadataImport();
+ $this->assertProtobufEquals($metadataImport, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createMetadataImportTest');
+ $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 createMetadataImportExceptionTest()
+ {
+ $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/createMetadataImportTest');
+ $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->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $metadataImportId = 'metadataImportId-476076315';
+ $metadataImport = new MetadataImport();
+ $response = $gapicClient->createMetadataImport($formattedParent, $metadataImportId, $metadataImport);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createMetadataImportTest');
+ 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 createServiceTest()
+ {
+ $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/createServiceTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $network = 'network1843485230';
+ $endpointUri = 'endpointUri-850313278';
+ $port = 3446913;
+ $stateMessage = 'stateMessage29641305';
+ $artifactGcsUri = 'artifactGcsUri1337121495';
+ $uid = 'uid115792';
+ $expectedResponse = new Service();
+ $expectedResponse->setName($name);
+ $expectedResponse->setNetwork($network);
+ $expectedResponse->setEndpointUri($endpointUri);
+ $expectedResponse->setPort($port);
+ $expectedResponse->setStateMessage($stateMessage);
+ $expectedResponse->setArtifactGcsUri($artifactGcsUri);
+ $expectedResponse->setUid($uid);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createServiceTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $serviceId = 'serviceId-1724763419';
+ $service = new Service();
+ $response = $gapicClient->createService($formattedParent, $serviceId, $service);
+ $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.metastore.v1.DataprocMetastore/CreateService', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getServiceId();
+ $this->assertProtobufEquals($serviceId, $actualValue);
+ $actualValue = $actualApiRequestObject->getService();
+ $this->assertProtobufEquals($service, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createServiceTest');
+ $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 createServiceExceptionTest()
+ {
+ $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/createServiceTest');
+ $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]');
+ $serviceId = 'serviceId-1724763419';
+ $service = new Service();
+ $response = $gapicClient->createService($formattedParent, $serviceId, $service);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createServiceTest');
+ 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 deleteBackupTest()
+ {
+ $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/deleteBackupTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteBackupTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ $response = $gapicClient->deleteBackup($formattedName);
+ $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.metastore.v1.DataprocMetastore/DeleteBackup', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteBackupTest');
+ $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 deleteBackupExceptionTest()
+ {
+ $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/deleteBackupTest');
+ $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->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ $response = $gapicClient->deleteBackup($formattedName);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteBackupTest');
+ 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 deleteServiceTest()
+ {
+ $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/deleteServiceTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteServiceTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $response = $gapicClient->deleteService($formattedName);
+ $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.metastore.v1.DataprocMetastore/DeleteService', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteServiceTest');
+ $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 deleteServiceExceptionTest()
+ {
+ $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/deleteServiceTest');
+ $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->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $response = $gapicClient->deleteService($formattedName);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteServiceTest');
+ 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 exportMetadataTest()
+ {
+ $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/exportMetadataTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $destinationGcsUri = 'destinationGcsUri1386421523';
+ $expectedResponse = new MetadataExport();
+ $expectedResponse->setDestinationGcsUri($destinationGcsUri);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/exportMetadataTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $response = $gapicClient->exportMetadata($formattedService);
+ $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.metastore.v1.DataprocMetastore/ExportMetadata', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getService();
+ $this->assertProtobufEquals($formattedService, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/exportMetadataTest');
+ $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 exportMetadataExceptionTest()
+ {
+ $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/exportMetadataTest');
+ $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
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $response = $gapicClient->exportMetadata($formattedService);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/exportMetadataTest');
+ 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 getBackupTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $description = 'description-1724546052';
+ $expectedResponse = new Backup();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ $response = $gapicClient->getBackup($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1.DataprocMetastore/GetBackup', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getBackupExceptionTest()
+ {
+ $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->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ try {
+ $gapicClient->getBackup($formattedName);
+ // 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 getMetadataImportTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $description = 'description-1724546052';
+ $expectedResponse = new MetadataImport();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->metadataImportName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[METADATA_IMPORT]');
+ $response = $gapicClient->getMetadataImport($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1.DataprocMetastore/GetMetadataImport', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getMetadataImportExceptionTest()
+ {
+ $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->metadataImportName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[METADATA_IMPORT]');
+ try {
+ $gapicClient->getMetadataImport($formattedName);
+ // 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 getServiceTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $network = 'network1843485230';
+ $endpointUri = 'endpointUri-850313278';
+ $port = 3446913;
+ $stateMessage = 'stateMessage29641305';
+ $artifactGcsUri = 'artifactGcsUri1337121495';
+ $uid = 'uid115792';
+ $expectedResponse = new Service();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setNetwork($network);
+ $expectedResponse->setEndpointUri($endpointUri);
+ $expectedResponse->setPort($port);
+ $expectedResponse->setStateMessage($stateMessage);
+ $expectedResponse->setArtifactGcsUri($artifactGcsUri);
+ $expectedResponse->setUid($uid);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $response = $gapicClient->getService($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1.DataprocMetastore/GetService', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getServiceExceptionTest()
+ {
+ $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->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ try {
+ $gapicClient->getService($formattedName);
+ // 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 listBackupsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $backupsElement = new Backup();
+ $backups = [
+ $backupsElement,
+ ];
+ $expectedResponse = new ListBackupsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setBackups($backups);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $response = $gapicClient->listBackups($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getBackups()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1.DataprocMetastore/ListBackups', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listBackupsExceptionTest()
+ {
+ $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->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ try {
+ $gapicClient->listBackups($formattedParent);
+ // 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 listMetadataImportsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $metadataImportsElement = new MetadataImport();
+ $metadataImports = [
+ $metadataImportsElement,
+ ];
+ $expectedResponse = new ListMetadataImportsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setMetadataImports($metadataImports);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $response = $gapicClient->listMetadataImports($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getMetadataImports()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1.DataprocMetastore/ListMetadataImports', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listMetadataImportsExceptionTest()
+ {
+ $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->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ try {
+ $gapicClient->listMetadataImports($formattedParent);
+ // 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 listServicesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $servicesElement = new Service();
+ $services = [
+ $servicesElement,
+ ];
+ $expectedResponse = new ListServicesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setServices($services);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $response = $gapicClient->listServices($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getServices()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1.DataprocMetastore/ListServices', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listServicesExceptionTest()
+ {
+ $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]');
+ try {
+ $gapicClient->listServices($formattedParent);
+ // 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 restoreServiceTest()
+ {
+ $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/restoreServiceTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $backup2 = 'backup22121930997';
+ $details = 'details1557721666';
+ $expectedResponse = new Restore();
+ $expectedResponse->setBackup($backup2);
+ $expectedResponse->setDetails($details);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/restoreServiceTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $formattedBackup = $gapicClient->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ $response = $gapicClient->restoreService($formattedService, $formattedBackup);
+ $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.metastore.v1.DataprocMetastore/RestoreService', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getService();
+ $this->assertProtobufEquals($formattedService, $actualValue);
+ $actualValue = $actualApiRequestObject->getBackup();
+ $this->assertProtobufEquals($formattedBackup, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/restoreServiceTest');
+ $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 restoreServiceExceptionTest()
+ {
+ $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/restoreServiceTest');
+ $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
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $formattedBackup = $gapicClient->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ $response = $gapicClient->restoreService($formattedService, $formattedBackup);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/restoreServiceTest');
+ 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 updateMetadataImportTest()
+ {
+ $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/updateMetadataImportTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $description = 'description-1724546052';
+ $expectedResponse = new MetadataImport();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDescription($description);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateMetadataImportTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $updateMask = new FieldMask();
+ $metadataImport = new MetadataImport();
+ $response = $gapicClient->updateMetadataImport($updateMask, $metadataImport);
+ $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.metastore.v1.DataprocMetastore/UpdateMetadataImport', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualApiRequestObject->getMetadataImport();
+ $this->assertProtobufEquals($metadataImport, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateMetadataImportTest');
+ $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 updateMetadataImportExceptionTest()
+ {
+ $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/updateMetadataImportTest');
+ $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();
+ $metadataImport = new MetadataImport();
+ $response = $gapicClient->updateMetadataImport($updateMask, $metadataImport);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateMetadataImportTest');
+ 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 updateServiceTest()
+ {
+ $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/updateServiceTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $network = 'network1843485230';
+ $endpointUri = 'endpointUri-850313278';
+ $port = 3446913;
+ $stateMessage = 'stateMessage29641305';
+ $artifactGcsUri = 'artifactGcsUri1337121495';
+ $uid = 'uid115792';
+ $expectedResponse = new Service();
+ $expectedResponse->setName($name);
+ $expectedResponse->setNetwork($network);
+ $expectedResponse->setEndpointUri($endpointUri);
+ $expectedResponse->setPort($port);
+ $expectedResponse->setStateMessage($stateMessage);
+ $expectedResponse->setArtifactGcsUri($artifactGcsUri);
+ $expectedResponse->setUid($uid);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateServiceTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $updateMask = new FieldMask();
+ $service = new Service();
+ $response = $gapicClient->updateService($updateMask, $service);
+ $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.metastore.v1.DataprocMetastore/UpdateService', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualApiRequestObject->getService();
+ $this->assertProtobufEquals($service, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateServiceTest');
+ $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 updateServiceExceptionTest()
+ {
+ $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/updateServiceTest');
+ $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();
+ $service = new Service();
+ $response = $gapicClient->updateService($updateMask, $service);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateServiceTest');
+ 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);
+ $response = $gapicClient->getLocation();
+ $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);
+ try {
+ $gapicClient->getLocation();
+ // 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);
+ $response = $gapicClient->listLocations();
+ $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);
+ try {
+ $gapicClient->listLocations();
+ // 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 getIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $version = 351608024;
+ $etag = '21';
+ $expectedResponse = new Policy();
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $response = $gapicClient->getIamPolicy($resource);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/GetIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getIamPolicyExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ try {
+ $gapicClient->getIamPolicy($resource);
+ // 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 setIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $version = 351608024;
+ $etag = '21';
+ $expectedResponse = new Policy();
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $policy = new Policy();
+ $response = $gapicClient->setIamPolicy($resource, $policy);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/SetIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $actualValue = $actualRequestObject->getPolicy();
+ $this->assertProtobufEquals($policy, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function setIamPolicyExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ $policy = new Policy();
+ try {
+ $gapicClient->setIamPolicy($resource, $policy);
+ // 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 testIamPermissionsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new TestIamPermissionsResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $permissions = [];
+ $response = $gapicClient->testIamPermissions($resource, $permissions);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/TestIamPermissions', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $actualValue = $actualRequestObject->getPermissions();
+ $this->assertProtobufEquals($permissions, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function testIamPermissionsExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ $permissions = [];
+ try {
+ $gapicClient->testIamPermissions($resource, $permissions);
+ // 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());
+ }
+}
diff --git a/owl-bot-staging/DataprocMetastore/v1/tests/Unit/V1/DataprocMetastoreFederationClientTest.php b/owl-bot-staging/DataprocMetastore/v1/tests/Unit/V1/DataprocMetastoreFederationClientTest.php
new file mode 100644
index 000000000000..d8bb345b463c
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1/tests/Unit/V1/DataprocMetastoreFederationClientTest.php
@@ -0,0 +1,901 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return DataprocMetastoreFederationClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new DataprocMetastoreFederationClient($options);
+ }
+
+ /** @test */
+ public function createFederationTest()
+ {
+ $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/createFederationTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $version = 'version351608024';
+ $endpointUri = 'endpointUri-850313278';
+ $stateMessage = 'stateMessage29641305';
+ $uid = 'uid115792';
+ $expectedResponse = new Federation();
+ $expectedResponse->setName($name);
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEndpointUri($endpointUri);
+ $expectedResponse->setStateMessage($stateMessage);
+ $expectedResponse->setUid($uid);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createFederationTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $federationId = 'federationId-1338699881';
+ $federation = new Federation();
+ $response = $gapicClient->createFederation($formattedParent, $federationId, $federation);
+ $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.metastore.v1.DataprocMetastoreFederation/CreateFederation', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getFederationId();
+ $this->assertProtobufEquals($federationId, $actualValue);
+ $actualValue = $actualApiRequestObject->getFederation();
+ $this->assertProtobufEquals($federation, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createFederationTest');
+ $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 createFederationExceptionTest()
+ {
+ $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/createFederationTest');
+ $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]');
+ $federationId = 'federationId-1338699881';
+ $federation = new Federation();
+ $response = $gapicClient->createFederation($formattedParent, $federationId, $federation);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createFederationTest');
+ 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 deleteFederationTest()
+ {
+ $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/deleteFederationTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteFederationTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->federationName('[PROJECT]', '[LOCATION]', '[FEDERATION]');
+ $response = $gapicClient->deleteFederation($formattedName);
+ $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.metastore.v1.DataprocMetastoreFederation/DeleteFederation', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteFederationTest');
+ $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 deleteFederationExceptionTest()
+ {
+ $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/deleteFederationTest');
+ $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->federationName('[PROJECT]', '[LOCATION]', '[FEDERATION]');
+ $response = $gapicClient->deleteFederation($formattedName);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteFederationTest');
+ 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 getFederationTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $version = 'version351608024';
+ $endpointUri = 'endpointUri-850313278';
+ $stateMessage = 'stateMessage29641305';
+ $uid = 'uid115792';
+ $expectedResponse = new Federation();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEndpointUri($endpointUri);
+ $expectedResponse->setStateMessage($stateMessage);
+ $expectedResponse->setUid($uid);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->federationName('[PROJECT]', '[LOCATION]', '[FEDERATION]');
+ $response = $gapicClient->getFederation($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1.DataprocMetastoreFederation/GetFederation', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getFederationExceptionTest()
+ {
+ $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->federationName('[PROJECT]', '[LOCATION]', '[FEDERATION]');
+ try {
+ $gapicClient->getFederation($formattedName);
+ // 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 listFederationsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $federationsElement = new Federation();
+ $federations = [
+ $federationsElement,
+ ];
+ $expectedResponse = new ListFederationsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setFederations($federations);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $response = $gapicClient->listFederations($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getFederations()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1.DataprocMetastoreFederation/ListFederations', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listFederationsExceptionTest()
+ {
+ $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]');
+ try {
+ $gapicClient->listFederations($formattedParent);
+ // 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 updateFederationTest()
+ {
+ $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/updateFederationTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $version = 'version351608024';
+ $endpointUri = 'endpointUri-850313278';
+ $stateMessage = 'stateMessage29641305';
+ $uid = 'uid115792';
+ $expectedResponse = new Federation();
+ $expectedResponse->setName($name);
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEndpointUri($endpointUri);
+ $expectedResponse->setStateMessage($stateMessage);
+ $expectedResponse->setUid($uid);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateFederationTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $updateMask = new FieldMask();
+ $federation = new Federation();
+ $response = $gapicClient->updateFederation($updateMask, $federation);
+ $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.metastore.v1.DataprocMetastoreFederation/UpdateFederation', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualApiRequestObject->getFederation();
+ $this->assertProtobufEquals($federation, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateFederationTest');
+ $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 updateFederationExceptionTest()
+ {
+ $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/updateFederationTest');
+ $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();
+ $federation = new Federation();
+ $response = $gapicClient->updateFederation($updateMask, $federation);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateFederationTest');
+ 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);
+ $response = $gapicClient->getLocation();
+ $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);
+ try {
+ $gapicClient->getLocation();
+ // 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);
+ $response = $gapicClient->listLocations();
+ $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);
+ try {
+ $gapicClient->listLocations();
+ // 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 getIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $version = 351608024;
+ $etag = '21';
+ $expectedResponse = new Policy();
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $response = $gapicClient->getIamPolicy($resource);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/GetIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getIamPolicyExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ try {
+ $gapicClient->getIamPolicy($resource);
+ // 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 setIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $version = 351608024;
+ $etag = '21';
+ $expectedResponse = new Policy();
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $policy = new Policy();
+ $response = $gapicClient->setIamPolicy($resource, $policy);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/SetIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $actualValue = $actualRequestObject->getPolicy();
+ $this->assertProtobufEquals($policy, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function setIamPolicyExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ $policy = new Policy();
+ try {
+ $gapicClient->setIamPolicy($resource, $policy);
+ // 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 testIamPermissionsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new TestIamPermissionsResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $permissions = [];
+ $response = $gapicClient->testIamPermissions($resource, $permissions);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/TestIamPermissions', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $actualValue = $actualRequestObject->getPermissions();
+ $this->assertProtobufEquals($permissions, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function testIamPermissionsExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ $permissions = [];
+ try {
+ $gapicClient->testIamPermissions($resource, $permissions);
+ // 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());
+ }
+}
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/GPBMetadata/Google/Cloud/Metastore/V1Alpha/Metastore.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/GPBMetadata/Google/Cloud/Metastore/V1Alpha/Metastore.php
new file mode 100644
index 000000000000..8dfc3043af00
Binary files /dev/null and b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/GPBMetadata/Google/Cloud/Metastore/V1Alpha/Metastore.php differ
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/GPBMetadata/Google/Cloud/Metastore/V1Alpha/MetastoreFederation.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/GPBMetadata/Google/Cloud/Metastore/V1Alpha/MetastoreFederation.php
new file mode 100644
index 000000000000..0cdc4d04c3c0
Binary files /dev/null and b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/GPBMetadata/Google/Cloud/Metastore/V1Alpha/MetastoreFederation.php differ
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/AlterMetadataResourceLocationRequest.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/AlterMetadataResourceLocationRequest.php
new file mode 100644
index 000000000000..31a4013d3717
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/AlterMetadataResourceLocationRequest.php
@@ -0,0 +1,164 @@
+google.cloud.metastore.v1alpha.AlterMetadataResourceLocationRequest
+ */
+class AlterMetadataResourceLocationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metastore service to mutate
+ * metadata, in the following format:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $service = '';
+ /**
+ * Required. The relative metadata resource name in the following format.
+ * `databases/{database_id}`
+ * or
+ * `databases/{database_id}/tables/{table_id}`
+ * or
+ * `databases/{database_id}/tables/{table_id}/partitions/{partition_id}`
+ *
+ * Generated from protobuf field string resource_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $resource_name = '';
+ /**
+ * Required. The new location URI for the metadata resource.
+ *
+ * Generated from protobuf field string location_uri = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $location_uri = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $service
+ * Required. The relative resource name of the metastore service to mutate
+ * metadata, in the following format:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ * @type string $resource_name
+ * Required. The relative metadata resource name in the following format.
+ * `databases/{database_id}`
+ * or
+ * `databases/{database_id}/tables/{table_id}`
+ * or
+ * `databases/{database_id}/tables/{table_id}/partitions/{partition_id}`
+ * @type string $location_uri
+ * Required. The new location URI for the metadata resource.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to mutate
+ * metadata, in the following format:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to mutate
+ * metadata, in the following format:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The relative metadata resource name in the following format.
+ * `databases/{database_id}`
+ * or
+ * `databases/{database_id}/tables/{table_id}`
+ * or
+ * `databases/{database_id}/tables/{table_id}/partitions/{partition_id}`
+ *
+ * Generated from protobuf field string resource_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getResourceName()
+ {
+ return $this->resource_name;
+ }
+
+ /**
+ * Required. The relative metadata resource name in the following format.
+ * `databases/{database_id}`
+ * or
+ * `databases/{database_id}/tables/{table_id}`
+ * or
+ * `databases/{database_id}/tables/{table_id}/partitions/{partition_id}`
+ *
+ * Generated from protobuf field string resource_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setResourceName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->resource_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The new location URI for the metadata resource.
+ *
+ * Generated from protobuf field string location_uri = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getLocationUri()
+ {
+ return $this->location_uri;
+ }
+
+ /**
+ * Required. The new location URI for the metadata resource.
+ *
+ * Generated from protobuf field string location_uri = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setLocationUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->location_uri = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/AlterMetadataResourceLocationResponse.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/AlterMetadataResourceLocationResponse.php
new file mode 100644
index 000000000000..3ee73fba1b82
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/AlterMetadataResourceLocationResponse.php
@@ -0,0 +1,34 @@
+google.cloud.metastore.v1alpha.AlterMetadataResourceLocationResponse
+ */
+class AlterMetadataResourceLocationResponse extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/AuxiliaryVersionConfig.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/AuxiliaryVersionConfig.php
new file mode 100644
index 000000000000..2e500e1c4c1c
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/AuxiliaryVersionConfig.php
@@ -0,0 +1,169 @@
+google.cloud.metastore.v1alpha.AuxiliaryVersionConfig
+ */
+class AuxiliaryVersionConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The Hive metastore version of the auxiliary service. It must be less
+ * than the primary Hive metastore service's version.
+ *
+ * Generated from protobuf field string version = 1;
+ */
+ protected $version = '';
+ /**
+ * A mapping of Hive metastore configuration key-value pairs to apply to the
+ * auxiliary Hive metastore (configured in `hive-site.xml`) in addition to
+ * the primary version's overrides. If keys are present in both the auxiliary
+ * version's overrides and the primary version's overrides, the value from
+ * the auxiliary version's overrides takes precedence.
+ *
+ * Generated from protobuf field map config_overrides = 2;
+ */
+ private $config_overrides;
+ /**
+ * Output only. The network configuration contains the endpoint URI(s) of the
+ * auxiliary Hive metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.NetworkConfig network_config = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $network_config = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $version
+ * The Hive metastore version of the auxiliary service. It must be less
+ * than the primary Hive metastore service's version.
+ * @type array|\Google\Protobuf\Internal\MapField $config_overrides
+ * A mapping of Hive metastore configuration key-value pairs to apply to the
+ * auxiliary Hive metastore (configured in `hive-site.xml`) in addition to
+ * the primary version's overrides. If keys are present in both the auxiliary
+ * version's overrides and the primary version's overrides, the value from
+ * the auxiliary version's overrides takes precedence.
+ * @type \Google\Cloud\Metastore\V1alpha\NetworkConfig $network_config
+ * Output only. The network configuration contains the endpoint URI(s) of the
+ * auxiliary Hive metastore service.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The Hive metastore version of the auxiliary service. It must be less
+ * than the primary Hive metastore service's version.
+ *
+ * Generated from protobuf field string version = 1;
+ * @return string
+ */
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ /**
+ * The Hive metastore version of the auxiliary service. It must be less
+ * than the primary Hive metastore service's version.
+ *
+ * Generated from protobuf field string version = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->version = $var;
+
+ return $this;
+ }
+
+ /**
+ * A mapping of Hive metastore configuration key-value pairs to apply to the
+ * auxiliary Hive metastore (configured in `hive-site.xml`) in addition to
+ * the primary version's overrides. If keys are present in both the auxiliary
+ * version's overrides and the primary version's overrides, the value from
+ * the auxiliary version's overrides takes precedence.
+ *
+ * Generated from protobuf field map config_overrides = 2;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getConfigOverrides()
+ {
+ return $this->config_overrides;
+ }
+
+ /**
+ * A mapping of Hive metastore configuration key-value pairs to apply to the
+ * auxiliary Hive metastore (configured in `hive-site.xml`) in addition to
+ * the primary version's overrides. If keys are present in both the auxiliary
+ * version's overrides and the primary version's overrides, the value from
+ * the auxiliary version's overrides takes precedence.
+ *
+ * Generated from protobuf field map config_overrides = 2;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setConfigOverrides($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->config_overrides = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The network configuration contains the endpoint URI(s) of the
+ * auxiliary Hive metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.NetworkConfig network_config = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Metastore\V1alpha\NetworkConfig|null
+ */
+ public function getNetworkConfig()
+ {
+ return $this->network_config;
+ }
+
+ public function hasNetworkConfig()
+ {
+ return isset($this->network_config);
+ }
+
+ public function clearNetworkConfig()
+ {
+ unset($this->network_config);
+ }
+
+ /**
+ * Output only. The network configuration contains the endpoint URI(s) of the
+ * auxiliary Hive metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.NetworkConfig network_config = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Metastore\V1alpha\NetworkConfig $var
+ * @return $this
+ */
+ public function setNetworkConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1alpha\NetworkConfig::class);
+ $this->network_config = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/BackendMetastore.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/BackendMetastore.php
new file mode 100644
index 000000000000..18e9b6dc1e3b
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/BackendMetastore.php
@@ -0,0 +1,125 @@
+google.cloud.metastore.v1alpha.BackendMetastore
+ */
+class BackendMetastore extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The relative resource name of the metastore that is being federated.
+ * The formats of the relative resource names for the currently supported
+ * metastores are listed below:
+ * * BigQuery
+ * * `projects/{project_id}`
+ * * Dataproc Metastore
+ * * `projects/{project_id}/locations/{location}/services/{service_id}`
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * The type of the backend metastore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.BackendMetastore.MetastoreType metastore_type = 2;
+ */
+ protected $metastore_type = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The relative resource name of the metastore that is being federated.
+ * The formats of the relative resource names for the currently supported
+ * metastores are listed below:
+ * * BigQuery
+ * * `projects/{project_id}`
+ * * Dataproc Metastore
+ * * `projects/{project_id}/locations/{location}/services/{service_id}`
+ * @type int $metastore_type
+ * The type of the backend metastore.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\MetastoreFederation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The relative resource name of the metastore that is being federated.
+ * The formats of the relative resource names for the currently supported
+ * metastores are listed below:
+ * * BigQuery
+ * * `projects/{project_id}`
+ * * Dataproc Metastore
+ * * `projects/{project_id}/locations/{location}/services/{service_id}`
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The relative resource name of the metastore that is being federated.
+ * The formats of the relative resource names for the currently supported
+ * metastores are listed below:
+ * * BigQuery
+ * * `projects/{project_id}`
+ * * Dataproc Metastore
+ * * `projects/{project_id}/locations/{location}/services/{service_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;
+ }
+
+ /**
+ * The type of the backend metastore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.BackendMetastore.MetastoreType metastore_type = 2;
+ * @return int
+ */
+ public function getMetastoreType()
+ {
+ return $this->metastore_type;
+ }
+
+ /**
+ * The type of the backend metastore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.BackendMetastore.MetastoreType metastore_type = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setMetastoreType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1alpha\BackendMetastore\MetastoreType::class);
+ $this->metastore_type = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/BackendMetastore/MetastoreType.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/BackendMetastore/MetastoreType.php
new file mode 100644
index 000000000000..1c3e2acf3e60
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/BackendMetastore/MetastoreType.php
@@ -0,0 +1,71 @@
+google.cloud.metastore.v1alpha.BackendMetastore.MetastoreType
+ */
+class MetastoreType
+{
+ /**
+ * The metastore type is not set.
+ *
+ * Generated from protobuf enum METASTORE_TYPE_UNSPECIFIED = 0;
+ */
+ const METASTORE_TYPE_UNSPECIFIED = 0;
+ /**
+ * The backend metastore is Dataplex.
+ *
+ * Generated from protobuf enum DATAPLEX = 1;
+ */
+ const DATAPLEX = 1;
+ /**
+ * The backend metastore is BigQuery.
+ *
+ * Generated from protobuf enum BIGQUERY = 2;
+ */
+ const BIGQUERY = 2;
+ /**
+ * The backend metastore is Dataproc Metastore.
+ *
+ * Generated from protobuf enum DATAPROC_METASTORE = 3;
+ */
+ const DATAPROC_METASTORE = 3;
+
+ private static $valueToName = [
+ self::METASTORE_TYPE_UNSPECIFIED => 'METASTORE_TYPE_UNSPECIFIED',
+ self::DATAPLEX => 'DATAPLEX',
+ self::BIGQUERY => 'BIGQUERY',
+ self::DATAPROC_METASTORE => 'DATAPROC_METASTORE',
+ ];
+
+ 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(MetastoreType::class, \Google\Cloud\Metastore\V1alpha\BackendMetastore_MetastoreType::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/BackendMetastore_MetastoreType.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/BackendMetastore_MetastoreType.php
new file mode 100644
index 000000000000..37e16ceea031
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/BackendMetastore_MetastoreType.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1alpha.Backup
+ */
+class Backup extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Immutable. The relative resource name of the backup, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $name = '';
+ /**
+ * Output only. The time when the backup was started.
+ *
+ * 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 backup finished creating.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $end_time = null;
+ /**
+ * Output only. The current state of the backup.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Backup.State state = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. The revision of the service at the time of backup.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Service service_revision = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $service_revision = null;
+ /**
+ * The description of the backup.
+ *
+ * Generated from protobuf field string description = 6;
+ */
+ protected $description = '';
+ /**
+ * Output only. Services that are restoring from the backup.
+ *
+ * Generated from protobuf field repeated string restoring_services = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $restoring_services;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Immutable. The relative resource name of the backup, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time when the backup was started.
+ * @type \Google\Protobuf\Timestamp $end_time
+ * Output only. The time when the backup finished creating.
+ * @type int $state
+ * Output only. The current state of the backup.
+ * @type \Google\Cloud\Metastore\V1alpha\Service $service_revision
+ * Output only. The revision of the service at the time of backup.
+ * @type string $description
+ * The description of the backup.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $restoring_services
+ * Output only. Services that are restoring from the backup.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Immutable. The relative resource name of the backup, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Immutable. The relative resource name of the backup, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the backup was started.
+ *
+ * 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 backup was started.
+ *
+ * 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 backup finished creating.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 3 [(.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 when the backup finished creating.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 3 [(.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 current state of the backup.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Backup.State state = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The current state of the backup.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Backup.State state = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1alpha\Backup\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The revision of the service at the time of backup.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Service service_revision = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Metastore\V1alpha\Service|null
+ */
+ public function getServiceRevision()
+ {
+ return $this->service_revision;
+ }
+
+ public function hasServiceRevision()
+ {
+ return isset($this->service_revision);
+ }
+
+ public function clearServiceRevision()
+ {
+ unset($this->service_revision);
+ }
+
+ /**
+ * Output only. The revision of the service at the time of backup.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Service service_revision = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Metastore\V1alpha\Service $var
+ * @return $this
+ */
+ public function setServiceRevision($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1alpha\Service::class);
+ $this->service_revision = $var;
+
+ return $this;
+ }
+
+ /**
+ * The description of the backup.
+ *
+ * Generated from protobuf field string description = 6;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * The description of the backup.
+ *
+ * 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;
+ }
+
+ /**
+ * Output only. Services that are restoring from the backup.
+ *
+ * Generated from protobuf field repeated string restoring_services = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRestoringServices()
+ {
+ return $this->restoring_services;
+ }
+
+ /**
+ * Output only. Services that are restoring from the backup.
+ *
+ * Generated from protobuf field repeated string restoring_services = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRestoringServices($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->restoring_services = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Backup/State.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Backup/State.php
new file mode 100644
index 000000000000..d5770f420c45
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Backup/State.php
@@ -0,0 +1,85 @@
+google.cloud.metastore.v1alpha.Backup.State
+ */
+class State
+{
+ /**
+ * The state of the backup is unknown.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The backup is being created.
+ *
+ * Generated from protobuf enum CREATING = 1;
+ */
+ const CREATING = 1;
+ /**
+ * The backup is being deleted.
+ *
+ * Generated from protobuf enum DELETING = 2;
+ */
+ const DELETING = 2;
+ /**
+ * The backup is active and ready to use.
+ *
+ * Generated from protobuf enum ACTIVE = 3;
+ */
+ const ACTIVE = 3;
+ /**
+ * The backup failed.
+ *
+ * Generated from protobuf enum FAILED = 4;
+ */
+ const FAILED = 4;
+ /**
+ * The backup is being restored.
+ *
+ * Generated from protobuf enum RESTORING = 5;
+ */
+ const RESTORING = 5;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::CREATING => 'CREATING',
+ self::DELETING => 'DELETING',
+ self::ACTIVE => 'ACTIVE',
+ self::FAILED => 'FAILED',
+ self::RESTORING => 'RESTORING',
+ ];
+
+ 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\Metastore\V1alpha\Backup_State::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Backup_State.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Backup_State.php
new file mode 100644
index 000000000000..4299936d4609
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Backup_State.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1alpha.CreateBackupRequest
+ */
+class CreateBackupRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the service in which to create a
+ * backup of the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The ID of the backup, which is used as the final component of the
+ * backup's name.
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ *
+ * Generated from protobuf field string backup_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $backup_id = '';
+ /**
+ * Required. The backup to create. The `name` field is ignored. The ID of the
+ * created backup must be provided in the request's `backup_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Backup backup = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $backup = null;
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The relative resource name of the service in which to create a
+ * backup of the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * @type string $backup_id
+ * Required. The ID of the backup, which is used as the final component of the
+ * backup's name.
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ * @type \Google\Cloud\Metastore\V1alpha\Backup $backup
+ * Required. The backup to create. The `name` field is ignored. The ID of the
+ * created backup must be provided in the request's `backup_id` field.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the service in which to create a
+ * backup of the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * 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 relative resource name of the service in which to create a
+ * backup of the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * 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 backup, which is used as the final component of the
+ * backup's name.
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ *
+ * Generated from protobuf field string backup_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getBackupId()
+ {
+ return $this->backup_id;
+ }
+
+ /**
+ * Required. The ID of the backup, which is used as the final component of the
+ * backup's name.
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ *
+ * Generated from protobuf field string backup_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setBackupId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->backup_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The backup to create. The `name` field is ignored. The ID of the
+ * created backup must be provided in the request's `backup_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Backup backup = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Metastore\V1alpha\Backup|null
+ */
+ public function getBackup()
+ {
+ return $this->backup;
+ }
+
+ public function hasBackup()
+ {
+ return isset($this->backup);
+ }
+
+ public function clearBackup()
+ {
+ unset($this->backup);
+ }
+
+ /**
+ * Required. The backup to create. The `name` field is ignored. The ID of the
+ * created backup must be provided in the request's `backup_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Backup backup = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Metastore\V1alpha\Backup $var
+ * @return $this
+ */
+ public function setBackup($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1alpha\Backup::class);
+ $this->backup = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/CreateFederationRequest.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/CreateFederationRequest.php
new file mode 100644
index 000000000000..f7ae924fc43b
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/CreateFederationRequest.php
@@ -0,0 +1,247 @@
+google.cloud.metastore.v1alpha.CreateFederationRequest
+ */
+class CreateFederationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the location in which to create a
+ * federation service, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The ID of the metastore federation, which is used as the final
+ * component of the metastore federation's name.
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ *
+ * Generated from protobuf field string federation_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $federation_id = '';
+ /**
+ * Required. The Metastore Federation to create. The `name` field is
+ * ignored. The ID of the created metastore federation must be
+ * provided in the request's `federation_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Federation federation = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $federation = null;
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The relative resource name of the location in which to create a
+ * federation service, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ * @type string $federation_id
+ * Required. The ID of the metastore federation, which is used as the final
+ * component of the metastore federation's name.
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ * @type \Google\Cloud\Metastore\V1alpha\Federation $federation
+ * Required. The Metastore Federation to create. The `name` field is
+ * ignored. The ID of the created metastore federation must be
+ * provided in the request's `federation_id` field.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\MetastoreFederation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the location in which to create a
+ * federation service, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * 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 relative resource name of the location in which to create a
+ * federation service, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * 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 metastore federation, which is used as the final
+ * component of the metastore federation's name.
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ *
+ * Generated from protobuf field string federation_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getFederationId()
+ {
+ return $this->federation_id;
+ }
+
+ /**
+ * Required. The ID of the metastore federation, which is used as the final
+ * component of the metastore federation's name.
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ *
+ * Generated from protobuf field string federation_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setFederationId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->federation_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The Metastore Federation to create. The `name` field is
+ * ignored. The ID of the created metastore federation must be
+ * provided in the request's `federation_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Federation federation = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Metastore\V1alpha\Federation|null
+ */
+ public function getFederation()
+ {
+ return $this->federation;
+ }
+
+ public function hasFederation()
+ {
+ return isset($this->federation);
+ }
+
+ public function clearFederation()
+ {
+ unset($this->federation);
+ }
+
+ /**
+ * Required. The Metastore Federation to create. The `name` field is
+ * ignored. The ID of the created metastore federation must be
+ * provided in the request's `federation_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Federation federation = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Metastore\V1alpha\Federation $var
+ * @return $this
+ */
+ public function setFederation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1alpha\Federation::class);
+ $this->federation = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/CreateMetadataImportRequest.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/CreateMetadataImportRequest.php
new file mode 100644
index 000000000000..2b1815d47c92
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/CreateMetadataImportRequest.php
@@ -0,0 +1,248 @@
+google.cloud.metastore.v1alpha.CreateMetadataImportRequest
+ */
+class CreateMetadataImportRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the service in which to create a
+ * metastore import, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The ID of the metadata import, which is used as the final
+ * component of the metadata import's name.
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ *
+ * Generated from protobuf field string metadata_import_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $metadata_import_id = '';
+ /**
+ * Required. The metadata import to create. The `name` field is ignored. The
+ * ID of the created metadata import must be provided in the request's
+ * `metadata_import_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.MetadataImport metadata_import = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $metadata_import = null;
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The relative resource name of the service in which to create a
+ * metastore import, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * @type string $metadata_import_id
+ * Required. The ID of the metadata import, which is used as the final
+ * component of the metadata import's name.
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ * @type \Google\Cloud\Metastore\V1alpha\MetadataImport $metadata_import
+ * Required. The metadata import to create. The `name` field is ignored. The
+ * ID of the created metadata import must be provided in the request's
+ * `metadata_import_id` field.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the service in which to create a
+ * metastore import, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * 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 relative resource name of the service in which to create a
+ * metastore import, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * 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 metadata import, which is used as the final
+ * component of the metadata import's name.
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ *
+ * Generated from protobuf field string metadata_import_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getMetadataImportId()
+ {
+ return $this->metadata_import_id;
+ }
+
+ /**
+ * Required. The ID of the metadata import, which is used as the final
+ * component of the metadata import's name.
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ *
+ * Generated from protobuf field string metadata_import_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setMetadataImportId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->metadata_import_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The metadata import to create. The `name` field is ignored. The
+ * ID of the created metadata import must be provided in the request's
+ * `metadata_import_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.MetadataImport metadata_import = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Metastore\V1alpha\MetadataImport|null
+ */
+ public function getMetadataImport()
+ {
+ return $this->metadata_import;
+ }
+
+ public function hasMetadataImport()
+ {
+ return isset($this->metadata_import);
+ }
+
+ public function clearMetadataImport()
+ {
+ unset($this->metadata_import);
+ }
+
+ /**
+ * Required. The metadata import to create. The `name` field is ignored. The
+ * ID of the created metadata import must be provided in the request's
+ * `metadata_import_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.MetadataImport metadata_import = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Metastore\V1alpha\MetadataImport $var
+ * @return $this
+ */
+ public function setMetadataImport($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1alpha\MetadataImport::class);
+ $this->metadata_import = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/CreateServiceRequest.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/CreateServiceRequest.php
new file mode 100644
index 000000000000..de8438d87a9e
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/CreateServiceRequest.php
@@ -0,0 +1,248 @@
+google.cloud.metastore.v1alpha.CreateServiceRequest
+ */
+class CreateServiceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the location in which to create a
+ * metastore service, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The ID of the metastore service, which is used as the final
+ * component of the metastore service's name.
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ *
+ * Generated from protobuf field string service_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $service_id = '';
+ /**
+ * Required. The Metastore service to create. The `name` field is
+ * ignored. The ID of the created metastore service must be provided in
+ * the request's `service_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Service service = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $service = null;
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The relative resource name of the location in which to create a
+ * metastore service, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ * @type string $service_id
+ * Required. The ID of the metastore service, which is used as the final
+ * component of the metastore service's name.
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ * @type \Google\Cloud\Metastore\V1alpha\Service $service
+ * Required. The Metastore service to create. The `name` field is
+ * ignored. The ID of the created metastore service must be provided in
+ * the request's `service_id` field.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the location in which to create a
+ * metastore service, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * 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 relative resource name of the location in which to create a
+ * metastore service, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * 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 metastore service, which is used as the final
+ * component of the metastore service's name.
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ *
+ * Generated from protobuf field string service_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getServiceId()
+ {
+ return $this->service_id;
+ }
+
+ /**
+ * Required. The ID of the metastore service, which is used as the final
+ * component of the metastore service's name.
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ *
+ * Generated from protobuf field string service_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setServiceId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The Metastore service to create. The `name` field is
+ * ignored. The ID of the created metastore service must be provided in
+ * the request's `service_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Service service = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Metastore\V1alpha\Service|null
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ public function hasService()
+ {
+ return isset($this->service);
+ }
+
+ public function clearService()
+ {
+ unset($this->service);
+ }
+
+ /**
+ * Required. The Metastore service to create. The `name` field is
+ * ignored. The ID of the created metastore service must be provided in
+ * the request's `service_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Service service = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Metastore\V1alpha\Service $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1alpha\Service::class);
+ $this->service = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DataCatalogConfig.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DataCatalogConfig.php
new file mode 100644
index 000000000000..f252053725fd
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DataCatalogConfig.php
@@ -0,0 +1,72 @@
+google.cloud.metastore.v1alpha.DataCatalogConfig
+ */
+class DataCatalogConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Defines whether the metastore metadata should be synced to Data Catalog.
+ * The default value is to disable syncing metastore metadata to Data Catalog.
+ *
+ * Generated from protobuf field bool enabled = 2;
+ */
+ protected $enabled = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enabled
+ * Defines whether the metastore metadata should be synced to Data Catalog.
+ * The default value is to disable syncing metastore metadata to Data Catalog.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Defines whether the metastore metadata should be synced to Data Catalog.
+ * The default value is to disable syncing metastore metadata to Data Catalog.
+ *
+ * Generated from protobuf field bool enabled = 2;
+ * @return bool
+ */
+ public function getEnabled()
+ {
+ return $this->enabled;
+ }
+
+ /**
+ * Defines whether the metastore metadata should be synced to Data Catalog.
+ * The default value is to disable syncing metastore metadata to Data Catalog.
+ *
+ * Generated from protobuf field bool enabled = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DatabaseDumpSpec.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DatabaseDumpSpec.php
new file mode 100644
index 000000000000..775ad2d5ca0c
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DatabaseDumpSpec.php
@@ -0,0 +1,33 @@
+google.cloud.metastore.v1alpha.DatabaseDumpSpec
+ */
+class DatabaseDumpSpec extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DatabaseDumpSpec/Type.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DatabaseDumpSpec/Type.php
new file mode 100644
index 000000000000..290359f1c193
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DatabaseDumpSpec/Type.php
@@ -0,0 +1,64 @@
+google.cloud.metastore.v1alpha.DatabaseDumpSpec.Type
+ */
+class Type
+{
+ /**
+ * The type of the database dump is unknown.
+ *
+ * Generated from protobuf enum TYPE_UNSPECIFIED = 0;
+ */
+ const TYPE_UNSPECIFIED = 0;
+ /**
+ * Database dump is a MySQL dump file.
+ *
+ * Generated from protobuf enum MYSQL = 1;
+ */
+ const MYSQL = 1;
+ /**
+ * Database dump contains Avro files.
+ *
+ * Generated from protobuf enum AVRO = 2;
+ */
+ const AVRO = 2;
+
+ private static $valueToName = [
+ self::TYPE_UNSPECIFIED => 'TYPE_UNSPECIFIED',
+ self::MYSQL => 'MYSQL',
+ self::AVRO => 'AVRO',
+ ];
+
+ 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\Metastore\V1alpha\DatabaseDumpSpec_Type::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DatabaseDumpSpec_Type.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DatabaseDumpSpec_Type.php
new file mode 100644
index 000000000000..afa6fae34328
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DatabaseDumpSpec_Type.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1alpha.DataplexConfig
+ */
+class DataplexConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A reference to the Lake resources that this metastore service is attached
+ * to. The key is the lake resource name. Example:
+ * `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`.
+ *
+ * Generated from protobuf field map lake_resources = 1;
+ */
+ private $lake_resources;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\MapField $lake_resources
+ * A reference to the Lake resources that this metastore service is attached
+ * to. The key is the lake resource name. Example:
+ * `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A reference to the Lake resources that this metastore service is attached
+ * to. The key is the lake resource name. Example:
+ * `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`.
+ *
+ * Generated from protobuf field map lake_resources = 1;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLakeResources()
+ {
+ return $this->lake_resources;
+ }
+
+ /**
+ * A reference to the Lake resources that this metastore service is attached
+ * to. The key is the lake resource name. Example:
+ * `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`.
+ *
+ * Generated from protobuf field map lake_resources = 1;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setLakeResources($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1alpha\Lake::class);
+ $this->lake_resources = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DataprocMetastoreFederationGrpcClient.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DataprocMetastoreFederationGrpcClient.php
new file mode 100644
index 000000000000..bb78baa97a1a
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DataprocMetastoreFederationGrpcClient.php
@@ -0,0 +1,122 @@
+_simpleRequest('/google.cloud.metastore.v1alpha.DataprocMetastoreFederation/ListFederations',
+ $argument,
+ ['\Google\Cloud\Metastore\V1alpha\ListFederationsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Gets the details of a single federation.
+ * @param \Google\Cloud\Metastore\V1alpha\GetFederationRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetFederation(\Google\Cloud\Metastore\V1alpha\GetFederationRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1alpha.DataprocMetastoreFederation/GetFederation',
+ $argument,
+ ['\Google\Cloud\Metastore\V1alpha\Federation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Creates a metastore federation in a project and location.
+ * @param \Google\Cloud\Metastore\V1alpha\CreateFederationRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CreateFederation(\Google\Cloud\Metastore\V1alpha\CreateFederationRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1alpha.DataprocMetastoreFederation/CreateFederation',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Updates the fields of a federation.
+ * @param \Google\Cloud\Metastore\V1alpha\UpdateFederationRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function UpdateFederation(\Google\Cloud\Metastore\V1alpha\UpdateFederationRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1alpha.DataprocMetastoreFederation/UpdateFederation',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Deletes a single federation.
+ * @param \Google\Cloud\Metastore\V1alpha\DeleteFederationRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function DeleteFederation(\Google\Cloud\Metastore\V1alpha\DeleteFederationRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1alpha.DataprocMetastoreFederation/DeleteFederation',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+}
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DataprocMetastoreGrpcClient.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DataprocMetastoreGrpcClient.php
new file mode 100644
index 000000000000..6cd566f3c28e
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DataprocMetastoreGrpcClient.php
@@ -0,0 +1,340 @@
+_simpleRequest('/google.cloud.metastore.v1alpha.DataprocMetastore/ListServices',
+ $argument,
+ ['\Google\Cloud\Metastore\V1alpha\ListServicesResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Gets the details of a single service.
+ * @param \Google\Cloud\Metastore\V1alpha\GetServiceRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetService(\Google\Cloud\Metastore\V1alpha\GetServiceRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1alpha.DataprocMetastore/GetService',
+ $argument,
+ ['\Google\Cloud\Metastore\V1alpha\Service', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Creates a metastore service in a project and location.
+ * @param \Google\Cloud\Metastore\V1alpha\CreateServiceRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CreateService(\Google\Cloud\Metastore\V1alpha\CreateServiceRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1alpha.DataprocMetastore/CreateService',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Updates the parameters of a single service.
+ * @param \Google\Cloud\Metastore\V1alpha\UpdateServiceRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function UpdateService(\Google\Cloud\Metastore\V1alpha\UpdateServiceRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1alpha.DataprocMetastore/UpdateService',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Deletes a single service.
+ * @param \Google\Cloud\Metastore\V1alpha\DeleteServiceRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function DeleteService(\Google\Cloud\Metastore\V1alpha\DeleteServiceRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1alpha.DataprocMetastore/DeleteService',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Lists imports in a service.
+ * @param \Google\Cloud\Metastore\V1alpha\ListMetadataImportsRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ListMetadataImports(\Google\Cloud\Metastore\V1alpha\ListMetadataImportsRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1alpha.DataprocMetastore/ListMetadataImports',
+ $argument,
+ ['\Google\Cloud\Metastore\V1alpha\ListMetadataImportsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Gets details of a single import.
+ * @param \Google\Cloud\Metastore\V1alpha\GetMetadataImportRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetMetadataImport(\Google\Cloud\Metastore\V1alpha\GetMetadataImportRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1alpha.DataprocMetastore/GetMetadataImport',
+ $argument,
+ ['\Google\Cloud\Metastore\V1alpha\MetadataImport', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Creates a new MetadataImport in a given project and location.
+ * @param \Google\Cloud\Metastore\V1alpha\CreateMetadataImportRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CreateMetadataImport(\Google\Cloud\Metastore\V1alpha\CreateMetadataImportRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1alpha.DataprocMetastore/CreateMetadataImport',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Updates a single import.
+ * Only the description field of MetadataImport is supported to be updated.
+ * @param \Google\Cloud\Metastore\V1alpha\UpdateMetadataImportRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function UpdateMetadataImport(\Google\Cloud\Metastore\V1alpha\UpdateMetadataImportRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1alpha.DataprocMetastore/UpdateMetadataImport',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Exports metadata from a service.
+ * @param \Google\Cloud\Metastore\V1alpha\ExportMetadataRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ExportMetadata(\Google\Cloud\Metastore\V1alpha\ExportMetadataRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1alpha.DataprocMetastore/ExportMetadata',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Restores a service from a backup.
+ * @param \Google\Cloud\Metastore\V1alpha\RestoreServiceRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function RestoreService(\Google\Cloud\Metastore\V1alpha\RestoreServiceRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1alpha.DataprocMetastore/RestoreService',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Lists backups in a service.
+ * @param \Google\Cloud\Metastore\V1alpha\ListBackupsRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ListBackups(\Google\Cloud\Metastore\V1alpha\ListBackupsRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1alpha.DataprocMetastore/ListBackups',
+ $argument,
+ ['\Google\Cloud\Metastore\V1alpha\ListBackupsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Gets details of a single backup.
+ * @param \Google\Cloud\Metastore\V1alpha\GetBackupRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetBackup(\Google\Cloud\Metastore\V1alpha\GetBackupRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1alpha.DataprocMetastore/GetBackup',
+ $argument,
+ ['\Google\Cloud\Metastore\V1alpha\Backup', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Creates a new backup in a given project and location.
+ * @param \Google\Cloud\Metastore\V1alpha\CreateBackupRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CreateBackup(\Google\Cloud\Metastore\V1alpha\CreateBackupRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1alpha.DataprocMetastore/CreateBackup',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Deletes a single backup.
+ * @param \Google\Cloud\Metastore\V1alpha\DeleteBackupRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function DeleteBackup(\Google\Cloud\Metastore\V1alpha\DeleteBackupRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1alpha.DataprocMetastore/DeleteBackup',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Removes the attached IAM policies for a resource
+ * @param \Google\Cloud\Metastore\V1alpha\RemoveIamPolicyRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function RemoveIamPolicy(\Google\Cloud\Metastore\V1alpha\RemoveIamPolicyRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1alpha.DataprocMetastore/RemoveIamPolicy',
+ $argument,
+ ['\Google\Cloud\Metastore\V1alpha\RemoveIamPolicyResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Query DPMS metadata.
+ * @param \Google\Cloud\Metastore\V1alpha\QueryMetadataRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function QueryMetadata(\Google\Cloud\Metastore\V1alpha\QueryMetadataRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1alpha.DataprocMetastore/QueryMetadata',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Move a table to another database.
+ * @param \Google\Cloud\Metastore\V1alpha\MoveTableToDatabaseRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function MoveTableToDatabase(\Google\Cloud\Metastore\V1alpha\MoveTableToDatabaseRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1alpha.DataprocMetastore/MoveTableToDatabase',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Alter metadata resource location. The metadata resource can be a database,
+ * table, or partition. This functionality only updates the parent directory
+ * for the respective metadata resource and does not transfer any existing
+ * data to the new location.
+ * @param \Google\Cloud\Metastore\V1alpha\AlterMetadataResourceLocationRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function AlterMetadataResourceLocation(\Google\Cloud\Metastore\V1alpha\AlterMetadataResourceLocationRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1alpha.DataprocMetastore/AlterMetadataResourceLocation',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+}
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DeleteBackupRequest.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DeleteBackupRequest.php
new file mode 100644
index 000000000000..4b19c6dfbf22
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DeleteBackupRequest.php
@@ -0,0 +1,146 @@
+google.cloud.metastore.v1alpha.DeleteBackupRequest
+ */
+class DeleteBackupRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the backup to delete, in the
+ * following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The relative resource name of the backup to delete, in the
+ * following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the backup to delete, in the
+ * following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * 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 relative resource name of the backup to delete, in the
+ * following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * 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. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DeleteFederationRequest.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DeleteFederationRequest.php
new file mode 100644
index 000000000000..8abf3ddbe788
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DeleteFederationRequest.php
@@ -0,0 +1,145 @@
+google.cloud.metastore.v1alpha.DeleteFederationRequest
+ */
+class DeleteFederationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metastore federation to delete,
+ * in the following form:
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The relative resource name of the metastore federation to delete,
+ * in the following form:
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\MetastoreFederation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the metastore federation to delete,
+ * in the following form:
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * 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 relative resource name of the metastore federation to delete,
+ * in the following form:
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * 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. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DeleteServiceRequest.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DeleteServiceRequest.php
new file mode 100644
index 000000000000..f7d6a866613d
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/DeleteServiceRequest.php
@@ -0,0 +1,146 @@
+google.cloud.metastore.v1alpha.DeleteServiceRequest
+ */
+class DeleteServiceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metastore service to delete, in
+ * the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The relative resource name of the metastore service to delete, in
+ * the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to delete, in
+ * the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * 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 relative resource name of the metastore service to delete, in
+ * the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * 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. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/EncryptionConfig.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/EncryptionConfig.php
new file mode 100644
index 000000000000..1fc13fad7313
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/EncryptionConfig.php
@@ -0,0 +1,75 @@
+google.cloud.metastore.v1alpha.EncryptionConfig
+ */
+class EncryptionConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The fully qualified customer provided Cloud KMS key name to use for
+ * customer data encryption, in the following form:
+ * `projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}`.
+ *
+ * Generated from protobuf field string kms_key = 1;
+ */
+ protected $kms_key = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $kms_key
+ * The fully qualified customer provided Cloud KMS key name to use for
+ * customer data encryption, in the following form:
+ * `projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The fully qualified customer provided Cloud KMS key name to use for
+ * customer data encryption, in the following form:
+ * `projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}`.
+ *
+ * Generated from protobuf field string kms_key = 1;
+ * @return string
+ */
+ public function getKmsKey()
+ {
+ return $this->kms_key;
+ }
+
+ /**
+ * The fully qualified customer provided Cloud KMS key name to use for
+ * customer data encryption, in the following form:
+ * `projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}`.
+ *
+ * Generated from protobuf field string kms_key = 1;
+ * @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/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ExportMetadataRequest.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ExportMetadataRequest.php
new file mode 100644
index 000000000000..2cb051a9cdac
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ExportMetadataRequest.php
@@ -0,0 +1,232 @@
+google.cloud.metastore.v1alpha.ExportMetadataRequest
+ */
+class ExportMetadataRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metastore service to run
+ * export, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $service = '';
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+ /**
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.DatabaseDumpSpec.Type database_dump_type = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $database_dump_type = 0;
+ protected $destination;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $destination_gcs_folder
+ * A Cloud Storage URI of a folder, in the format
+ * `gs:///`. A sub-folder
+ * `` containing exported files will be created below it.
+ * @type string $service
+ * Required. The relative resource name of the metastore service to run
+ * export, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @type int $database_dump_type
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A Cloud Storage URI of a folder, in the format
+ * `gs:///`. A sub-folder
+ * `` containing exported files will be created below it.
+ *
+ * Generated from protobuf field string destination_gcs_folder = 2;
+ * @return string
+ */
+ public function getDestinationGcsFolder()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasDestinationGcsFolder()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * A Cloud Storage URI of a folder, in the format
+ * `gs:///`. A sub-folder
+ * `` containing exported files will be created below it.
+ *
+ * Generated from protobuf field string destination_gcs_folder = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setDestinationGcsFolder($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to run
+ * export, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to run
+ * export, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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;
+ }
+
+ /**
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.DatabaseDumpSpec.Type database_dump_type = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getDatabaseDumpType()
+ {
+ return $this->database_dump_type;
+ }
+
+ /**
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.DatabaseDumpSpec.Type database_dump_type = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setDatabaseDumpType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1alpha\DatabaseDumpSpec\Type::class);
+ $this->database_dump_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getDestination()
+ {
+ return $this->whichOneof("destination");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Federation.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Federation.php
new file mode 100644
index 000000000000..fd83282f0ddb
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Federation.php
@@ -0,0 +1,433 @@
+google.cloud.metastore.v1alpha.Federation
+ */
+class Federation extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Immutable. The relative resource name of the federation, of the
+ * form:
+ * projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $name = '';
+ /**
+ * Output only. The time when the metastore federation 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 metastore federation was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * User-defined labels for the metastore federation.
+ *
+ * Generated from protobuf field map labels = 4;
+ */
+ private $labels;
+ /**
+ * Immutable. The Apache Hive metastore version of the federation. All backend
+ * metastore versions must be compatible with the federation version.
+ *
+ * Generated from protobuf field string version = 5 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $version = '';
+ /**
+ * A map from `BackendMetastore` rank to `BackendMetastore`s from which the
+ * federation service serves metadata at query time. The map key represents
+ * the order in which `BackendMetastore`s should be evaluated to resolve
+ * database names at query time and should be greater than or equal to zero. A
+ * `BackendMetastore` with a lower number will be evaluated before a
+ * `BackendMetastore` with a higher number.
+ *
+ * Generated from protobuf field map backend_metastores = 6;
+ */
+ private $backend_metastores;
+ /**
+ * Output only. The federation endpoint.
+ *
+ * Generated from protobuf field string endpoint_uri = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $endpoint_uri = '';
+ /**
+ * Output only. The current state of the federation.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Federation.State state = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. Additional information about the current state of the
+ * metastore federation, if available.
+ *
+ * Generated from protobuf field string state_message = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state_message = '';
+ /**
+ * Output only. The globally unique resource identifier of the metastore
+ * federation.
+ *
+ * Generated from protobuf field string uid = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $uid = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Immutable. The relative resource name of the federation, of the
+ * form:
+ * projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time when the metastore federation was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The time when the metastore federation was last updated.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * User-defined labels for the metastore federation.
+ * @type string $version
+ * Immutable. The Apache Hive metastore version of the federation. All backend
+ * metastore versions must be compatible with the federation version.
+ * @type array|\Google\Protobuf\Internal\MapField $backend_metastores
+ * A map from `BackendMetastore` rank to `BackendMetastore`s from which the
+ * federation service serves metadata at query time. The map key represents
+ * the order in which `BackendMetastore`s should be evaluated to resolve
+ * database names at query time and should be greater than or equal to zero. A
+ * `BackendMetastore` with a lower number will be evaluated before a
+ * `BackendMetastore` with a higher number.
+ * @type string $endpoint_uri
+ * Output only. The federation endpoint.
+ * @type int $state
+ * Output only. The current state of the federation.
+ * @type string $state_message
+ * Output only. Additional information about the current state of the
+ * metastore federation, if available.
+ * @type string $uid
+ * Output only. The globally unique resource identifier of the metastore
+ * federation.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\MetastoreFederation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Immutable. The relative resource name of the federation, of the
+ * form:
+ * projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Immutable. The relative resource name of the federation, of the
+ * form:
+ * projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the metastore federation 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 metastore federation 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 metastore federation 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 metastore federation 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-defined labels for the metastore federation.
+ *
+ * Generated from protobuf field map labels = 4;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * User-defined labels for the metastore federation.
+ *
+ * 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;
+ }
+
+ /**
+ * Immutable. The Apache Hive metastore version of the federation. All backend
+ * metastore versions must be compatible with the federation version.
+ *
+ * Generated from protobuf field string version = 5 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return string
+ */
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ /**
+ * Immutable. The Apache Hive metastore version of the federation. All backend
+ * metastore versions must be compatible with the federation version.
+ *
+ * Generated from protobuf field string version = 5 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param string $var
+ * @return $this
+ */
+ public function setVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->version = $var;
+
+ return $this;
+ }
+
+ /**
+ * A map from `BackendMetastore` rank to `BackendMetastore`s from which the
+ * federation service serves metadata at query time. The map key represents
+ * the order in which `BackendMetastore`s should be evaluated to resolve
+ * database names at query time and should be greater than or equal to zero. A
+ * `BackendMetastore` with a lower number will be evaluated before a
+ * `BackendMetastore` with a higher number.
+ *
+ * Generated from protobuf field map backend_metastores = 6;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getBackendMetastores()
+ {
+ return $this->backend_metastores;
+ }
+
+ /**
+ * A map from `BackendMetastore` rank to `BackendMetastore`s from which the
+ * federation service serves metadata at query time. The map key represents
+ * the order in which `BackendMetastore`s should be evaluated to resolve
+ * database names at query time and should be greater than or equal to zero. A
+ * `BackendMetastore` with a lower number will be evaluated before a
+ * `BackendMetastore` with a higher number.
+ *
+ * Generated from protobuf field map backend_metastores = 6;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setBackendMetastores($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::INT32, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1alpha\BackendMetastore::class);
+ $this->backend_metastores = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The federation endpoint.
+ *
+ * Generated from protobuf field string endpoint_uri = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getEndpointUri()
+ {
+ return $this->endpoint_uri;
+ }
+
+ /**
+ * Output only. The federation endpoint.
+ *
+ * Generated from protobuf field string endpoint_uri = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setEndpointUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->endpoint_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The current state of the federation.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Federation.State state = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The current state of the federation.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Federation.State state = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1alpha\Federation\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Additional information about the current state of the
+ * metastore federation, if available.
+ *
+ * Generated from protobuf field string state_message = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getStateMessage()
+ {
+ return $this->state_message;
+ }
+
+ /**
+ * Output only. Additional information about the current state of the
+ * metastore federation, if available.
+ *
+ * Generated from protobuf field string state_message = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setStateMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->state_message = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The globally unique resource identifier of the metastore
+ * federation.
+ *
+ * Generated from protobuf field string uid = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getUid()
+ {
+ return $this->uid;
+ }
+
+ /**
+ * Output only. The globally unique resource identifier of the metastore
+ * federation.
+ *
+ * Generated from protobuf field string uid = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setUid($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uid = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Federation/State.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Federation/State.php
new file mode 100644
index 000000000000..8282624f193d
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Federation/State.php
@@ -0,0 +1,87 @@
+google.cloud.metastore.v1alpha.Federation.State
+ */
+class State
+{
+ /**
+ * The state of the metastore federation is unknown.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The metastore federation is in the process of being created.
+ *
+ * Generated from protobuf enum CREATING = 1;
+ */
+ const CREATING = 1;
+ /**
+ * The metastore federation is running and ready to serve queries.
+ *
+ * Generated from protobuf enum ACTIVE = 2;
+ */
+ const ACTIVE = 2;
+ /**
+ * The metastore federation is being updated. It remains usable but cannot
+ * accept additional update requests or be deleted at this time.
+ *
+ * Generated from protobuf enum UPDATING = 3;
+ */
+ const UPDATING = 3;
+ /**
+ * The metastore federation is undergoing deletion. It cannot be used.
+ *
+ * Generated from protobuf enum DELETING = 4;
+ */
+ const DELETING = 4;
+ /**
+ * The metastore federation has encountered an error and cannot be used. The
+ * metastore federation should be deleted.
+ *
+ * Generated from protobuf enum ERROR = 5;
+ */
+ const ERROR = 5;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::CREATING => 'CREATING',
+ self::ACTIVE => 'ACTIVE',
+ self::UPDATING => 'UPDATING',
+ self::DELETING => 'DELETING',
+ self::ERROR => 'ERROR',
+ ];
+
+ 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\Metastore\V1alpha\Federation_State::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Federation_State.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Federation_State.php
new file mode 100644
index 000000000000..7c5b0e6cb0be
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Federation_State.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1alpha.GetBackupRequest
+ */
+class GetBackupRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the backup to retrieve, in the
+ * following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The relative resource name of the backup to retrieve, in the
+ * following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the backup to retrieve, in the
+ * following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * 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 relative resource name of the backup to retrieve, in the
+ * following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * 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/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/GetFederationRequest.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/GetFederationRequest.php
new file mode 100644
index 000000000000..e8956ae561cc
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/GetFederationRequest.php
@@ -0,0 +1,75 @@
+google.cloud.metastore.v1alpha.GetFederationRequest
+ */
+class GetFederationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metastore federation to
+ * retrieve, in the following form:
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The relative resource name of the metastore federation to
+ * retrieve, in the following form:
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\MetastoreFederation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the metastore federation to
+ * retrieve, in the following form:
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * 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 relative resource name of the metastore federation to
+ * retrieve, in the following form:
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * 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/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/GetMetadataImportRequest.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/GetMetadataImportRequest.php
new file mode 100644
index 000000000000..e4c8b57eba8d
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/GetMetadataImportRequest.php
@@ -0,0 +1,76 @@
+google.cloud.metastore.v1alpha.GetMetadataImportRequest
+ */
+class GetMetadataImportRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metadata import to retrieve, in
+ * the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{import_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The relative resource name of the metadata import to retrieve, in
+ * the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{import_id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the metadata import to retrieve, in
+ * the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{import_id}`.
+ *
+ * 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 relative resource name of the metadata import to retrieve, in
+ * the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{import_id}`.
+ *
+ * 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/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/GetServiceRequest.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/GetServiceRequest.php
new file mode 100644
index 000000000000..2cda29b7e3fe
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/GetServiceRequest.php
@@ -0,0 +1,76 @@
+google.cloud.metastore.v1alpha.GetServiceRequest
+ */
+class GetServiceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metastore service to retrieve,
+ * in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The relative resource name of the metastore service to retrieve,
+ * in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to retrieve,
+ * in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * 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 relative resource name of the metastore service to retrieve,
+ * in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * 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/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/HiveMetastoreConfig.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/HiveMetastoreConfig.php
new file mode 100644
index 000000000000..b272e64f4210
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/HiveMetastoreConfig.php
@@ -0,0 +1,278 @@
+google.cloud.metastore.v1alpha.HiveMetastoreConfig
+ */
+class HiveMetastoreConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Immutable. The Hive metastore schema version.
+ *
+ * Generated from protobuf field string version = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $version = '';
+ /**
+ * A mapping of Hive metastore configuration key-value pairs to apply to the
+ * Hive metastore (configured in `hive-site.xml`). The mappings
+ * override system defaults (some keys cannot be overridden). These
+ * overrides are also applied to auxiliary versions and can be further
+ * customized in the auxiliary version's `AuxiliaryVersionConfig`.
+ *
+ * Generated from protobuf field map config_overrides = 2;
+ */
+ private $config_overrides;
+ /**
+ * Information used to configure the Hive metastore service as a service
+ * principal in a Kerberos realm. To disable Kerberos, use the `UpdateService`
+ * method and specify this field's path
+ * (`hive_metastore_config.kerberos_config`) in the request's `update_mask`
+ * while omitting this field from the request's `service`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.KerberosConfig kerberos_config = 3;
+ */
+ protected $kerberos_config = null;
+ /**
+ * The protocol to use for the metastore service endpoint. If unspecified,
+ * defaults to `THRIFT`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.HiveMetastoreConfig.EndpointProtocol endpoint_protocol = 4;
+ */
+ protected $endpoint_protocol = 0;
+ /**
+ * A mapping of Hive metastore version to the auxiliary version
+ * configuration. When specified, a secondary Hive metastore service is
+ * created along with the primary service. All auxiliary versions must be less
+ * than the service's primary version. The key is the auxiliary service name
+ * and it must match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?. This
+ * means that the first character must be a lowercase letter, and all the
+ * following characters must be hyphens, lowercase letters, or digits, except
+ * the last character, which cannot be a hyphen.
+ *
+ * Generated from protobuf field map auxiliary_versions = 5;
+ */
+ private $auxiliary_versions;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $version
+ * Immutable. The Hive metastore schema version.
+ * @type array|\Google\Protobuf\Internal\MapField $config_overrides
+ * A mapping of Hive metastore configuration key-value pairs to apply to the
+ * Hive metastore (configured in `hive-site.xml`). The mappings
+ * override system defaults (some keys cannot be overridden). These
+ * overrides are also applied to auxiliary versions and can be further
+ * customized in the auxiliary version's `AuxiliaryVersionConfig`.
+ * @type \Google\Cloud\Metastore\V1alpha\KerberosConfig $kerberos_config
+ * Information used to configure the Hive metastore service as a service
+ * principal in a Kerberos realm. To disable Kerberos, use the `UpdateService`
+ * method and specify this field's path
+ * (`hive_metastore_config.kerberos_config`) in the request's `update_mask`
+ * while omitting this field from the request's `service`.
+ * @type int $endpoint_protocol
+ * The protocol to use for the metastore service endpoint. If unspecified,
+ * defaults to `THRIFT`.
+ * @type array|\Google\Protobuf\Internal\MapField $auxiliary_versions
+ * A mapping of Hive metastore version to the auxiliary version
+ * configuration. When specified, a secondary Hive metastore service is
+ * created along with the primary service. All auxiliary versions must be less
+ * than the service's primary version. The key is the auxiliary service name
+ * and it must match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?. This
+ * means that the first character must be a lowercase letter, and all the
+ * following characters must be hyphens, lowercase letters, or digits, except
+ * the last character, which cannot be a hyphen.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Immutable. The Hive metastore schema version.
+ *
+ * Generated from protobuf field string version = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return string
+ */
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ /**
+ * Immutable. The Hive metastore schema version.
+ *
+ * Generated from protobuf field string version = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param string $var
+ * @return $this
+ */
+ public function setVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->version = $var;
+
+ return $this;
+ }
+
+ /**
+ * A mapping of Hive metastore configuration key-value pairs to apply to the
+ * Hive metastore (configured in `hive-site.xml`). The mappings
+ * override system defaults (some keys cannot be overridden). These
+ * overrides are also applied to auxiliary versions and can be further
+ * customized in the auxiliary version's `AuxiliaryVersionConfig`.
+ *
+ * Generated from protobuf field map config_overrides = 2;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getConfigOverrides()
+ {
+ return $this->config_overrides;
+ }
+
+ /**
+ * A mapping of Hive metastore configuration key-value pairs to apply to the
+ * Hive metastore (configured in `hive-site.xml`). The mappings
+ * override system defaults (some keys cannot be overridden). These
+ * overrides are also applied to auxiliary versions and can be further
+ * customized in the auxiliary version's `AuxiliaryVersionConfig`.
+ *
+ * Generated from protobuf field map config_overrides = 2;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setConfigOverrides($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->config_overrides = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Information used to configure the Hive metastore service as a service
+ * principal in a Kerberos realm. To disable Kerberos, use the `UpdateService`
+ * method and specify this field's path
+ * (`hive_metastore_config.kerberos_config`) in the request's `update_mask`
+ * while omitting this field from the request's `service`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.KerberosConfig kerberos_config = 3;
+ * @return \Google\Cloud\Metastore\V1alpha\KerberosConfig|null
+ */
+ public function getKerberosConfig()
+ {
+ return $this->kerberos_config;
+ }
+
+ public function hasKerberosConfig()
+ {
+ return isset($this->kerberos_config);
+ }
+
+ public function clearKerberosConfig()
+ {
+ unset($this->kerberos_config);
+ }
+
+ /**
+ * Information used to configure the Hive metastore service as a service
+ * principal in a Kerberos realm. To disable Kerberos, use the `UpdateService`
+ * method and specify this field's path
+ * (`hive_metastore_config.kerberos_config`) in the request's `update_mask`
+ * while omitting this field from the request's `service`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.KerberosConfig kerberos_config = 3;
+ * @param \Google\Cloud\Metastore\V1alpha\KerberosConfig $var
+ * @return $this
+ */
+ public function setKerberosConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1alpha\KerberosConfig::class);
+ $this->kerberos_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The protocol to use for the metastore service endpoint. If unspecified,
+ * defaults to `THRIFT`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.HiveMetastoreConfig.EndpointProtocol endpoint_protocol = 4;
+ * @return int
+ */
+ public function getEndpointProtocol()
+ {
+ return $this->endpoint_protocol;
+ }
+
+ /**
+ * The protocol to use for the metastore service endpoint. If unspecified,
+ * defaults to `THRIFT`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.HiveMetastoreConfig.EndpointProtocol endpoint_protocol = 4;
+ * @param int $var
+ * @return $this
+ */
+ public function setEndpointProtocol($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1alpha\HiveMetastoreConfig\EndpointProtocol::class);
+ $this->endpoint_protocol = $var;
+
+ return $this;
+ }
+
+ /**
+ * A mapping of Hive metastore version to the auxiliary version
+ * configuration. When specified, a secondary Hive metastore service is
+ * created along with the primary service. All auxiliary versions must be less
+ * than the service's primary version. The key is the auxiliary service name
+ * and it must match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?. This
+ * means that the first character must be a lowercase letter, and all the
+ * following characters must be hyphens, lowercase letters, or digits, except
+ * the last character, which cannot be a hyphen.
+ *
+ * Generated from protobuf field map auxiliary_versions = 5;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getAuxiliaryVersions()
+ {
+ return $this->auxiliary_versions;
+ }
+
+ /**
+ * A mapping of Hive metastore version to the auxiliary version
+ * configuration. When specified, a secondary Hive metastore service is
+ * created along with the primary service. All auxiliary versions must be less
+ * than the service's primary version. The key is the auxiliary service name
+ * and it must match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?. This
+ * means that the first character must be a lowercase letter, and all the
+ * following characters must be hyphens, lowercase letters, or digits, except
+ * the last character, which cannot be a hyphen.
+ *
+ * Generated from protobuf field map auxiliary_versions = 5;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setAuxiliaryVersions($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1alpha\AuxiliaryVersionConfig::class);
+ $this->auxiliary_versions = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/HiveMetastoreConfig/EndpointProtocol.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/HiveMetastoreConfig/EndpointProtocol.php
new file mode 100644
index 000000000000..4b93919c49c6
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/HiveMetastoreConfig/EndpointProtocol.php
@@ -0,0 +1,64 @@
+google.cloud.metastore.v1alpha.HiveMetastoreConfig.EndpointProtocol
+ */
+class EndpointProtocol
+{
+ /**
+ * The protocol is not set.
+ *
+ * Generated from protobuf enum ENDPOINT_PROTOCOL_UNSPECIFIED = 0;
+ */
+ const ENDPOINT_PROTOCOL_UNSPECIFIED = 0;
+ /**
+ * Use the legacy Apache Thrift protocol for the metastore service endpoint.
+ *
+ * Generated from protobuf enum THRIFT = 1;
+ */
+ const THRIFT = 1;
+ /**
+ * Use the modernized gRPC protocol for the metastore service endpoint.
+ *
+ * Generated from protobuf enum GRPC = 2;
+ */
+ const GRPC = 2;
+
+ private static $valueToName = [
+ self::ENDPOINT_PROTOCOL_UNSPECIFIED => 'ENDPOINT_PROTOCOL_UNSPECIFIED',
+ self::THRIFT => 'THRIFT',
+ self::GRPC => 'GRPC',
+ ];
+
+ 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(EndpointProtocol::class, \Google\Cloud\Metastore\V1alpha\HiveMetastoreConfig_EndpointProtocol::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/HiveMetastoreConfig_EndpointProtocol.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/HiveMetastoreConfig_EndpointProtocol.php
new file mode 100644
index 000000000000..7556da3487dd
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/HiveMetastoreConfig_EndpointProtocol.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1alpha.KerberosConfig
+ */
+class KerberosConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A Kerberos keytab file that can be used to authenticate a service principal
+ * with a Kerberos Key Distribution Center (KDC).
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Secret keytab = 1;
+ */
+ protected $keytab = null;
+ /**
+ * A Kerberos principal that exists in the both the keytab the KDC
+ * to authenticate as. A typical principal is of the form
+ * `primary/instance@REALM`, but there is no exact format.
+ *
+ * Generated from protobuf field string principal = 2;
+ */
+ protected $principal = '';
+ /**
+ * A Cloud Storage URI that specifies the path to a
+ * krb5.conf file. It is of the form `gs://{bucket_name}/path/to/krb5.conf`,
+ * although the file does not need to be named krb5.conf explicitly.
+ *
+ * Generated from protobuf field string krb5_config_gcs_uri = 3;
+ */
+ protected $krb5_config_gcs_uri = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Metastore\V1alpha\Secret $keytab
+ * A Kerberos keytab file that can be used to authenticate a service principal
+ * with a Kerberos Key Distribution Center (KDC).
+ * @type string $principal
+ * A Kerberos principal that exists in the both the keytab the KDC
+ * to authenticate as. A typical principal is of the form
+ * `primary/instance@REALM`, but there is no exact format.
+ * @type string $krb5_config_gcs_uri
+ * A Cloud Storage URI that specifies the path to a
+ * krb5.conf file. It is of the form `gs://{bucket_name}/path/to/krb5.conf`,
+ * although the file does not need to be named krb5.conf explicitly.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A Kerberos keytab file that can be used to authenticate a service principal
+ * with a Kerberos Key Distribution Center (KDC).
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Secret keytab = 1;
+ * @return \Google\Cloud\Metastore\V1alpha\Secret|null
+ */
+ public function getKeytab()
+ {
+ return $this->keytab;
+ }
+
+ public function hasKeytab()
+ {
+ return isset($this->keytab);
+ }
+
+ public function clearKeytab()
+ {
+ unset($this->keytab);
+ }
+
+ /**
+ * A Kerberos keytab file that can be used to authenticate a service principal
+ * with a Kerberos Key Distribution Center (KDC).
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Secret keytab = 1;
+ * @param \Google\Cloud\Metastore\V1alpha\Secret $var
+ * @return $this
+ */
+ public function setKeytab($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1alpha\Secret::class);
+ $this->keytab = $var;
+
+ return $this;
+ }
+
+ /**
+ * A Kerberos principal that exists in the both the keytab the KDC
+ * to authenticate as. A typical principal is of the form
+ * `primary/instance@REALM`, but there is no exact format.
+ *
+ * Generated from protobuf field string principal = 2;
+ * @return string
+ */
+ public function getPrincipal()
+ {
+ return $this->principal;
+ }
+
+ /**
+ * A Kerberos principal that exists in the both the keytab the KDC
+ * to authenticate as. A typical principal is of the form
+ * `primary/instance@REALM`, but there is no exact format.
+ *
+ * Generated from protobuf field string principal = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setPrincipal($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->principal = $var;
+
+ return $this;
+ }
+
+ /**
+ * A Cloud Storage URI that specifies the path to a
+ * krb5.conf file. It is of the form `gs://{bucket_name}/path/to/krb5.conf`,
+ * although the file does not need to be named krb5.conf explicitly.
+ *
+ * Generated from protobuf field string krb5_config_gcs_uri = 3;
+ * @return string
+ */
+ public function getKrb5ConfigGcsUri()
+ {
+ return $this->krb5_config_gcs_uri;
+ }
+
+ /**
+ * A Cloud Storage URI that specifies the path to a
+ * krb5.conf file. It is of the form `gs://{bucket_name}/path/to/krb5.conf`,
+ * although the file does not need to be named krb5.conf explicitly.
+ *
+ * Generated from protobuf field string krb5_config_gcs_uri = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setKrb5ConfigGcsUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->krb5_config_gcs_uri = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Lake.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Lake.php
new file mode 100644
index 000000000000..520f9c41748d
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Lake.php
@@ -0,0 +1,75 @@
+google.cloud.metastore.v1alpha.Lake
+ */
+class Lake extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The Lake resource name.
+ * Example:
+ * `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The Lake resource name.
+ * Example:
+ * `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The Lake resource name.
+ * Example:
+ * `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The Lake resource name.
+ * Example:
+ * `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.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/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ListBackupsRequest.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ListBackupsRequest.php
new file mode 100644
index 000000000000..db6747dc2550
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ListBackupsRequest.php
@@ -0,0 +1,252 @@
+google.cloud.metastore.v1alpha.ListBackupsRequest
+ */
+class ListBackupsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the service whose backups to
+ * list, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. The maximum number of backups to return. The response may contain
+ * less than the maximum number. If unspecified, no more than 500 backups are
+ * returned. The maximum value is 1000; values above 1000 are changed to 1000.
+ *
+ * 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
+ * [DataprocMetastore.ListBackups][google.cloud.metastore.v1alpha.DataprocMetastore.ListBackups]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListBackups][google.cloud.metastore.v1alpha.DataprocMetastore.ListBackups]
+ * 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. The filter to apply to list results.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+ /**
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $order_by = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The relative resource name of the service whose backups to
+ * list, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups`.
+ * @type int $page_size
+ * Optional. The maximum number of backups to return. The response may contain
+ * less than the maximum number. If unspecified, no more than 500 backups are
+ * returned. The maximum value is 1000; values above 1000 are changed to 1000.
+ * @type string $page_token
+ * Optional. A page token, received from a previous
+ * [DataprocMetastore.ListBackups][google.cloud.metastore.v1alpha.DataprocMetastore.ListBackups]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListBackups][google.cloud.metastore.v1alpha.DataprocMetastore.ListBackups]
+ * must match the call that provided the page token.
+ * @type string $filter
+ * Optional. The filter to apply to list results.
+ * @type string $order_by
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the service whose backups to
+ * list, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups`.
+ *
+ * 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 relative resource name of the service whose backups to
+ * list, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups`.
+ *
+ * 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 backups to return. The response may contain
+ * less than the maximum number. If unspecified, no more than 500 backups are
+ * returned. The maximum value is 1000; values above 1000 are changed to 1000.
+ *
+ * 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 backups to return. The response may contain
+ * less than the maximum number. If unspecified, no more than 500 backups are
+ * returned. The maximum value is 1000; values above 1000 are changed to 1000.
+ *
+ * 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
+ * [DataprocMetastore.ListBackups][google.cloud.metastore.v1alpha.DataprocMetastore.ListBackups]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListBackups][google.cloud.metastore.v1alpha.DataprocMetastore.ListBackups]
+ * 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
+ * [DataprocMetastore.ListBackups][google.cloud.metastore.v1alpha.DataprocMetastore.ListBackups]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListBackups][google.cloud.metastore.v1alpha.DataprocMetastore.ListBackups]
+ * 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. The filter to apply to list results.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. The filter to apply to list results.
+ *
+ * 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. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * 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/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ListBackupsResponse.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ListBackupsResponse.php
new file mode 100644
index 000000000000..25db12b281f9
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ListBackupsResponse.php
@@ -0,0 +1,140 @@
+google.cloud.metastore.v1alpha.ListBackupsResponse
+ */
+class ListBackupsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The backups of the specified service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1alpha.Backup backups = 1;
+ */
+ private $backups;
+ /**
+ * 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\Metastore\V1alpha\Backup>|\Google\Protobuf\Internal\RepeatedField $backups
+ * The backups of the specified service.
+ * @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\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The backups of the specified service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1alpha.Backup backups = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getBackups()
+ {
+ return $this->backups;
+ }
+
+ /**
+ * The backups of the specified service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1alpha.Backup backups = 1;
+ * @param array<\Google\Cloud\Metastore\V1alpha\Backup>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setBackups($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1alpha\Backup::class);
+ $this->backups = $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/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ListFederationsRequest.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ListFederationsRequest.php
new file mode 100644
index 000000000000..12a4abc079b4
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ListFederationsRequest.php
@@ -0,0 +1,251 @@
+google.cloud.metastore.v1alpha.ListFederationsRequest
+ */
+class ListFederationsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the location of metastore
+ * federations to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. The maximum number of federations to return. The response may
+ * contain less than the maximum number. If unspecified, no more than 500
+ * services are returned. The maximum value is 1000; values above 1000 are
+ * changed to 1000.
+ *
+ * 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 ListFederationServices
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * ListFederationServices 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. The filter to apply to list results.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+ /**
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $order_by = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The relative resource name of the location of metastore
+ * federations to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ * @type int $page_size
+ * Optional. The maximum number of federations to return. The response may
+ * contain less than the maximum number. If unspecified, no more than 500
+ * services are returned. The maximum value is 1000; values above 1000 are
+ * changed to 1000.
+ * @type string $page_token
+ * Optional. A page token, received from a previous ListFederationServices
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * ListFederationServices must match the call that provided the
+ * page token.
+ * @type string $filter
+ * Optional. The filter to apply to list results.
+ * @type string $order_by
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\MetastoreFederation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the location of metastore
+ * federations to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * 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 relative resource name of the location of metastore
+ * federations to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * 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 federations to return. The response may
+ * contain less than the maximum number. If unspecified, no more than 500
+ * services are returned. The maximum value is 1000; values above 1000 are
+ * changed to 1000.
+ *
+ * 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 federations to return. The response may
+ * contain less than the maximum number. If unspecified, no more than 500
+ * services are returned. The maximum value is 1000; values above 1000 are
+ * changed to 1000.
+ *
+ * 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 ListFederationServices
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * ListFederationServices 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 ListFederationServices
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * ListFederationServices 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. The filter to apply to list results.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. The filter to apply to list results.
+ *
+ * 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. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * 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/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ListFederationsResponse.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ListFederationsResponse.php
new file mode 100644
index 000000000000..6fe15394a05e
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ListFederationsResponse.php
@@ -0,0 +1,139 @@
+google.cloud.metastore.v1alpha.ListFederationsResponse
+ */
+class ListFederationsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The services in the specified location.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1alpha.Federation federations = 1;
+ */
+ private $federations;
+ /**
+ * 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\Metastore\V1alpha\Federation>|\Google\Protobuf\Internal\RepeatedField $federations
+ * The services in the specified location.
+ * @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\Metastore\V1Alpha\MetastoreFederation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The services in the specified location.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1alpha.Federation federations = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getFederations()
+ {
+ return $this->federations;
+ }
+
+ /**
+ * The services in the specified location.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1alpha.Federation federations = 1;
+ * @param array<\Google\Cloud\Metastore\V1alpha\Federation>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setFederations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1alpha\Federation::class);
+ $this->federations = $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/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ListMetadataImportsRequest.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ListMetadataImportsRequest.php
new file mode 100644
index 000000000000..7a022d5ed98d
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ListMetadataImportsRequest.php
@@ -0,0 +1,252 @@
+google.cloud.metastore.v1alpha.ListMetadataImportsRequest
+ */
+class ListMetadataImportsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the service whose metadata imports
+ * to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. The maximum number of imports to return. The response may contain
+ * less than the maximum number. If unspecified, no more than 500 imports are
+ * returned. The maximum value is 1000; values above 1000 are changed to 1000.
+ *
+ * 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
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1alpha.DataprocMetastore.ListServices]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1alpha.DataprocMetastore.ListServices]
+ * 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. The filter to apply to list results.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+ /**
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $order_by = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The relative resource name of the service whose metadata imports
+ * to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports`.
+ * @type int $page_size
+ * Optional. The maximum number of imports to return. The response may contain
+ * less than the maximum number. If unspecified, no more than 500 imports are
+ * returned. The maximum value is 1000; values above 1000 are changed to 1000.
+ * @type string $page_token
+ * Optional. A page token, received from a previous
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1alpha.DataprocMetastore.ListServices]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1alpha.DataprocMetastore.ListServices]
+ * must match the call that provided the page token.
+ * @type string $filter
+ * Optional. The filter to apply to list results.
+ * @type string $order_by
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the service whose metadata imports
+ * to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports`.
+ *
+ * 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 relative resource name of the service whose metadata imports
+ * to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports`.
+ *
+ * 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 imports to return. The response may contain
+ * less than the maximum number. If unspecified, no more than 500 imports are
+ * returned. The maximum value is 1000; values above 1000 are changed to 1000.
+ *
+ * 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 imports to return. The response may contain
+ * less than the maximum number. If unspecified, no more than 500 imports are
+ * returned. The maximum value is 1000; values above 1000 are changed to 1000.
+ *
+ * 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
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1alpha.DataprocMetastore.ListServices]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1alpha.DataprocMetastore.ListServices]
+ * 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
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1alpha.DataprocMetastore.ListServices]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1alpha.DataprocMetastore.ListServices]
+ * 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. The filter to apply to list results.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. The filter to apply to list results.
+ *
+ * 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. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * 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/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ListMetadataImportsResponse.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ListMetadataImportsResponse.php
new file mode 100644
index 000000000000..72e5d8c510ef
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ListMetadataImportsResponse.php
@@ -0,0 +1,140 @@
+google.cloud.metastore.v1alpha.ListMetadataImportsResponse
+ */
+class ListMetadataImportsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The imports in the specified service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1alpha.MetadataImport metadata_imports = 1;
+ */
+ private $metadata_imports;
+ /**
+ * 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\Metastore\V1alpha\MetadataImport>|\Google\Protobuf\Internal\RepeatedField $metadata_imports
+ * The imports in the specified service.
+ * @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\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The imports in the specified service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1alpha.MetadataImport metadata_imports = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getMetadataImports()
+ {
+ return $this->metadata_imports;
+ }
+
+ /**
+ * The imports in the specified service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1alpha.MetadataImport metadata_imports = 1;
+ * @param array<\Google\Cloud\Metastore\V1alpha\MetadataImport>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setMetadataImports($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1alpha\MetadataImport::class);
+ $this->metadata_imports = $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/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ListServicesRequest.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ListServicesRequest.php
new file mode 100644
index 000000000000..f5213e46f8e7
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ListServicesRequest.php
@@ -0,0 +1,256 @@
+google.cloud.metastore.v1alpha.ListServicesRequest
+ */
+class ListServicesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the location of metastore services
+ * to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. The maximum number of services to return. The response may
+ * contain less than the maximum number. If unspecified, no more than 500
+ * services are returned. The maximum value is 1000; values above 1000 are
+ * changed to 1000.
+ *
+ * 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
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1alpha.DataprocMetastore.ListServices]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1alpha.DataprocMetastore.ListServices]
+ * 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. The filter to apply to list results.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+ /**
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $order_by = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The relative resource name of the location of metastore services
+ * to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ * @type int $page_size
+ * Optional. The maximum number of services to return. The response may
+ * contain less than the maximum number. If unspecified, no more than 500
+ * services are returned. The maximum value is 1000; values above 1000 are
+ * changed to 1000.
+ * @type string $page_token
+ * Optional. A page token, received from a previous
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1alpha.DataprocMetastore.ListServices]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1alpha.DataprocMetastore.ListServices]
+ * must match the call that provided the page token.
+ * @type string $filter
+ * Optional. The filter to apply to list results.
+ * @type string $order_by
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the location of metastore services
+ * to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * 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 relative resource name of the location of metastore services
+ * to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * 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 services to return. The response may
+ * contain less than the maximum number. If unspecified, no more than 500
+ * services are returned. The maximum value is 1000; values above 1000 are
+ * changed to 1000.
+ *
+ * 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 services to return. The response may
+ * contain less than the maximum number. If unspecified, no more than 500
+ * services are returned. The maximum value is 1000; values above 1000 are
+ * changed to 1000.
+ *
+ * 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
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1alpha.DataprocMetastore.ListServices]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1alpha.DataprocMetastore.ListServices]
+ * 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
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1alpha.DataprocMetastore.ListServices]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1alpha.DataprocMetastore.ListServices]
+ * 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. The filter to apply to list results.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. The filter to apply to list results.
+ *
+ * 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. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * 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/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ListServicesResponse.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ListServicesResponse.php
new file mode 100644
index 000000000000..721b2f06c113
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ListServicesResponse.php
@@ -0,0 +1,140 @@
+google.cloud.metastore.v1alpha.ListServicesResponse
+ */
+class ListServicesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The services in the specified location.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1alpha.Service services = 1;
+ */
+ private $services;
+ /**
+ * 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\Metastore\V1alpha\Service>|\Google\Protobuf\Internal\RepeatedField $services
+ * The services in the specified location.
+ * @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\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The services in the specified location.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1alpha.Service services = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getServices()
+ {
+ return $this->services;
+ }
+
+ /**
+ * The services in the specified location.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1alpha.Service services = 1;
+ * @param array<\Google\Cloud\Metastore\V1alpha\Service>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setServices($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1alpha\Service::class);
+ $this->services = $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/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/LocationMetadata.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/LocationMetadata.php
new file mode 100644
index 000000000000..068677258a75
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/LocationMetadata.php
@@ -0,0 +1,75 @@
+google.cloud.metastore.v1alpha.LocationMetadata
+ */
+class LocationMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The versions of Hive Metastore that can be used when creating a new
+ * metastore service in this location. The server guarantees that exactly one
+ * `HiveMetastoreVersion` in the list will set `is_default`.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1alpha.LocationMetadata.HiveMetastoreVersion supported_hive_metastore_versions = 1;
+ */
+ private $supported_hive_metastore_versions;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Metastore\V1alpha\LocationMetadata\HiveMetastoreVersion>|\Google\Protobuf\Internal\RepeatedField $supported_hive_metastore_versions
+ * The versions of Hive Metastore that can be used when creating a new
+ * metastore service in this location. The server guarantees that exactly one
+ * `HiveMetastoreVersion` in the list will set `is_default`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The versions of Hive Metastore that can be used when creating a new
+ * metastore service in this location. The server guarantees that exactly one
+ * `HiveMetastoreVersion` in the list will set `is_default`.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1alpha.LocationMetadata.HiveMetastoreVersion supported_hive_metastore_versions = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getSupportedHiveMetastoreVersions()
+ {
+ return $this->supported_hive_metastore_versions;
+ }
+
+ /**
+ * The versions of Hive Metastore that can be used when creating a new
+ * metastore service in this location. The server guarantees that exactly one
+ * `HiveMetastoreVersion` in the list will set `is_default`.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1alpha.LocationMetadata.HiveMetastoreVersion supported_hive_metastore_versions = 1;
+ * @param array<\Google\Cloud\Metastore\V1alpha\LocationMetadata\HiveMetastoreVersion>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setSupportedHiveMetastoreVersions($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1alpha\LocationMetadata\HiveMetastoreVersion::class);
+ $this->supported_hive_metastore_versions = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/LocationMetadata/HiveMetastoreVersion.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/LocationMetadata/HiveMetastoreVersion.php
new file mode 100644
index 000000000000..9d303276b6b6
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/LocationMetadata/HiveMetastoreVersion.php
@@ -0,0 +1,108 @@
+google.cloud.metastore.v1alpha.LocationMetadata.HiveMetastoreVersion
+ */
+class HiveMetastoreVersion extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The semantic version of the Hive Metastore software.
+ *
+ * Generated from protobuf field string version = 1;
+ */
+ protected $version = '';
+ /**
+ * Whether `version` will be chosen by the server if a metastore service is
+ * created with a `HiveMetastoreConfig` that omits the `version`.
+ *
+ * Generated from protobuf field bool is_default = 2;
+ */
+ protected $is_default = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $version
+ * The semantic version of the Hive Metastore software.
+ * @type bool $is_default
+ * Whether `version` will be chosen by the server if a metastore service is
+ * created with a `HiveMetastoreConfig` that omits the `version`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The semantic version of the Hive Metastore software.
+ *
+ * Generated from protobuf field string version = 1;
+ * @return string
+ */
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ /**
+ * The semantic version of the Hive Metastore software.
+ *
+ * Generated from protobuf field string version = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->version = $var;
+
+ return $this;
+ }
+
+ /**
+ * Whether `version` will be chosen by the server if a metastore service is
+ * created with a `HiveMetastoreConfig` that omits the `version`.
+ *
+ * Generated from protobuf field bool is_default = 2;
+ * @return bool
+ */
+ public function getIsDefault()
+ {
+ return $this->is_default;
+ }
+
+ /**
+ * Whether `version` will be chosen by the server if a metastore service is
+ * created with a `HiveMetastoreConfig` that omits the `version`.
+ *
+ * Generated from protobuf field bool is_default = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setIsDefault($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->is_default = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(HiveMetastoreVersion::class, \Google\Cloud\Metastore\V1alpha\LocationMetadata_HiveMetastoreVersion::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/LocationMetadata_HiveMetastoreVersion.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/LocationMetadata_HiveMetastoreVersion.php
new file mode 100644
index 000000000000..34ca2fe4ae0e
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/LocationMetadata_HiveMetastoreVersion.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1alpha.MaintenanceWindow
+ */
+class MaintenanceWindow extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The hour of day (0-23) when the window starts.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value hour_of_day = 1;
+ */
+ protected $hour_of_day = null;
+ /**
+ * The day of week, when the window starts.
+ *
+ * Generated from protobuf field .google.type.DayOfWeek day_of_week = 2;
+ */
+ protected $day_of_week = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Int32Value $hour_of_day
+ * The hour of day (0-23) when the window starts.
+ * @type int $day_of_week
+ * The day of week, when the window starts.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The hour of day (0-23) when the window starts.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value hour_of_day = 1;
+ * @return \Google\Protobuf\Int32Value|null
+ */
+ public function getHourOfDay()
+ {
+ return $this->hour_of_day;
+ }
+
+ public function hasHourOfDay()
+ {
+ return isset($this->hour_of_day);
+ }
+
+ public function clearHourOfDay()
+ {
+ unset($this->hour_of_day);
+ }
+
+ /**
+ * Returns the unboxed value from getHourOfDay()
+
+ * The hour of day (0-23) when the window starts.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value hour_of_day = 1;
+ * @return int|null
+ */
+ public function getHourOfDayUnwrapped()
+ {
+ return $this->readWrapperValue("hour_of_day");
+ }
+
+ /**
+ * The hour of day (0-23) when the window starts.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value hour_of_day = 1;
+ * @param \Google\Protobuf\Int32Value $var
+ * @return $this
+ */
+ public function setHourOfDay($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Int32Value::class);
+ $this->hour_of_day = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sets the field by wrapping a primitive type in a Google\Protobuf\Int32Value object.
+
+ * The hour of day (0-23) when the window starts.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value hour_of_day = 1;
+ * @param int|null $var
+ * @return $this
+ */
+ public function setHourOfDayUnwrapped($var)
+ {
+ $this->writeWrapperValue("hour_of_day", $var);
+ return $this;}
+
+ /**
+ * The day of week, when the window starts.
+ *
+ * Generated from protobuf field .google.type.DayOfWeek day_of_week = 2;
+ * @return int
+ */
+ public function getDayOfWeek()
+ {
+ return $this->day_of_week;
+ }
+
+ /**
+ * The day of week, when the window starts.
+ *
+ * Generated from protobuf field .google.type.DayOfWeek day_of_week = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setDayOfWeek($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Type\DayOfWeek::class);
+ $this->day_of_week = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MetadataExport.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MetadataExport.php
new file mode 100644
index 000000000000..6bdce9abf250
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MetadataExport.php
@@ -0,0 +1,240 @@
+google.cloud.metastore.v1alpha.MetadataExport
+ */
+class MetadataExport extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The time when the export started.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $start_time = null;
+ /**
+ * Output only. The time when the export ended.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $end_time = null;
+ /**
+ * Output only. The current state of the export.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.MetadataExport.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. The type of the database dump.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.DatabaseDumpSpec.Type database_dump_type = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $database_dump_type = 0;
+ protected $destination;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $destination_gcs_uri
+ * Output only. A Cloud Storage URI of a folder that metadata are exported
+ * to, in the form of
+ * `gs:////`, where
+ * `` is automatically generated.
+ * @type \Google\Protobuf\Timestamp $start_time
+ * Output only. The time when the export started.
+ * @type \Google\Protobuf\Timestamp $end_time
+ * Output only. The time when the export ended.
+ * @type int $state
+ * Output only. The current state of the export.
+ * @type int $database_dump_type
+ * Output only. The type of the database dump.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. A Cloud Storage URI of a folder that metadata are exported
+ * to, in the form of
+ * `gs:////`, where
+ * `` is automatically generated.
+ *
+ * Generated from protobuf field string destination_gcs_uri = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getDestinationGcsUri()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasDestinationGcsUri()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * Output only. A Cloud Storage URI of a folder that metadata are exported
+ * to, in the form of
+ * `gs:////`, where
+ * `` is automatically generated.
+ *
+ * Generated from protobuf field string destination_gcs_uri = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setDestinationGcsUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the export started.
+ *
+ * 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 time when the export started.
+ *
+ * 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 time when the export ended.
+ *
+ * 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 when the export ended.
+ *
+ * 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 current state of the export.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.MetadataExport.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The current state of the export.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.MetadataExport.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1alpha\MetadataExport\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The type of the database dump.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.DatabaseDumpSpec.Type database_dump_type = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getDatabaseDumpType()
+ {
+ return $this->database_dump_type;
+ }
+
+ /**
+ * Output only. The type of the database dump.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.DatabaseDumpSpec.Type database_dump_type = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setDatabaseDumpType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1alpha\DatabaseDumpSpec\Type::class);
+ $this->database_dump_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getDestination()
+ {
+ return $this->whichOneof("destination");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MetadataExport/State.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MetadataExport/State.php
new file mode 100644
index 000000000000..5c68430d9e47
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MetadataExport/State.php
@@ -0,0 +1,78 @@
+google.cloud.metastore.v1alpha.MetadataExport.State
+ */
+class State
+{
+ /**
+ * The state of the metadata export is unknown.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The metadata export is running.
+ *
+ * Generated from protobuf enum RUNNING = 1;
+ */
+ const RUNNING = 1;
+ /**
+ * The metadata export completed successfully.
+ *
+ * Generated from protobuf enum SUCCEEDED = 2;
+ */
+ const SUCCEEDED = 2;
+ /**
+ * The metadata export failed.
+ *
+ * Generated from protobuf enum FAILED = 3;
+ */
+ const FAILED = 3;
+ /**
+ * The metadata export is cancelled.
+ *
+ * Generated from protobuf enum CANCELLED = 4;
+ */
+ const CANCELLED = 4;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::RUNNING => 'RUNNING',
+ self::SUCCEEDED => 'SUCCEEDED',
+ self::FAILED => 'FAILED',
+ self::CANCELLED => 'CANCELLED',
+ ];
+
+ 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\Metastore\V1alpha\MetadataExport_State::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MetadataExport_State.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MetadataExport_State.php
new file mode 100644
index 000000000000..2f63ec303b06
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MetadataExport_State.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1alpha.MetadataImport
+ */
+class MetadataImport extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Immutable. The relative resource name of the metadata import, of the form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{metadata_import_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $name = '';
+ /**
+ * The description of the metadata import.
+ *
+ * Generated from protobuf field string description = 2;
+ */
+ protected $description = '';
+ /**
+ * Output only. The time when the metadata import was started.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The time when the metadata import 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 time when the metadata import finished.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $end_time = null;
+ /**
+ * Output only. The current state of the metadata import.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.MetadataImport.State state = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ protected $metadata;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Metastore\V1alpha\MetadataImport\DatabaseDump $database_dump
+ * Immutable. A database dump from a pre-existing metastore's database.
+ * @type string $name
+ * Immutable. The relative resource name of the metadata import, of the form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{metadata_import_id}`.
+ * @type string $description
+ * The description of the metadata import.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time when the metadata import was started.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The time when the metadata import was last updated.
+ * @type \Google\Protobuf\Timestamp $end_time
+ * Output only. The time when the metadata import finished.
+ * @type int $state
+ * Output only. The current state of the metadata import.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Immutable. A database dump from a pre-existing metastore's database.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.MetadataImport.DatabaseDump database_dump = 6 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return \Google\Cloud\Metastore\V1alpha\MetadataImport\DatabaseDump|null
+ */
+ public function getDatabaseDump()
+ {
+ return $this->readOneof(6);
+ }
+
+ public function hasDatabaseDump()
+ {
+ return $this->hasOneof(6);
+ }
+
+ /**
+ * Immutable. A database dump from a pre-existing metastore's database.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.MetadataImport.DatabaseDump database_dump = 6 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param \Google\Cloud\Metastore\V1alpha\MetadataImport\DatabaseDump $var
+ * @return $this
+ */
+ public function setDatabaseDump($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1alpha\MetadataImport\DatabaseDump::class);
+ $this->writeOneof(6, $var);
+
+ return $this;
+ }
+
+ /**
+ * Immutable. The relative resource name of the metadata import, of the form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{metadata_import_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Immutable. The relative resource name of the metadata import, of the form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{metadata_import_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The description of the metadata import.
+ *
+ * Generated from protobuf field string description = 2;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * The description of the metadata import.
+ *
+ * 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;
+ }
+
+ /**
+ * Output only. The time when the metadata import was started.
+ *
+ * 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 time when the metadata import was started.
+ *
+ * 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 time when the metadata import 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 time when the metadata import 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 time when the metadata import finished.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 7 [(.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 when the metadata import finished.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 7 [(.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 current state of the metadata import.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.MetadataImport.State state = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The current state of the metadata import.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.MetadataImport.State state = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1alpha\MetadataImport\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getMetadata()
+ {
+ return $this->whichOneof("metadata");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MetadataImport/DatabaseDump.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MetadataImport/DatabaseDump.php
new file mode 100644
index 000000000000..41bcf9e8ef0e
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MetadataImport/DatabaseDump.php
@@ -0,0 +1,191 @@
+google.cloud.metastore.v1alpha.MetadataImport.DatabaseDump
+ */
+class DatabaseDump extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The type of the database.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.MetadataImport.DatabaseDump.DatabaseType database_type = 1 [deprecated = true];
+ * @deprecated
+ */
+ protected $database_type = 0;
+ /**
+ * A Cloud Storage object or folder URI that specifies the source from which
+ * to import metadata. It must begin with `gs://`.
+ *
+ * Generated from protobuf field string gcs_uri = 2;
+ */
+ protected $gcs_uri = '';
+ /**
+ * The name of the source database.
+ *
+ * Generated from protobuf field string source_database = 3 [deprecated = true];
+ * @deprecated
+ */
+ protected $source_database = '';
+ /**
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.DatabaseDumpSpec.Type type = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $type = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $database_type
+ * The type of the database.
+ * @type string $gcs_uri
+ * A Cloud Storage object or folder URI that specifies the source from which
+ * to import metadata. It must begin with `gs://`.
+ * @type string $source_database
+ * The name of the source database.
+ * @type int $type
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The type of the database.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.MetadataImport.DatabaseDump.DatabaseType database_type = 1 [deprecated = true];
+ * @return int
+ * @deprecated
+ */
+ public function getDatabaseType()
+ {
+ @trigger_error('database_type is deprecated.', E_USER_DEPRECATED);
+ return $this->database_type;
+ }
+
+ /**
+ * The type of the database.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.MetadataImport.DatabaseDump.DatabaseType database_type = 1 [deprecated = true];
+ * @param int $var
+ * @return $this
+ * @deprecated
+ */
+ public function setDatabaseType($var)
+ {
+ @trigger_error('database_type is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1alpha\MetadataImport\DatabaseDump\DatabaseType::class);
+ $this->database_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * A Cloud Storage object or folder URI that specifies the source from which
+ * to import metadata. It must begin with `gs://`.
+ *
+ * Generated from protobuf field string gcs_uri = 2;
+ * @return string
+ */
+ public function getGcsUri()
+ {
+ return $this->gcs_uri;
+ }
+
+ /**
+ * A Cloud Storage object or folder URI that specifies the source from which
+ * to import metadata. It must begin with `gs://`.
+ *
+ * Generated from protobuf field string gcs_uri = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setGcsUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->gcs_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * The name of the source database.
+ *
+ * Generated from protobuf field string source_database = 3 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getSourceDatabase()
+ {
+ @trigger_error('source_database is deprecated.', E_USER_DEPRECATED);
+ return $this->source_database;
+ }
+
+ /**
+ * The name of the source database.
+ *
+ * Generated from protobuf field string source_database = 3 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setSourceDatabase($var)
+ {
+ @trigger_error('source_database is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->source_database = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.DatabaseDumpSpec.Type type = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.DatabaseDumpSpec.Type type = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1alpha\DatabaseDumpSpec\Type::class);
+ $this->type = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(DatabaseDump::class, \Google\Cloud\Metastore\V1alpha\MetadataImport_DatabaseDump::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MetadataImport/DatabaseDump/DatabaseType.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MetadataImport/DatabaseDump/DatabaseType.php
new file mode 100644
index 000000000000..be296436de3e
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MetadataImport/DatabaseDump/DatabaseType.php
@@ -0,0 +1,57 @@
+google.cloud.metastore.v1alpha.MetadataImport.DatabaseDump.DatabaseType
+ */
+class DatabaseType
+{
+ /**
+ * The type of the source database is unknown.
+ *
+ * Generated from protobuf enum DATABASE_TYPE_UNSPECIFIED = 0;
+ */
+ const DATABASE_TYPE_UNSPECIFIED = 0;
+ /**
+ * The type of the source database is MySQL.
+ *
+ * Generated from protobuf enum MYSQL = 1;
+ */
+ const MYSQL = 1;
+
+ private static $valueToName = [
+ self::DATABASE_TYPE_UNSPECIFIED => 'DATABASE_TYPE_UNSPECIFIED',
+ self::MYSQL => 'MYSQL',
+ ];
+
+ 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(DatabaseType::class, \Google\Cloud\Metastore\V1alpha\MetadataImport_DatabaseDump_DatabaseType::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MetadataImport/State.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MetadataImport/State.php
new file mode 100644
index 000000000000..7064408075c1
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MetadataImport/State.php
@@ -0,0 +1,79 @@
+google.cloud.metastore.v1alpha.MetadataImport.State
+ */
+class State
+{
+ /**
+ * The state of the metadata import is unknown.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The metadata import is running.
+ *
+ * Generated from protobuf enum RUNNING = 1;
+ */
+ const RUNNING = 1;
+ /**
+ * The metadata import completed successfully.
+ *
+ * Generated from protobuf enum SUCCEEDED = 2;
+ */
+ const SUCCEEDED = 2;
+ /**
+ * The metadata import is being updated.
+ *
+ * Generated from protobuf enum UPDATING = 3;
+ */
+ const UPDATING = 3;
+ /**
+ * The metadata import failed, and attempted metadata changes were rolled
+ * back.
+ *
+ * Generated from protobuf enum FAILED = 4;
+ */
+ const FAILED = 4;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::RUNNING => 'RUNNING',
+ self::SUCCEEDED => 'SUCCEEDED',
+ self::UPDATING => 'UPDATING',
+ 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\Metastore\V1alpha\MetadataImport_State::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MetadataImport_DatabaseDump.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MetadataImport_DatabaseDump.php
new file mode 100644
index 000000000000..7e600e3e4aef
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MetadataImport_DatabaseDump.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1alpha.MetadataIntegration
+ */
+class MetadataIntegration extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The integration config for the Data Catalog service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.DataCatalogConfig data_catalog_config = 1;
+ */
+ protected $data_catalog_config = null;
+ /**
+ * The integration config for the Dataplex service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.DataplexConfig dataplex_config = 2;
+ */
+ protected $dataplex_config = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Metastore\V1alpha\DataCatalogConfig $data_catalog_config
+ * The integration config for the Data Catalog service.
+ * @type \Google\Cloud\Metastore\V1alpha\DataplexConfig $dataplex_config
+ * The integration config for the Dataplex service.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The integration config for the Data Catalog service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.DataCatalogConfig data_catalog_config = 1;
+ * @return \Google\Cloud\Metastore\V1alpha\DataCatalogConfig|null
+ */
+ public function getDataCatalogConfig()
+ {
+ return $this->data_catalog_config;
+ }
+
+ public function hasDataCatalogConfig()
+ {
+ return isset($this->data_catalog_config);
+ }
+
+ public function clearDataCatalogConfig()
+ {
+ unset($this->data_catalog_config);
+ }
+
+ /**
+ * The integration config for the Data Catalog service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.DataCatalogConfig data_catalog_config = 1;
+ * @param \Google\Cloud\Metastore\V1alpha\DataCatalogConfig $var
+ * @return $this
+ */
+ public function setDataCatalogConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1alpha\DataCatalogConfig::class);
+ $this->data_catalog_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The integration config for the Dataplex service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.DataplexConfig dataplex_config = 2;
+ * @return \Google\Cloud\Metastore\V1alpha\DataplexConfig|null
+ */
+ public function getDataplexConfig()
+ {
+ return $this->dataplex_config;
+ }
+
+ public function hasDataplexConfig()
+ {
+ return isset($this->dataplex_config);
+ }
+
+ public function clearDataplexConfig()
+ {
+ unset($this->dataplex_config);
+ }
+
+ /**
+ * The integration config for the Dataplex service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.DataplexConfig dataplex_config = 2;
+ * @param \Google\Cloud\Metastore\V1alpha\DataplexConfig $var
+ * @return $this
+ */
+ public function setDataplexConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1alpha\DataplexConfig::class);
+ $this->dataplex_config = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MetadataManagementActivity.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MetadataManagementActivity.php
new file mode 100644
index 000000000000..3af658f899ef
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MetadataManagementActivity.php
@@ -0,0 +1,101 @@
+google.cloud.metastore.v1alpha.MetadataManagementActivity
+ */
+class MetadataManagementActivity extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The latest metadata exports of the metastore service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1alpha.MetadataExport metadata_exports = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $metadata_exports;
+ /**
+ * Output only. The latest restores of the metastore service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1alpha.Restore restores = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $restores;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Metastore\V1alpha\MetadataExport>|\Google\Protobuf\Internal\RepeatedField $metadata_exports
+ * Output only. The latest metadata exports of the metastore service.
+ * @type array<\Google\Cloud\Metastore\V1alpha\Restore>|\Google\Protobuf\Internal\RepeatedField $restores
+ * Output only. The latest restores of the metastore service.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The latest metadata exports of the metastore service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1alpha.MetadataExport metadata_exports = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getMetadataExports()
+ {
+ return $this->metadata_exports;
+ }
+
+ /**
+ * Output only. The latest metadata exports of the metastore service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1alpha.MetadataExport metadata_exports = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array<\Google\Cloud\Metastore\V1alpha\MetadataExport>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setMetadataExports($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1alpha\MetadataExport::class);
+ $this->metadata_exports = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The latest restores of the metastore service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1alpha.Restore restores = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRestores()
+ {
+ return $this->restores;
+ }
+
+ /**
+ * Output only. The latest restores of the metastore service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1alpha.Restore restores = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array<\Google\Cloud\Metastore\V1alpha\Restore>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRestores($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1alpha\Restore::class);
+ $this->restores = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MoveTableToDatabaseRequest.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MoveTableToDatabaseRequest.php
new file mode 100644
index 000000000000..144a2f02226b
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MoveTableToDatabaseRequest.php
@@ -0,0 +1,178 @@
+google.cloud.metastore.v1alpha.MoveTableToDatabaseRequest
+ */
+class MoveTableToDatabaseRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metastore service to mutate
+ * metadata, in the following format:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $service = '';
+ /**
+ * Required. The name of the table to be moved.
+ *
+ * Generated from protobuf field string table_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $table_name = '';
+ /**
+ * Required. The name of the database where the table resides.
+ *
+ * Generated from protobuf field string db_name = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $db_name = '';
+ /**
+ * Required. The name of the database where the table should be moved.
+ *
+ * Generated from protobuf field string destination_db_name = 4 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $destination_db_name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $service
+ * Required. The relative resource name of the metastore service to mutate
+ * metadata, in the following format:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ * @type string $table_name
+ * Required. The name of the table to be moved.
+ * @type string $db_name
+ * Required. The name of the database where the table resides.
+ * @type string $destination_db_name
+ * Required. The name of the database where the table should be moved.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to mutate
+ * metadata, in the following format:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to mutate
+ * metadata, in the following format:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The name of the table to be moved.
+ *
+ * Generated from protobuf field string table_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getTableName()
+ {
+ return $this->table_name;
+ }
+
+ /**
+ * Required. The name of the table to be moved.
+ *
+ * Generated from protobuf field string table_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setTableName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->table_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The name of the database where the table resides.
+ *
+ * Generated from protobuf field string db_name = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getDbName()
+ {
+ return $this->db_name;
+ }
+
+ /**
+ * Required. The name of the database where the table resides.
+ *
+ * Generated from protobuf field string db_name = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setDbName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->db_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The name of the database where the table should be moved.
+ *
+ * Generated from protobuf field string destination_db_name = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getDestinationDbName()
+ {
+ return $this->destination_db_name;
+ }
+
+ /**
+ * Required. The name of the database where the table should be moved.
+ *
+ * Generated from protobuf field string destination_db_name = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setDestinationDbName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->destination_db_name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MoveTableToDatabaseResponse.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MoveTableToDatabaseResponse.php
new file mode 100644
index 000000000000..de287eda072c
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/MoveTableToDatabaseResponse.php
@@ -0,0 +1,34 @@
+google.cloud.metastore.v1alpha.MoveTableToDatabaseResponse
+ */
+class MoveTableToDatabaseResponse extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/NetworkConfig.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/NetworkConfig.php
new file mode 100644
index 000000000000..c6ea2d9d4e20
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/NetworkConfig.php
@@ -0,0 +1,109 @@
+google.cloud.metastore.v1alpha.NetworkConfig
+ */
+class NetworkConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Immutable. The consumer-side network configuration for the Dataproc
+ * Metastore instance.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1alpha.NetworkConfig.Consumer consumers = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ private $consumers;
+ /**
+ * Enables custom routes to be imported and exported for the Dataproc
+ * Metastore service's peered VPC network.
+ *
+ * Generated from protobuf field bool custom_routes_enabled = 2;
+ */
+ protected $custom_routes_enabled = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Metastore\V1alpha\NetworkConfig\Consumer>|\Google\Protobuf\Internal\RepeatedField $consumers
+ * Immutable. The consumer-side network configuration for the Dataproc
+ * Metastore instance.
+ * @type bool $custom_routes_enabled
+ * Enables custom routes to be imported and exported for the Dataproc
+ * Metastore service's peered VPC network.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Immutable. The consumer-side network configuration for the Dataproc
+ * Metastore instance.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1alpha.NetworkConfig.Consumer consumers = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getConsumers()
+ {
+ return $this->consumers;
+ }
+
+ /**
+ * Immutable. The consumer-side network configuration for the Dataproc
+ * Metastore instance.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1alpha.NetworkConfig.Consumer consumers = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param array<\Google\Cloud\Metastore\V1alpha\NetworkConfig\Consumer>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setConsumers($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1alpha\NetworkConfig\Consumer::class);
+ $this->consumers = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Enables custom routes to be imported and exported for the Dataproc
+ * Metastore service's peered VPC network.
+ *
+ * Generated from protobuf field bool custom_routes_enabled = 2;
+ * @return bool
+ */
+ public function getCustomRoutesEnabled()
+ {
+ return $this->custom_routes_enabled;
+ }
+
+ /**
+ * Enables custom routes to be imported and exported for the Dataproc
+ * Metastore service's peered VPC network.
+ *
+ * Generated from protobuf field bool custom_routes_enabled = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setCustomRoutesEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->custom_routes_enabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/NetworkConfig/Consumer.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/NetworkConfig/Consumer.php
new file mode 100644
index 000000000000..cd2d150b1ef1
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/NetworkConfig/Consumer.php
@@ -0,0 +1,134 @@
+google.cloud.metastore.v1alpha.NetworkConfig.Consumer
+ */
+class Consumer extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The URI of the endpoint used to access the metastore
+ * service.
+ *
+ * Generated from protobuf field string endpoint_uri = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $endpoint_uri = '';
+ protected $vpc_resource;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $subnetwork
+ * Immutable. The subnetwork of the customer project from which an IP
+ * address is reserved and used as the Dataproc Metastore service's
+ * endpoint. It is accessible to hosts in the subnet and to all
+ * hosts in a subnet in the same region and same network. There must
+ * be at least one IP address available in the subnet's primary range. The
+ * subnet is specified in the following form:
+ * `projects/{project_number}/regions/{region_id}/subnetworks/{subnetwork_id}`
+ * @type string $endpoint_uri
+ * Output only. The URI of the endpoint used to access the metastore
+ * service.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Immutable. The subnetwork of the customer project from which an IP
+ * address is reserved and used as the Dataproc Metastore service's
+ * endpoint. It is accessible to hosts in the subnet and to all
+ * hosts in a subnet in the same region and same network. There must
+ * be at least one IP address available in the subnet's primary range. The
+ * subnet is specified in the following form:
+ * `projects/{project_number}/regions/{region_id}/subnetworks/{subnetwork_id}`
+ *
+ * Generated from protobuf field string subnetwork = 1 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getSubnetwork()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasSubnetwork()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Immutable. The subnetwork of the customer project from which an IP
+ * address is reserved and used as the Dataproc Metastore service's
+ * endpoint. It is accessible to hosts in the subnet and to all
+ * hosts in a subnet in the same region and same network. There must
+ * be at least one IP address available in the subnet's primary range. The
+ * subnet is specified in the following form:
+ * `projects/{project_number}/regions/{region_id}/subnetworks/{subnetwork_id}`
+ *
+ * Generated from protobuf field string subnetwork = 1 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setSubnetwork($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The URI of the endpoint used to access the metastore
+ * service.
+ *
+ * Generated from protobuf field string endpoint_uri = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getEndpointUri()
+ {
+ return $this->endpoint_uri;
+ }
+
+ /**
+ * Output only. The URI of the endpoint used to access the metastore
+ * service.
+ *
+ * Generated from protobuf field string endpoint_uri = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setEndpointUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->endpoint_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getVpcResource()
+ {
+ return $this->whichOneof("vpc_resource");
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Consumer::class, \Google\Cloud\Metastore\V1alpha\NetworkConfig_Consumer::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/NetworkConfig_Consumer.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/NetworkConfig_Consumer.php
new file mode 100644
index 000000000000..eff303639cc3
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/NetworkConfig_Consumer.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1alpha.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 caller 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 = 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 caller 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\Metastore\V1Alpha\Metastore::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 caller 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 = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return bool
+ */
+ public function getRequestedCancellation()
+ {
+ return $this->requested_cancellation;
+ }
+
+ /**
+ * Output only. Identifies whether the caller 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 = 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/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/QueryMetadataRequest.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/QueryMetadataRequest.php
new file mode 100644
index 000000000000..7311145db977
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/QueryMetadataRequest.php
@@ -0,0 +1,114 @@
+google.cloud.metastore.v1alpha.QueryMetadataRequest
+ */
+class QueryMetadataRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metastore service to query
+ * metadata, in the following format:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $service = '';
+ /**
+ * Required. A read-only SQL query to execute against the metadata database.
+ * The query cannot change or mutate the data.
+ *
+ * Generated from protobuf field string query = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $query = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $service
+ * Required. The relative resource name of the metastore service to query
+ * metadata, in the following format:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ * @type string $query
+ * Required. A read-only SQL query to execute against the metadata database.
+ * The query cannot change or mutate the data.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to query
+ * metadata, in the following format:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to query
+ * metadata, in the following format:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. A read-only SQL query to execute against the metadata database.
+ * The query cannot change or mutate the data.
+ *
+ * Generated from protobuf field string query = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getQuery()
+ {
+ return $this->query;
+ }
+
+ /**
+ * Required. A read-only SQL query to execute against the metadata database.
+ * The query cannot change or mutate the data.
+ *
+ * Generated from protobuf field string query = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setQuery($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->query = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/QueryMetadataResponse.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/QueryMetadataResponse.php
new file mode 100644
index 000000000000..f281f4e03016
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/QueryMetadataResponse.php
@@ -0,0 +1,80 @@
+google.cloud.metastore.v1alpha.QueryMetadataResponse
+ */
+class QueryMetadataResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The manifest URI is link to a JSON instance in Cloud Storage.
+ * This instance manifests immediately along with QueryMetadataResponse. The
+ * content of the URI is not retriable until the long-running operation query
+ * against the metadata finishes.
+ *
+ * Generated from protobuf field string result_manifest_uri = 1;
+ */
+ protected $result_manifest_uri = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $result_manifest_uri
+ * The manifest URI is link to a JSON instance in Cloud Storage.
+ * This instance manifests immediately along with QueryMetadataResponse. The
+ * content of the URI is not retriable until the long-running operation query
+ * against the metadata finishes.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The manifest URI is link to a JSON instance in Cloud Storage.
+ * This instance manifests immediately along with QueryMetadataResponse. The
+ * content of the URI is not retriable until the long-running operation query
+ * against the metadata finishes.
+ *
+ * Generated from protobuf field string result_manifest_uri = 1;
+ * @return string
+ */
+ public function getResultManifestUri()
+ {
+ return $this->result_manifest_uri;
+ }
+
+ /**
+ * The manifest URI is link to a JSON instance in Cloud Storage.
+ * This instance manifests immediately along with QueryMetadataResponse. The
+ * content of the URI is not retriable until the long-running operation query
+ * against the metadata finishes.
+ *
+ * Generated from protobuf field string result_manifest_uri = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setResultManifestUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->result_manifest_uri = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/RemoveIamPolicyRequest.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/RemoveIamPolicyRequest.php
new file mode 100644
index 000000000000..bb2ac3296f27
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/RemoveIamPolicyRequest.php
@@ -0,0 +1,122 @@
+google.cloud.metastore.v1alpha.RemoveIamPolicyRequest
+ */
+class RemoveIamPolicyRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the dataplane resource to remove
+ * IAM policy, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/databases/{database_id}`
+ * or
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/databases/{database_id}/tables/{table_id}`.
+ *
+ * Generated from protobuf field string resource = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $resource = '';
+ /**
+ * Optional. Removes IAM policy attached to database or table asynchronously
+ * when it is set. The default is false.
+ *
+ * Generated from protobuf field bool asynchronous = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $asynchronous = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $resource
+ * Required. The relative resource name of the dataplane resource to remove
+ * IAM policy, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/databases/{database_id}`
+ * or
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/databases/{database_id}/tables/{table_id}`.
+ * @type bool $asynchronous
+ * Optional. Removes IAM policy attached to database or table asynchronously
+ * when it is set. The default is false.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the dataplane resource to remove
+ * IAM policy, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/databases/{database_id}`
+ * or
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/databases/{database_id}/tables/{table_id}`.
+ *
+ * Generated from protobuf field string resource = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getResource()
+ {
+ return $this->resource;
+ }
+
+ /**
+ * Required. The relative resource name of the dataplane resource to remove
+ * IAM policy, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/databases/{database_id}`
+ * or
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/databases/{database_id}/tables/{table_id}`.
+ *
+ * Generated from protobuf field string resource = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setResource($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->resource = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Removes IAM policy attached to database or table asynchronously
+ * when it is set. The default is false.
+ *
+ * Generated from protobuf field bool asynchronous = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getAsynchronous()
+ {
+ return $this->asynchronous;
+ }
+
+ /**
+ * Optional. Removes IAM policy attached to database or table asynchronously
+ * when it is set. The default is false.
+ *
+ * Generated from protobuf field bool asynchronous = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setAsynchronous($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->asynchronous = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/RemoveIamPolicyResponse.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/RemoveIamPolicyResponse.php
new file mode 100644
index 000000000000..d67408b39be9
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/RemoveIamPolicyResponse.php
@@ -0,0 +1,68 @@
+google.cloud.metastore.v1alpha.RemoveIamPolicyResponse
+ */
+class RemoveIamPolicyResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * True if the policy is successfully removed.
+ *
+ * Generated from protobuf field bool success = 1;
+ */
+ protected $success = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $success
+ * True if the policy is successfully removed.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * True if the policy is successfully removed.
+ *
+ * Generated from protobuf field bool success = 1;
+ * @return bool
+ */
+ public function getSuccess()
+ {
+ return $this->success;
+ }
+
+ /**
+ * True if the policy is successfully removed.
+ *
+ * Generated from protobuf field bool success = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setSuccess($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->success = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Restore.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Restore.php
new file mode 100644
index 000000000000..808a5b15a5b4
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Restore.php
@@ -0,0 +1,269 @@
+google.cloud.metastore.v1alpha.Restore
+ */
+class Restore extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The time when the restore started.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $start_time = null;
+ /**
+ * Output only. The time when the restore ended.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $end_time = null;
+ /**
+ * Output only. The current state of the restore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Restore.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * Generated from protobuf field string backup = 4 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ */
+ protected $backup = '';
+ /**
+ * Output only. The type of restore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Restore.RestoreType type = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $type = 0;
+ /**
+ * Output only. The restore details containing the revision of the service to
+ * be restored to, in format of JSON.
+ *
+ * Generated from protobuf field string details = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $details = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Timestamp $start_time
+ * Output only. The time when the restore started.
+ * @type \Google\Protobuf\Timestamp $end_time
+ * Output only. The time when the restore ended.
+ * @type int $state
+ * Output only. The current state of the restore.
+ * @type string $backup
+ * Output only. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ * @type int $type
+ * Output only. The type of restore.
+ * @type string $details
+ * Output only. The restore details containing the revision of the service to
+ * be restored to, in format of JSON.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The time when the restore started.
+ *
+ * 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 time when the restore started.
+ *
+ * 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 time when the restore ended.
+ *
+ * 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 when the restore ended.
+ *
+ * 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 current state of the restore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Restore.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The current state of the restore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Restore.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1alpha\Restore\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * Generated from protobuf field string backup = 4 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getBackup()
+ {
+ return $this->backup;
+ }
+
+ /**
+ * Output only. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * Generated from protobuf field string backup = 4 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setBackup($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->backup = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The type of restore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Restore.RestoreType type = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * Output only. The type of restore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Restore.RestoreType type = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1alpha\Restore\RestoreType::class);
+ $this->type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The restore details containing the revision of the service to
+ * be restored to, in format of JSON.
+ *
+ * Generated from protobuf field string details = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getDetails()
+ {
+ return $this->details;
+ }
+
+ /**
+ * Output only. The restore details containing the revision of the service to
+ * be restored to, in format of JSON.
+ *
+ * Generated from protobuf field string details = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setDetails($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->details = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Restore/RestoreType.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Restore/RestoreType.php
new file mode 100644
index 000000000000..ac00e6c12f01
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Restore/RestoreType.php
@@ -0,0 +1,64 @@
+google.cloud.metastore.v1alpha.Restore.RestoreType
+ */
+class RestoreType
+{
+ /**
+ * The restore type is unknown.
+ *
+ * Generated from protobuf enum RESTORE_TYPE_UNSPECIFIED = 0;
+ */
+ const RESTORE_TYPE_UNSPECIFIED = 0;
+ /**
+ * The service's metadata and configuration are restored.
+ *
+ * Generated from protobuf enum FULL = 1;
+ */
+ const FULL = 1;
+ /**
+ * Only the service's metadata is restored.
+ *
+ * Generated from protobuf enum METADATA_ONLY = 2;
+ */
+ const METADATA_ONLY = 2;
+
+ private static $valueToName = [
+ self::RESTORE_TYPE_UNSPECIFIED => 'RESTORE_TYPE_UNSPECIFIED',
+ self::FULL => 'FULL',
+ self::METADATA_ONLY => 'METADATA_ONLY',
+ ];
+
+ 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(RestoreType::class, \Google\Cloud\Metastore\V1alpha\Restore_RestoreType::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Restore/State.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Restore/State.php
new file mode 100644
index 000000000000..f5225dc2cc66
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Restore/State.php
@@ -0,0 +1,78 @@
+google.cloud.metastore.v1alpha.Restore.State
+ */
+class State
+{
+ /**
+ * The state of the metadata restore is unknown.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The metadata restore is running.
+ *
+ * Generated from protobuf enum RUNNING = 1;
+ */
+ const RUNNING = 1;
+ /**
+ * The metadata restore completed successfully.
+ *
+ * Generated from protobuf enum SUCCEEDED = 2;
+ */
+ const SUCCEEDED = 2;
+ /**
+ * The metadata restore failed.
+ *
+ * Generated from protobuf enum FAILED = 3;
+ */
+ const FAILED = 3;
+ /**
+ * The metadata restore is cancelled.
+ *
+ * Generated from protobuf enum CANCELLED = 4;
+ */
+ const CANCELLED = 4;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::RUNNING => 'RUNNING',
+ self::SUCCEEDED => 'SUCCEEDED',
+ self::FAILED => 'FAILED',
+ self::CANCELLED => 'CANCELLED',
+ ];
+
+ 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\Metastore\V1alpha\Restore_State::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/RestoreServiceRequest.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/RestoreServiceRequest.php
new file mode 100644
index 000000000000..173c80bdc5ff
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/RestoreServiceRequest.php
@@ -0,0 +1,221 @@
+google.cloud.metastore.v1alpha.RestoreServiceRequest
+ */
+class RestoreServiceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metastore service to run
+ * restore, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $service = '';
+ /**
+ * Required. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * Generated from protobuf field string backup = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $backup = '';
+ /**
+ * Optional. The type of restore. If unspecified, defaults to `METADATA_ONLY`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Restore.RestoreType restore_type = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $restore_type = 0;
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $service
+ * Required. The relative resource name of the metastore service to run
+ * restore, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ * @type string $backup
+ * Required. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ * @type int $restore_type
+ * Optional. The type of restore. If unspecified, defaults to `METADATA_ONLY`.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to run
+ * restore, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to run
+ * restore, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * Generated from protobuf field string backup = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getBackup()
+ {
+ return $this->backup;
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * Generated from protobuf field string backup = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setBackup($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->backup = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The type of restore. If unspecified, defaults to `METADATA_ONLY`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Restore.RestoreType restore_type = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getRestoreType()
+ {
+ return $this->restore_type;
+ }
+
+ /**
+ * Optional. The type of restore. If unspecified, defaults to `METADATA_ONLY`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Restore.RestoreType restore_type = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setRestoreType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1alpha\Restore\RestoreType::class);
+ $this->restore_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Restore_RestoreType.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Restore_RestoreType.php
new file mode 100644
index 000000000000..250369a14e17
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Restore_RestoreType.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1alpha.ScalingConfig
+ */
+class ScalingConfig extends \Google\Protobuf\Internal\Message
+{
+ protected $scaling_model;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $instance_size
+ * An enum of readable instance sizes, with each instance size mapping to a
+ * float value (e.g. InstanceSize.EXTRA_SMALL = scaling_factor(0.1))
+ * @type float $scaling_factor
+ * Scaling factor, increments of 0.1 for values less than 1.0, and
+ * increments of 1.0 for values greater than 1.0.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * An enum of readable instance sizes, with each instance size mapping to a
+ * float value (e.g. InstanceSize.EXTRA_SMALL = scaling_factor(0.1))
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.ScalingConfig.InstanceSize instance_size = 1;
+ * @return int
+ */
+ public function getInstanceSize()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasInstanceSize()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * An enum of readable instance sizes, with each instance size mapping to a
+ * float value (e.g. InstanceSize.EXTRA_SMALL = scaling_factor(0.1))
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.ScalingConfig.InstanceSize instance_size = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setInstanceSize($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1alpha\ScalingConfig\InstanceSize::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Scaling factor, increments of 0.1 for values less than 1.0, and
+ * increments of 1.0 for values greater than 1.0.
+ *
+ * Generated from protobuf field float scaling_factor = 2;
+ * @return float
+ */
+ public function getScalingFactor()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasScalingFactor()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Scaling factor, increments of 0.1 for values less than 1.0, and
+ * increments of 1.0 for values greater than 1.0.
+ *
+ * Generated from protobuf field float scaling_factor = 2;
+ * @param float $var
+ * @return $this
+ */
+ public function setScalingFactor($var)
+ {
+ GPBUtil::checkFloat($var);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getScalingModel()
+ {
+ return $this->whichOneof("scaling_model");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ScalingConfig/InstanceSize.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ScalingConfig/InstanceSize.php
new file mode 100644
index 000000000000..1b7ccfc5dfe0
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ScalingConfig/InstanceSize.php
@@ -0,0 +1,85 @@
+google.cloud.metastore.v1alpha.ScalingConfig.InstanceSize
+ */
+class InstanceSize
+{
+ /**
+ * Unspecified instance size
+ *
+ * Generated from protobuf enum INSTANCE_SIZE_UNSPECIFIED = 0;
+ */
+ const INSTANCE_SIZE_UNSPECIFIED = 0;
+ /**
+ * Extra small instance size, maps to a scaling factor of 0.1.
+ *
+ * Generated from protobuf enum EXTRA_SMALL = 1;
+ */
+ const EXTRA_SMALL = 1;
+ /**
+ * Small instance size, maps to a scaling factor of 0.5.
+ *
+ * Generated from protobuf enum SMALL = 2;
+ */
+ const SMALL = 2;
+ /**
+ * Medium instance size, maps to a scaling factor of 1.0.
+ *
+ * Generated from protobuf enum MEDIUM = 3;
+ */
+ const MEDIUM = 3;
+ /**
+ * Large instance size, maps to a scaling factor of 3.0.
+ *
+ * Generated from protobuf enum LARGE = 4;
+ */
+ const LARGE = 4;
+ /**
+ * Extra large instance size, maps to a scaling factor of 6.0.
+ *
+ * Generated from protobuf enum EXTRA_LARGE = 5;
+ */
+ const EXTRA_LARGE = 5;
+
+ private static $valueToName = [
+ self::INSTANCE_SIZE_UNSPECIFIED => 'INSTANCE_SIZE_UNSPECIFIED',
+ self::EXTRA_SMALL => 'EXTRA_SMALL',
+ self::SMALL => 'SMALL',
+ self::MEDIUM => 'MEDIUM',
+ self::LARGE => 'LARGE',
+ self::EXTRA_LARGE => 'EXTRA_LARGE',
+ ];
+
+ 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(InstanceSize::class, \Google\Cloud\Metastore\V1alpha\ScalingConfig_InstanceSize::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ScalingConfig_InstanceSize.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ScalingConfig_InstanceSize.php
new file mode 100644
index 000000000000..3307317e6840
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/ScalingConfig_InstanceSize.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1alpha.Secret
+ */
+class Secret extends \Google\Protobuf\Internal\Message
+{
+ protected $value;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $cloud_secret
+ * The relative resource name of a Secret Manager secret version, in the
+ * following form:
+ * `projects/{project_number}/secrets/{secret_id}/versions/{version_id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The relative resource name of a Secret Manager secret version, in the
+ * following form:
+ * `projects/{project_number}/secrets/{secret_id}/versions/{version_id}`.
+ *
+ * Generated from protobuf field string cloud_secret = 2;
+ * @return string
+ */
+ public function getCloudSecret()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasCloudSecret()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * The relative resource name of a Secret Manager secret version, in the
+ * following form:
+ * `projects/{project_number}/secrets/{secret_id}/versions/{version_id}`.
+ *
+ * Generated from protobuf field string cloud_secret = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setCloudSecret($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getValue()
+ {
+ return $this->whichOneof("value");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Service.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Service.php
new file mode 100644
index 000000000000..7efbade698c0
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Service.php
@@ -0,0 +1,942 @@
+google.cloud.metastore.v1alpha.Service
+ */
+class Service extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Immutable. The relative resource name of the metastore service, in the
+ * following format:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $name = '';
+ /**
+ * Output only. The time when the metastore service 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 metastore service was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * User-defined labels for the metastore service.
+ *
+ * Generated from protobuf field map labels = 4;
+ */
+ private $labels;
+ /**
+ * Immutable. The relative resource name of the VPC network on which the
+ * instance can be accessed. It is specified in the following form:
+ * `projects/{project_number}/global/networks/{network_id}`.
+ *
+ * Generated from protobuf field string network = 7 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ */
+ protected $network = '';
+ /**
+ * Output only. The URI of the endpoint used to access the metastore service.
+ *
+ * Generated from protobuf field string endpoint_uri = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $endpoint_uri = '';
+ /**
+ * The TCP port at which the metastore service is reached. Default: 9083.
+ *
+ * Generated from protobuf field int32 port = 9;
+ */
+ protected $port = 0;
+ /**
+ * Output only. The current state of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Service.State state = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. Additional information about the current state of the
+ * metastore service, if available.
+ *
+ * Generated from protobuf field string state_message = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state_message = '';
+ /**
+ * Output only. A Cloud Storage URI (starting with `gs://`) that specifies
+ * where artifacts related to the metastore service are stored.
+ *
+ * Generated from protobuf field string artifact_gcs_uri = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $artifact_gcs_uri = '';
+ /**
+ * The tier of the service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Service.Tier tier = 13;
+ */
+ protected $tier = 0;
+ /**
+ * The setting that defines how metastore metadata should be integrated with
+ * external services and systems.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.MetadataIntegration metadata_integration = 14;
+ */
+ protected $metadata_integration = null;
+ /**
+ * The one hour maintenance window of the metastore service. This specifies
+ * when the service can be restarted for maintenance purposes in UTC time.
+ * Maintenance window is not needed for services with the SPANNER
+ * database type.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.MaintenanceWindow maintenance_window = 15;
+ */
+ protected $maintenance_window = null;
+ /**
+ * Output only. The globally unique resource identifier of the metastore
+ * service.
+ *
+ * Generated from protobuf field string uid = 16 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $uid = '';
+ /**
+ * Output only. The metadata management activities of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.MetadataManagementActivity metadata_management_activity = 17 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $metadata_management_activity = null;
+ /**
+ * Immutable. The release channel of the service.
+ * If unspecified, defaults to `STABLE`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Service.ReleaseChannel release_channel = 19 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $release_channel = 0;
+ /**
+ * Immutable. Information used to configure the Dataproc Metastore service to
+ * encrypt customer data at rest. Cannot be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.EncryptionConfig encryption_config = 20 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $encryption_config = null;
+ /**
+ * The configuration specifying the network settings for the
+ * Dataproc Metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.NetworkConfig network_config = 21;
+ */
+ protected $network_config = null;
+ /**
+ * Immutable. The database type that the Metastore service stores its data.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Service.DatabaseType database_type = 22 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $database_type = 0;
+ /**
+ * The configuration specifying telemetry settings for the Dataproc Metastore
+ * service. If unspecified defaults to `JSON`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.TelemetryConfig telemetry_config = 23;
+ */
+ protected $telemetry_config = null;
+ /**
+ * Scaling configuration of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.ScalingConfig scaling_config = 24;
+ */
+ protected $scaling_config = null;
+ protected $metastore_config;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Metastore\V1alpha\HiveMetastoreConfig $hive_metastore_config
+ * Configuration information specific to running Hive metastore
+ * software as the metastore service.
+ * @type string $name
+ * Immutable. The relative resource name of the metastore service, in the
+ * following format:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time when the metastore service was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The time when the metastore service was last updated.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * User-defined labels for the metastore service.
+ * @type string $network
+ * Immutable. The relative resource name of the VPC network on which the
+ * instance can be accessed. It is specified in the following form:
+ * `projects/{project_number}/global/networks/{network_id}`.
+ * @type string $endpoint_uri
+ * Output only. The URI of the endpoint used to access the metastore service.
+ * @type int $port
+ * The TCP port at which the metastore service is reached. Default: 9083.
+ * @type int $state
+ * Output only. The current state of the metastore service.
+ * @type string $state_message
+ * Output only. Additional information about the current state of the
+ * metastore service, if available.
+ * @type string $artifact_gcs_uri
+ * Output only. A Cloud Storage URI (starting with `gs://`) that specifies
+ * where artifacts related to the metastore service are stored.
+ * @type int $tier
+ * The tier of the service.
+ * @type \Google\Cloud\Metastore\V1alpha\MetadataIntegration $metadata_integration
+ * The setting that defines how metastore metadata should be integrated with
+ * external services and systems.
+ * @type \Google\Cloud\Metastore\V1alpha\MaintenanceWindow $maintenance_window
+ * The one hour maintenance window of the metastore service. This specifies
+ * when the service can be restarted for maintenance purposes in UTC time.
+ * Maintenance window is not needed for services with the SPANNER
+ * database type.
+ * @type string $uid
+ * Output only. The globally unique resource identifier of the metastore
+ * service.
+ * @type \Google\Cloud\Metastore\V1alpha\MetadataManagementActivity $metadata_management_activity
+ * Output only. The metadata management activities of the metastore service.
+ * @type int $release_channel
+ * Immutable. The release channel of the service.
+ * If unspecified, defaults to `STABLE`.
+ * @type \Google\Cloud\Metastore\V1alpha\EncryptionConfig $encryption_config
+ * Immutable. Information used to configure the Dataproc Metastore service to
+ * encrypt customer data at rest. Cannot be updated.
+ * @type \Google\Cloud\Metastore\V1alpha\NetworkConfig $network_config
+ * The configuration specifying the network settings for the
+ * Dataproc Metastore service.
+ * @type int $database_type
+ * Immutable. The database type that the Metastore service stores its data.
+ * @type \Google\Cloud\Metastore\V1alpha\TelemetryConfig $telemetry_config
+ * The configuration specifying telemetry settings for the Dataproc Metastore
+ * service. If unspecified defaults to `JSON`.
+ * @type \Google\Cloud\Metastore\V1alpha\ScalingConfig $scaling_config
+ * Scaling configuration of the metastore service.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Configuration information specific to running Hive metastore
+ * software as the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.HiveMetastoreConfig hive_metastore_config = 5;
+ * @return \Google\Cloud\Metastore\V1alpha\HiveMetastoreConfig|null
+ */
+ public function getHiveMetastoreConfig()
+ {
+ return $this->readOneof(5);
+ }
+
+ public function hasHiveMetastoreConfig()
+ {
+ return $this->hasOneof(5);
+ }
+
+ /**
+ * Configuration information specific to running Hive metastore
+ * software as the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.HiveMetastoreConfig hive_metastore_config = 5;
+ * @param \Google\Cloud\Metastore\V1alpha\HiveMetastoreConfig $var
+ * @return $this
+ */
+ public function setHiveMetastoreConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1alpha\HiveMetastoreConfig::class);
+ $this->writeOneof(5, $var);
+
+ return $this;
+ }
+
+ /**
+ * Immutable. The relative resource name of the metastore service, in the
+ * following format:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Immutable. The relative resource name of the metastore service, in the
+ * following format:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the metastore service 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 metastore service 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 metastore service 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 metastore service 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-defined labels for the metastore service.
+ *
+ * Generated from protobuf field map labels = 4;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * User-defined labels for the metastore service.
+ *
+ * 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;
+ }
+
+ /**
+ * Immutable. The relative resource name of the VPC network on which the
+ * instance can be accessed. It is specified in the following form:
+ * `projects/{project_number}/global/networks/{network_id}`.
+ *
+ * Generated from protobuf field string network = 7 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getNetwork()
+ {
+ return $this->network;
+ }
+
+ /**
+ * Immutable. The relative resource name of the VPC network on which the
+ * instance can be accessed. It is specified in the following form:
+ * `projects/{project_number}/global/networks/{network_id}`.
+ *
+ * Generated from protobuf field string network = 7 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setNetwork($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->network = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The URI of the endpoint used to access the metastore service.
+ *
+ * Generated from protobuf field string endpoint_uri = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getEndpointUri()
+ {
+ return $this->endpoint_uri;
+ }
+
+ /**
+ * Output only. The URI of the endpoint used to access the metastore service.
+ *
+ * Generated from protobuf field string endpoint_uri = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setEndpointUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->endpoint_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * The TCP port at which the metastore service is reached. Default: 9083.
+ *
+ * Generated from protobuf field int32 port = 9;
+ * @return int
+ */
+ public function getPort()
+ {
+ return $this->port;
+ }
+
+ /**
+ * The TCP port at which the metastore service is reached. Default: 9083.
+ *
+ * Generated from protobuf field int32 port = 9;
+ * @param int $var
+ * @return $this
+ */
+ public function setPort($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->port = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The current state of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Service.State state = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The current state of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Service.State state = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1alpha\Service\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Additional information about the current state of the
+ * metastore service, if available.
+ *
+ * Generated from protobuf field string state_message = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getStateMessage()
+ {
+ return $this->state_message;
+ }
+
+ /**
+ * Output only. Additional information about the current state of the
+ * metastore service, if available.
+ *
+ * Generated from protobuf field string state_message = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setStateMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->state_message = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. A Cloud Storage URI (starting with `gs://`) that specifies
+ * where artifacts related to the metastore service are stored.
+ *
+ * Generated from protobuf field string artifact_gcs_uri = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getArtifactGcsUri()
+ {
+ return $this->artifact_gcs_uri;
+ }
+
+ /**
+ * Output only. A Cloud Storage URI (starting with `gs://`) that specifies
+ * where artifacts related to the metastore service are stored.
+ *
+ * Generated from protobuf field string artifact_gcs_uri = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setArtifactGcsUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->artifact_gcs_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * The tier of the service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Service.Tier tier = 13;
+ * @return int
+ */
+ public function getTier()
+ {
+ return $this->tier;
+ }
+
+ /**
+ * The tier of the service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Service.Tier tier = 13;
+ * @param int $var
+ * @return $this
+ */
+ public function setTier($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1alpha\Service\Tier::class);
+ $this->tier = $var;
+
+ return $this;
+ }
+
+ /**
+ * The setting that defines how metastore metadata should be integrated with
+ * external services and systems.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.MetadataIntegration metadata_integration = 14;
+ * @return \Google\Cloud\Metastore\V1alpha\MetadataIntegration|null
+ */
+ public function getMetadataIntegration()
+ {
+ return $this->metadata_integration;
+ }
+
+ public function hasMetadataIntegration()
+ {
+ return isset($this->metadata_integration);
+ }
+
+ public function clearMetadataIntegration()
+ {
+ unset($this->metadata_integration);
+ }
+
+ /**
+ * The setting that defines how metastore metadata should be integrated with
+ * external services and systems.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.MetadataIntegration metadata_integration = 14;
+ * @param \Google\Cloud\Metastore\V1alpha\MetadataIntegration $var
+ * @return $this
+ */
+ public function setMetadataIntegration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1alpha\MetadataIntegration::class);
+ $this->metadata_integration = $var;
+
+ return $this;
+ }
+
+ /**
+ * The one hour maintenance window of the metastore service. This specifies
+ * when the service can be restarted for maintenance purposes in UTC time.
+ * Maintenance window is not needed for services with the SPANNER
+ * database type.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.MaintenanceWindow maintenance_window = 15;
+ * @return \Google\Cloud\Metastore\V1alpha\MaintenanceWindow|null
+ */
+ public function getMaintenanceWindow()
+ {
+ return $this->maintenance_window;
+ }
+
+ public function hasMaintenanceWindow()
+ {
+ return isset($this->maintenance_window);
+ }
+
+ public function clearMaintenanceWindow()
+ {
+ unset($this->maintenance_window);
+ }
+
+ /**
+ * The one hour maintenance window of the metastore service. This specifies
+ * when the service can be restarted for maintenance purposes in UTC time.
+ * Maintenance window is not needed for services with the SPANNER
+ * database type.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.MaintenanceWindow maintenance_window = 15;
+ * @param \Google\Cloud\Metastore\V1alpha\MaintenanceWindow $var
+ * @return $this
+ */
+ public function setMaintenanceWindow($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1alpha\MaintenanceWindow::class);
+ $this->maintenance_window = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The globally unique resource identifier of the metastore
+ * service.
+ *
+ * Generated from protobuf field string uid = 16 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getUid()
+ {
+ return $this->uid;
+ }
+
+ /**
+ * Output only. The globally unique resource identifier of the metastore
+ * service.
+ *
+ * Generated from protobuf field string uid = 16 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setUid($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uid = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The metadata management activities of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.MetadataManagementActivity metadata_management_activity = 17 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Metastore\V1alpha\MetadataManagementActivity|null
+ */
+ public function getMetadataManagementActivity()
+ {
+ return $this->metadata_management_activity;
+ }
+
+ public function hasMetadataManagementActivity()
+ {
+ return isset($this->metadata_management_activity);
+ }
+
+ public function clearMetadataManagementActivity()
+ {
+ unset($this->metadata_management_activity);
+ }
+
+ /**
+ * Output only. The metadata management activities of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.MetadataManagementActivity metadata_management_activity = 17 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Metastore\V1alpha\MetadataManagementActivity $var
+ * @return $this
+ */
+ public function setMetadataManagementActivity($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1alpha\MetadataManagementActivity::class);
+ $this->metadata_management_activity = $var;
+
+ return $this;
+ }
+
+ /**
+ * Immutable. The release channel of the service.
+ * If unspecified, defaults to `STABLE`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Service.ReleaseChannel release_channel = 19 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return int
+ */
+ public function getReleaseChannel()
+ {
+ return $this->release_channel;
+ }
+
+ /**
+ * Immutable. The release channel of the service.
+ * If unspecified, defaults to `STABLE`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Service.ReleaseChannel release_channel = 19 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param int $var
+ * @return $this
+ */
+ public function setReleaseChannel($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1alpha\Service\ReleaseChannel::class);
+ $this->release_channel = $var;
+
+ return $this;
+ }
+
+ /**
+ * Immutable. Information used to configure the Dataproc Metastore service to
+ * encrypt customer data at rest. Cannot be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.EncryptionConfig encryption_config = 20 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return \Google\Cloud\Metastore\V1alpha\EncryptionConfig|null
+ */
+ public function getEncryptionConfig()
+ {
+ return $this->encryption_config;
+ }
+
+ public function hasEncryptionConfig()
+ {
+ return isset($this->encryption_config);
+ }
+
+ public function clearEncryptionConfig()
+ {
+ unset($this->encryption_config);
+ }
+
+ /**
+ * Immutable. Information used to configure the Dataproc Metastore service to
+ * encrypt customer data at rest. Cannot be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.EncryptionConfig encryption_config = 20 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param \Google\Cloud\Metastore\V1alpha\EncryptionConfig $var
+ * @return $this
+ */
+ public function setEncryptionConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1alpha\EncryptionConfig::class);
+ $this->encryption_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The configuration specifying the network settings for the
+ * Dataproc Metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.NetworkConfig network_config = 21;
+ * @return \Google\Cloud\Metastore\V1alpha\NetworkConfig|null
+ */
+ public function getNetworkConfig()
+ {
+ return $this->network_config;
+ }
+
+ public function hasNetworkConfig()
+ {
+ return isset($this->network_config);
+ }
+
+ public function clearNetworkConfig()
+ {
+ unset($this->network_config);
+ }
+
+ /**
+ * The configuration specifying the network settings for the
+ * Dataproc Metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.NetworkConfig network_config = 21;
+ * @param \Google\Cloud\Metastore\V1alpha\NetworkConfig $var
+ * @return $this
+ */
+ public function setNetworkConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1alpha\NetworkConfig::class);
+ $this->network_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Immutable. The database type that the Metastore service stores its data.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Service.DatabaseType database_type = 22 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return int
+ */
+ public function getDatabaseType()
+ {
+ return $this->database_type;
+ }
+
+ /**
+ * Immutable. The database type that the Metastore service stores its data.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Service.DatabaseType database_type = 22 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param int $var
+ * @return $this
+ */
+ public function setDatabaseType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1alpha\Service\DatabaseType::class);
+ $this->database_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * The configuration specifying telemetry settings for the Dataproc Metastore
+ * service. If unspecified defaults to `JSON`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.TelemetryConfig telemetry_config = 23;
+ * @return \Google\Cloud\Metastore\V1alpha\TelemetryConfig|null
+ */
+ public function getTelemetryConfig()
+ {
+ return $this->telemetry_config;
+ }
+
+ public function hasTelemetryConfig()
+ {
+ return isset($this->telemetry_config);
+ }
+
+ public function clearTelemetryConfig()
+ {
+ unset($this->telemetry_config);
+ }
+
+ /**
+ * The configuration specifying telemetry settings for the Dataproc Metastore
+ * service. If unspecified defaults to `JSON`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.TelemetryConfig telemetry_config = 23;
+ * @param \Google\Cloud\Metastore\V1alpha\TelemetryConfig $var
+ * @return $this
+ */
+ public function setTelemetryConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1alpha\TelemetryConfig::class);
+ $this->telemetry_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Scaling configuration of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.ScalingConfig scaling_config = 24;
+ * @return \Google\Cloud\Metastore\V1alpha\ScalingConfig|null
+ */
+ public function getScalingConfig()
+ {
+ return $this->scaling_config;
+ }
+
+ public function hasScalingConfig()
+ {
+ return isset($this->scaling_config);
+ }
+
+ public function clearScalingConfig()
+ {
+ unset($this->scaling_config);
+ }
+
+ /**
+ * Scaling configuration of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.ScalingConfig scaling_config = 24;
+ * @param \Google\Cloud\Metastore\V1alpha\ScalingConfig $var
+ * @return $this
+ */
+ public function setScalingConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1alpha\ScalingConfig::class);
+ $this->scaling_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getMetastoreConfig()
+ {
+ return $this->whichOneof("metastore_config");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Service/DatabaseType.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Service/DatabaseType.php
new file mode 100644
index 000000000000..af3d2b8bc594
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Service/DatabaseType.php
@@ -0,0 +1,64 @@
+google.cloud.metastore.v1alpha.Service.DatabaseType
+ */
+class DatabaseType
+{
+ /**
+ * The DATABASE_TYPE is not set.
+ *
+ * Generated from protobuf enum DATABASE_TYPE_UNSPECIFIED = 0;
+ */
+ const DATABASE_TYPE_UNSPECIFIED = 0;
+ /**
+ * MySQL is used to persist the metastore data.
+ *
+ * Generated from protobuf enum MYSQL = 1;
+ */
+ const MYSQL = 1;
+ /**
+ * Spanner is used to persist the metastore data.
+ *
+ * Generated from protobuf enum SPANNER = 2;
+ */
+ const SPANNER = 2;
+
+ private static $valueToName = [
+ self::DATABASE_TYPE_UNSPECIFIED => 'DATABASE_TYPE_UNSPECIFIED',
+ self::MYSQL => 'MYSQL',
+ self::SPANNER => 'SPANNER',
+ ];
+
+ 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(DatabaseType::class, \Google\Cloud\Metastore\V1alpha\Service_DatabaseType::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Service/ReleaseChannel.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Service/ReleaseChannel.php
new file mode 100644
index 000000000000..5bc9f8664adb
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Service/ReleaseChannel.php
@@ -0,0 +1,69 @@
+google.cloud.metastore.v1alpha.Service.ReleaseChannel
+ */
+class ReleaseChannel
+{
+ /**
+ * Release channel is not specified.
+ *
+ * Generated from protobuf enum RELEASE_CHANNEL_UNSPECIFIED = 0;
+ */
+ const RELEASE_CHANNEL_UNSPECIFIED = 0;
+ /**
+ * The `CANARY` release channel contains the newest features, which may be
+ * unstable and subject to unresolved issues with no known workarounds.
+ * Services using the `CANARY` release channel are not subject to any SLAs.
+ *
+ * Generated from protobuf enum CANARY = 1;
+ */
+ const CANARY = 1;
+ /**
+ * The `STABLE` release channel contains features that are considered stable
+ * and have been validated for production use.
+ *
+ * Generated from protobuf enum STABLE = 2;
+ */
+ const STABLE = 2;
+
+ private static $valueToName = [
+ self::RELEASE_CHANNEL_UNSPECIFIED => 'RELEASE_CHANNEL_UNSPECIFIED',
+ self::CANARY => 'CANARY',
+ self::STABLE => 'STABLE',
+ ];
+
+ 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(ReleaseChannel::class, \Google\Cloud\Metastore\V1alpha\Service_ReleaseChannel::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Service/State.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Service/State.php
new file mode 100644
index 000000000000..ccf6ccae3a0e
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Service/State.php
@@ -0,0 +1,102 @@
+google.cloud.metastore.v1alpha.Service.State
+ */
+class State
+{
+ /**
+ * The state of the metastore service is unknown.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The metastore service is in the process of being created.
+ *
+ * Generated from protobuf enum CREATING = 1;
+ */
+ const CREATING = 1;
+ /**
+ * The metastore service is running and ready to serve queries.
+ *
+ * Generated from protobuf enum ACTIVE = 2;
+ */
+ const ACTIVE = 2;
+ /**
+ * The metastore service is entering suspension. Its query-serving
+ * availability may cease unexpectedly.
+ *
+ * Generated from protobuf enum SUSPENDING = 3;
+ */
+ const SUSPENDING = 3;
+ /**
+ * The metastore service is suspended and unable to serve queries.
+ *
+ * Generated from protobuf enum SUSPENDED = 4;
+ */
+ const SUSPENDED = 4;
+ /**
+ * The metastore service is being updated. It remains usable but cannot
+ * accept additional update requests or be deleted at this time.
+ *
+ * Generated from protobuf enum UPDATING = 5;
+ */
+ const UPDATING = 5;
+ /**
+ * The metastore service is undergoing deletion. It cannot be used.
+ *
+ * Generated from protobuf enum DELETING = 6;
+ */
+ const DELETING = 6;
+ /**
+ * The metastore service has encountered an error and cannot be used. The
+ * metastore service should be deleted.
+ *
+ * Generated from protobuf enum ERROR = 7;
+ */
+ const ERROR = 7;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::CREATING => 'CREATING',
+ self::ACTIVE => 'ACTIVE',
+ self::SUSPENDING => 'SUSPENDING',
+ self::SUSPENDED => 'SUSPENDED',
+ self::UPDATING => 'UPDATING',
+ self::DELETING => 'DELETING',
+ self::ERROR => 'ERROR',
+ ];
+
+ 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\Metastore\V1alpha\Service_State::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Service/Tier.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Service/Tier.php
new file mode 100644
index 000000000000..83e8f852b49e
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Service/Tier.php
@@ -0,0 +1,66 @@
+google.cloud.metastore.v1alpha.Service.Tier
+ */
+class Tier
+{
+ /**
+ * The tier is not set.
+ *
+ * Generated from protobuf enum TIER_UNSPECIFIED = 0;
+ */
+ const TIER_UNSPECIFIED = 0;
+ /**
+ * The developer tier provides limited scalability and no fault tolerance.
+ * Good for low-cost proof-of-concept.
+ *
+ * Generated from protobuf enum DEVELOPER = 1;
+ */
+ const DEVELOPER = 1;
+ /**
+ * The enterprise tier provides multi-zone high availability, and sufficient
+ * scalability for enterprise-level Dataproc Metastore workloads.
+ *
+ * Generated from protobuf enum ENTERPRISE = 3;
+ */
+ const ENTERPRISE = 3;
+
+ private static $valueToName = [
+ self::TIER_UNSPECIFIED => 'TIER_UNSPECIFIED',
+ self::DEVELOPER => 'DEVELOPER',
+ self::ENTERPRISE => 'ENTERPRISE',
+ ];
+
+ 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(Tier::class, \Google\Cloud\Metastore\V1alpha\Service_Tier::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Service_DatabaseType.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Service_DatabaseType.php
new file mode 100644
index 000000000000..1bfb965957d9
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/Service_DatabaseType.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1alpha.TelemetryConfig
+ */
+class TelemetryConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The output format of the Dataproc Metastore service's logs.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.TelemetryConfig.LogFormat log_format = 1;
+ */
+ protected $log_format = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $log_format
+ * The output format of the Dataproc Metastore service's logs.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The output format of the Dataproc Metastore service's logs.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.TelemetryConfig.LogFormat log_format = 1;
+ * @return int
+ */
+ public function getLogFormat()
+ {
+ return $this->log_format;
+ }
+
+ /**
+ * The output format of the Dataproc Metastore service's logs.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.TelemetryConfig.LogFormat log_format = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setLogFormat($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1alpha\TelemetryConfig\LogFormat::class);
+ $this->log_format = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/TelemetryConfig/LogFormat.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/TelemetryConfig/LogFormat.php
new file mode 100644
index 000000000000..e1ea20ce4cc9
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/TelemetryConfig/LogFormat.php
@@ -0,0 +1,62 @@
+google.cloud.metastore.v1alpha.TelemetryConfig.LogFormat
+ */
+class LogFormat
+{
+ /**
+ * The LOG_FORMAT is not set.
+ *
+ * Generated from protobuf enum LOG_FORMAT_UNSPECIFIED = 0;
+ */
+ const LOG_FORMAT_UNSPECIFIED = 0;
+ /**
+ * Logging output uses the legacy `textPayload` format.
+ *
+ * Generated from protobuf enum LEGACY = 1;
+ */
+ const LEGACY = 1;
+ /**
+ * Logging output uses the `jsonPayload` format.
+ *
+ * Generated from protobuf enum JSON = 2;
+ */
+ const JSON = 2;
+
+ private static $valueToName = [
+ self::LOG_FORMAT_UNSPECIFIED => 'LOG_FORMAT_UNSPECIFIED',
+ self::LEGACY => 'LEGACY',
+ self::JSON => 'JSON',
+ ];
+
+ 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(LogFormat::class, \Google\Cloud\Metastore\V1alpha\TelemetryConfig_LogFormat::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/TelemetryConfig_LogFormat.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/TelemetryConfig_LogFormat.php
new file mode 100644
index 000000000000..374e3961c1ea
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/TelemetryConfig_LogFormat.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1alpha.UpdateFederationRequest
+ */
+class UpdateFederationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metastore federation resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. The metastore federation to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ * The metastore federation's `name` field is used to identify the
+ * metastore service to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Federation federation = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $federation = null;
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metastore federation resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ * @type \Google\Cloud\Metastore\V1alpha\Federation $federation
+ * Required. The metastore federation to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ * The metastore federation's `name` field is used to identify the
+ * metastore service to be updated.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\MetastoreFederation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metastore federation resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * 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. A field mask used to specify the fields to be overwritten in the
+ * metastore federation resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * 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 metastore federation to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ * The metastore federation's `name` field is used to identify the
+ * metastore service to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Federation federation = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Metastore\V1alpha\Federation|null
+ */
+ public function getFederation()
+ {
+ return $this->federation;
+ }
+
+ public function hasFederation()
+ {
+ return isset($this->federation);
+ }
+
+ public function clearFederation()
+ {
+ unset($this->federation);
+ }
+
+ /**
+ * Required. The metastore federation to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ * The metastore federation's `name` field is used to identify the
+ * metastore service to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Federation federation = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Metastore\V1alpha\Federation $var
+ * @return $this
+ */
+ public function setFederation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1alpha\Federation::class);
+ $this->federation = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/UpdateMetadataImportRequest.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/UpdateMetadataImportRequest.php
new file mode 100644
index 000000000000..a61c5e3fb348
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/UpdateMetadataImportRequest.php
@@ -0,0 +1,216 @@
+google.cloud.metastore.v1alpha.UpdateMetadataImportRequest
+ */
+class UpdateMetadataImportRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metadata import resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. The metadata import to update. The server only merges fields
+ * in the import if they are specified in `update_mask`.
+ * The metadata import's `name` field is used to identify the metastore
+ * import to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.MetadataImport metadata_import = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $metadata_import = null;
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metadata import resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ * @type \Google\Cloud\Metastore\V1alpha\MetadataImport $metadata_import
+ * Required. The metadata import to update. The server only merges fields
+ * in the import if they are specified in `update_mask`.
+ * The metadata import's `name` field is used to identify the metastore
+ * import to be updated.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metadata import resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * 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. A field mask used to specify the fields to be overwritten in the
+ * metadata import resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * 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 metadata import to update. The server only merges fields
+ * in the import if they are specified in `update_mask`.
+ * The metadata import's `name` field is used to identify the metastore
+ * import to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.MetadataImport metadata_import = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Metastore\V1alpha\MetadataImport|null
+ */
+ public function getMetadataImport()
+ {
+ return $this->metadata_import;
+ }
+
+ public function hasMetadataImport()
+ {
+ return isset($this->metadata_import);
+ }
+
+ public function clearMetadataImport()
+ {
+ unset($this->metadata_import);
+ }
+
+ /**
+ * Required. The metadata import to update. The server only merges fields
+ * in the import if they are specified in `update_mask`.
+ * The metadata import's `name` field is used to identify the metastore
+ * import to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.MetadataImport metadata_import = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Metastore\V1alpha\MetadataImport $var
+ * @return $this
+ */
+ public function setMetadataImport($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1alpha\MetadataImport::class);
+ $this->metadata_import = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/UpdateServiceRequest.php b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/UpdateServiceRequest.php
new file mode 100644
index 000000000000..28939877147e
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/proto/src/Google/Cloud/Metastore/V1alpha/UpdateServiceRequest.php
@@ -0,0 +1,216 @@
+google.cloud.metastore.v1alpha.UpdateServiceRequest
+ */
+class UpdateServiceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metastore service resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. The metastore service to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ * The metastore service's `name` field is used to identify the metastore
+ * service to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Service service = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $service = null;
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metastore service resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ * @type \Google\Cloud\Metastore\V1alpha\Service $service
+ * Required. The metastore service to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ * The metastore service's `name` field is used to identify the metastore
+ * service to be updated.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Alpha\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metastore service resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * 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. A field mask used to specify the fields to be overwritten in the
+ * metastore service resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * 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 metastore service to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ * The metastore service's `name` field is used to identify the metastore
+ * service to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Service service = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Metastore\V1alpha\Service|null
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ public function hasService()
+ {
+ return isset($this->service);
+ }
+
+ public function clearService()
+ {
+ unset($this->service);
+ }
+
+ /**
+ * Required. The metastore service to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ * The metastore service's `name` field is used to identify the metastore
+ * service to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1alpha.Service service = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Metastore\V1alpha\Service $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1alpha\Service::class);
+ $this->service = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/alter_metadata_resource_location.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/alter_metadata_resource_location.php
new file mode 100644
index 000000000000..6482f4c513e8
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/alter_metadata_resource_location.php
@@ -0,0 +1,101 @@
+alterMetadataResourceLocation(
+ $formattedService,
+ $resourceName,
+ $locationUri
+ );
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var AlterMetadataResourceLocationResponse $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
+{
+ $formattedService = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $resourceName = '[RESOURCE_NAME]';
+ $locationUri = '[LOCATION_URI]';
+
+ alter_metadata_resource_location_sample($formattedService, $resourceName, $locationUri);
+}
+// [END metastore_v1alpha_generated_DataprocMetastore_AlterMetadataResourceLocation_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/create_backup.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/create_backup.php
new file mode 100644
index 000000000000..ff3dfcf7af1c
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/create_backup.php
@@ -0,0 +1,91 @@
+createBackup($formattedParent, $backupId, $backup);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Backup $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 = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $backupId = '[BACKUP_ID]';
+
+ create_backup_sample($formattedParent, $backupId);
+}
+// [END metastore_v1alpha_generated_DataprocMetastore_CreateBackup_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/create_metadata_import.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/create_metadata_import.php
new file mode 100644
index 000000000000..f0bea08b4c22
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/create_metadata_import.php
@@ -0,0 +1,95 @@
+createMetadataImport(
+ $formattedParent,
+ $metadataImportId,
+ $metadataImport
+ );
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var MetadataImport $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 = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $metadataImportId = '[METADATA_IMPORT_ID]';
+
+ create_metadata_import_sample($formattedParent, $metadataImportId);
+}
+// [END metastore_v1alpha_generated_DataprocMetastore_CreateMetadataImport_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/create_service.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/create_service.php
new file mode 100644
index 000000000000..4d71d85dd4b9
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/create_service.php
@@ -0,0 +1,91 @@
+createService($formattedParent, $serviceId, $service);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Service $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 = DataprocMetastoreClient::locationName('[PROJECT]', '[LOCATION]');
+ $serviceId = '[SERVICE_ID]';
+
+ create_service_sample($formattedParent, $serviceId);
+}
+// [END metastore_v1alpha_generated_DataprocMetastore_CreateService_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/delete_backup.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/delete_backup.php
new file mode 100644
index 000000000000..75a46a3f89c6
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/delete_backup.php
@@ -0,0 +1,83 @@
+deleteBackup($formattedName);
+ $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 = DataprocMetastoreClient::backupName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[SERVICE]',
+ '[BACKUP]'
+ );
+
+ delete_backup_sample($formattedName);
+}
+// [END metastore_v1alpha_generated_DataprocMetastore_DeleteBackup_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/delete_service.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/delete_service.php
new file mode 100644
index 000000000000..b012821c0046
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/delete_service.php
@@ -0,0 +1,78 @@
+deleteService($formattedName);
+ $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 = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+
+ delete_service_sample($formattedName);
+}
+// [END metastore_v1alpha_generated_DataprocMetastore_DeleteService_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/export_metadata.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/export_metadata.php
new file mode 100644
index 000000000000..757b1d9cbe04
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/export_metadata.php
@@ -0,0 +1,81 @@
+exportMetadata($formattedService);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var MetadataExport $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
+{
+ $formattedService = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+
+ export_metadata_sample($formattedService);
+}
+// [END metastore_v1alpha_generated_DataprocMetastore_ExportMetadata_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/get_backup.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/get_backup.php
new file mode 100644
index 000000000000..f8d684d63425
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/get_backup.php
@@ -0,0 +1,74 @@
+getBackup($formattedName);
+ 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 = DataprocMetastoreClient::backupName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[SERVICE]',
+ '[BACKUP]'
+ );
+
+ get_backup_sample($formattedName);
+}
+// [END metastore_v1alpha_generated_DataprocMetastore_GetBackup_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/get_iam_policy.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/get_iam_policy.php
new file mode 100644
index 000000000000..2c15b687582f
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/get_iam_policy.php
@@ -0,0 +1,67 @@
+getIamPolicy($resource);
+ 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
+{
+ $resource = '[RESOURCE]';
+
+ get_iam_policy_sample($resource);
+}
+// [END metastore_v1alpha_generated_DataprocMetastore_GetIamPolicy_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/get_location.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/get_location.php
new file mode 100644
index 000000000000..128815a834e6
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/get_location.php
@@ -0,0 +1,53 @@
+getLocation();
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END metastore_v1alpha_generated_DataprocMetastore_GetLocation_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/get_metadata_import.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/get_metadata_import.php
new file mode 100644
index 000000000000..f489bb0cf022
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/get_metadata_import.php
@@ -0,0 +1,74 @@
+getMetadataImport($formattedName);
+ 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 = DataprocMetastoreClient::metadataImportName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[SERVICE]',
+ '[METADATA_IMPORT]'
+ );
+
+ get_metadata_import_sample($formattedName);
+}
+// [END metastore_v1alpha_generated_DataprocMetastore_GetMetadataImport_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/get_service.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/get_service.php
new file mode 100644
index 000000000000..16c8885857dd
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/get_service.php
@@ -0,0 +1,69 @@
+getService($formattedName);
+ 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 = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+
+ get_service_sample($formattedName);
+}
+// [END metastore_v1alpha_generated_DataprocMetastore_GetService_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/list_backups.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/list_backups.php
new file mode 100644
index 000000000000..44ab79b85591
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/list_backups.php
@@ -0,0 +1,74 @@
+listBackups($formattedParent);
+
+ /** @var Backup $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 = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+
+ list_backups_sample($formattedParent);
+}
+// [END metastore_v1alpha_generated_DataprocMetastore_ListBackups_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/list_locations.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/list_locations.php
new file mode 100644
index 000000000000..b3bb4abb59d0
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/list_locations.php
@@ -0,0 +1,58 @@
+listLocations();
+
+ /** @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 metastore_v1alpha_generated_DataprocMetastore_ListLocations_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/list_metadata_imports.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/list_metadata_imports.php
new file mode 100644
index 000000000000..ac01e4cd0964
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/list_metadata_imports.php
@@ -0,0 +1,74 @@
+listMetadataImports($formattedParent);
+
+ /** @var MetadataImport $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 = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+
+ list_metadata_imports_sample($formattedParent);
+}
+// [END metastore_v1alpha_generated_DataprocMetastore_ListMetadataImports_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/list_services.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/list_services.php
new file mode 100644
index 000000000000..014470d7a8fa
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/list_services.php
@@ -0,0 +1,74 @@
+listServices($formattedParent);
+
+ /** @var Service $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 = DataprocMetastoreClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_services_sample($formattedParent);
+}
+// [END metastore_v1alpha_generated_DataprocMetastore_ListServices_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/move_table_to_database.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/move_table_to_database.php
new file mode 100644
index 000000000000..6c2d78ff5a59
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/move_table_to_database.php
@@ -0,0 +1,96 @@
+moveTableToDatabase(
+ $formattedService,
+ $tableName,
+ $dbName,
+ $destinationDbName
+ );
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var MoveTableToDatabaseResponse $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
+{
+ $formattedService = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $tableName = '[TABLE_NAME]';
+ $dbName = '[DB_NAME]';
+ $destinationDbName = '[DESTINATION_DB_NAME]';
+
+ move_table_to_database_sample($formattedService, $tableName, $dbName, $destinationDbName);
+}
+// [END metastore_v1alpha_generated_DataprocMetastore_MoveTableToDatabase_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/query_metadata.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/query_metadata.php
new file mode 100644
index 000000000000..f55f466aad75
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/query_metadata.php
@@ -0,0 +1,84 @@
+queryMetadata($formattedService, $query);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var QueryMetadataResponse $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
+{
+ $formattedService = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $query = '[QUERY]';
+
+ query_metadata_sample($formattedService, $query);
+}
+// [END metastore_v1alpha_generated_DataprocMetastore_QueryMetadata_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/remove_iam_policy.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/remove_iam_policy.php
new file mode 100644
index 000000000000..329fc9524059
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/remove_iam_policy.php
@@ -0,0 +1,70 @@
+removeIamPolicy($resource);
+ 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
+{
+ $resource = '[RESOURCE]';
+
+ remove_iam_policy_sample($resource);
+}
+// [END metastore_v1alpha_generated_DataprocMetastore_RemoveIamPolicy_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/restore_service.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/restore_service.php
new file mode 100644
index 000000000000..54c95a2295b8
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/restore_service.php
@@ -0,0 +1,92 @@
+restoreService($formattedService, $formattedBackup);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Restore $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
+{
+ $formattedService = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $formattedBackup = DataprocMetastoreClient::backupName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[SERVICE]',
+ '[BACKUP]'
+ );
+
+ restore_service_sample($formattedService, $formattedBackup);
+}
+// [END metastore_v1alpha_generated_DataprocMetastore_RestoreService_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/set_iam_policy.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/set_iam_policy.php
new file mode 100644
index 000000000000..cde1c74042ee
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/set_iam_policy.php
@@ -0,0 +1,73 @@
+setIamPolicy($resource, $policy);
+ 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
+{
+ $resource = '[RESOURCE]';
+
+ set_iam_policy_sample($resource);
+}
+// [END metastore_v1alpha_generated_DataprocMetastore_SetIamPolicy_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/test_iam_permissions.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/test_iam_permissions.php
new file mode 100644
index 000000000000..678f26c8efd2
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/test_iam_permissions.php
@@ -0,0 +1,80 @@
+testIamPermissions($resource, $permissions);
+ 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
+{
+ $resource = '[RESOURCE]';
+ $permissionsElement = '[PERMISSIONS]';
+
+ test_iam_permissions_sample($resource, $permissionsElement);
+}
+// [END metastore_v1alpha_generated_DataprocMetastore_TestIamPermissions_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/update_metadata_import.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/update_metadata_import.php
new file mode 100644
index 000000000000..e22a09546077
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/update_metadata_import.php
@@ -0,0 +1,71 @@
+updateMetadataImport($updateMask, $metadataImport);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var MetadataImport $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 metastore_v1alpha_generated_DataprocMetastore_UpdateMetadataImport_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/update_service.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/update_service.php
new file mode 100644
index 000000000000..6ce02a71b7c9
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreClient/update_service.php
@@ -0,0 +1,70 @@
+updateService($updateMask, $service);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Service $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 metastore_v1alpha_generated_DataprocMetastore_UpdateService_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/create_federation.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/create_federation.php
new file mode 100644
index 000000000000..20bbcf00ef96
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/create_federation.php
@@ -0,0 +1,95 @@
+createFederation(
+ $formattedParent,
+ $federationId,
+ $federation
+ );
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Federation $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 = DataprocMetastoreFederationClient::locationName('[PROJECT]', '[LOCATION]');
+ $federationId = '[FEDERATION_ID]';
+
+ create_federation_sample($formattedParent, $federationId);
+}
+// [END metastore_v1alpha_generated_DataprocMetastoreFederation_CreateFederation_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/delete_federation.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/delete_federation.php
new file mode 100644
index 000000000000..94b03316cead
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/delete_federation.php
@@ -0,0 +1,82 @@
+deleteFederation($formattedName);
+ $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 = DataprocMetastoreFederationClient::federationName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[FEDERATION]'
+ );
+
+ delete_federation_sample($formattedName);
+}
+// [END metastore_v1alpha_generated_DataprocMetastoreFederation_DeleteFederation_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/get_federation.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/get_federation.php
new file mode 100644
index 000000000000..7cc504a9134f
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/get_federation.php
@@ -0,0 +1,73 @@
+getFederation($formattedName);
+ 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 = DataprocMetastoreFederationClient::federationName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[FEDERATION]'
+ );
+
+ get_federation_sample($formattedName);
+}
+// [END metastore_v1alpha_generated_DataprocMetastoreFederation_GetFederation_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/get_iam_policy.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/get_iam_policy.php
new file mode 100644
index 000000000000..59ab8b2073e2
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/get_iam_policy.php
@@ -0,0 +1,67 @@
+getIamPolicy($resource);
+ 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
+{
+ $resource = '[RESOURCE]';
+
+ get_iam_policy_sample($resource);
+}
+// [END metastore_v1alpha_generated_DataprocMetastoreFederation_GetIamPolicy_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/get_location.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/get_location.php
new file mode 100644
index 000000000000..c7d5c2f16f17
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/get_location.php
@@ -0,0 +1,53 @@
+getLocation();
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END metastore_v1alpha_generated_DataprocMetastoreFederation_GetLocation_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/list_federations.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/list_federations.php
new file mode 100644
index 000000000000..446e925c33e5
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/list_federations.php
@@ -0,0 +1,73 @@
+listFederations($formattedParent);
+
+ /** @var Federation $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 = DataprocMetastoreFederationClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_federations_sample($formattedParent);
+}
+// [END metastore_v1alpha_generated_DataprocMetastoreFederation_ListFederations_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/list_locations.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/list_locations.php
new file mode 100644
index 000000000000..0186c9067e10
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/list_locations.php
@@ -0,0 +1,58 @@
+listLocations();
+
+ /** @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 metastore_v1alpha_generated_DataprocMetastoreFederation_ListLocations_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/set_iam_policy.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/set_iam_policy.php
new file mode 100644
index 000000000000..72821d97ce3d
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/set_iam_policy.php
@@ -0,0 +1,73 @@
+setIamPolicy($resource, $policy);
+ 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
+{
+ $resource = '[RESOURCE]';
+
+ set_iam_policy_sample($resource);
+}
+// [END metastore_v1alpha_generated_DataprocMetastoreFederation_SetIamPolicy_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/test_iam_permissions.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/test_iam_permissions.php
new file mode 100644
index 000000000000..a2bcc0e03d4a
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/test_iam_permissions.php
@@ -0,0 +1,80 @@
+testIamPermissions($resource, $permissions);
+ 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
+{
+ $resource = '[RESOURCE]';
+ $permissionsElement = '[PERMISSIONS]';
+
+ test_iam_permissions_sample($resource, $permissionsElement);
+}
+// [END metastore_v1alpha_generated_DataprocMetastoreFederation_TestIamPermissions_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/update_federation.php b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/update_federation.php
new file mode 100644
index 000000000000..96726a7e7ba9
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/samples/V1alpha/DataprocMetastoreFederationClient/update_federation.php
@@ -0,0 +1,70 @@
+updateFederation($updateMask, $federation);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Federation $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 metastore_v1alpha_generated_DataprocMetastoreFederation_UpdateFederation_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/DataprocMetastoreClient.php b/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/DataprocMetastoreClient.php
new file mode 100644
index 000000000000..e668f4ecf4e4
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/DataprocMetastoreClient.php
@@ -0,0 +1,36 @@
+locationName('[PROJECT]', '[LOCATION]');
+ * $federationId = 'federation_id';
+ * $federation = new Federation();
+ * $operationResponse = $dataprocMetastoreFederationClient->createFederation($formattedParent, $federationId, $federation);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreFederationClient->createFederation($formattedParent, $federationId, $federation);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreFederationClient->resumeOperation($operationName, 'createFederation');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * Many parameters require resource names to be formatted in a particular way. To
+ * assist with these names, this class includes a format method for each type of
+ * name, and additionally a parseName method to extract the individual identifiers
+ * contained within formatted names that are returned by the API.
+ *
+ * @experimental
+ */
+class DataprocMetastoreFederationGapicClient
+{
+ use GapicClientTrait;
+
+ /** The name of the service. */
+ const SERVICE_NAME = 'google.cloud.metastore.v1alpha.DataprocMetastoreFederation';
+
+ /** The default address of the service. */
+ const SERVICE_ADDRESS = 'metastore.googleapis.com';
+
+ /** 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 $federationNameTemplate;
+
+ private static $locationNameTemplate;
+
+ private static $pathTemplateMap;
+
+ private $operationsClient;
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/dataproc_metastore_federation_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/dataproc_metastore_federation_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/dataproc_metastore_federation_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/dataproc_metastore_federation_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ private static function getFederationNameTemplate()
+ {
+ if (self::$federationNameTemplate == null) {
+ self::$federationNameTemplate = new PathTemplate('projects/{project}/locations/{location}/federations/{federation}');
+ }
+
+ return self::$federationNameTemplate;
+ }
+
+ private static function getLocationNameTemplate()
+ {
+ if (self::$locationNameTemplate == null) {
+ self::$locationNameTemplate = new PathTemplate('projects/{project}/locations/{location}');
+ }
+
+ return self::$locationNameTemplate;
+ }
+
+ private static function getPathTemplateMap()
+ {
+ if (self::$pathTemplateMap == null) {
+ self::$pathTemplateMap = [
+ 'federation' => self::getFederationNameTemplate(),
+ 'location' => self::getLocationNameTemplate(),
+ ];
+ }
+
+ return self::$pathTemplateMap;
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a federation
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $federation
+ *
+ * @return string The formatted federation resource.
+ *
+ * @experimental
+ */
+ public static function federationName($project, $location, $federation)
+ {
+ return self::getFederationNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'federation' => $federation,
+ ]);
+ }
+
+ /**
+ * 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.
+ *
+ * @experimental
+ */
+ public static function locationName($project, $location)
+ {
+ return self::getLocationNameTemplate()->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
+ * - federation: projects/{project}/locations/{location}/federations/{federation}
+ * - 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.
+ *
+ * @experimental
+ */
+ public static function parseName($formattedName, $template = null)
+ {
+ $templateMap = self::getPathTemplateMap();
+ if ($template) {
+ if (!isset($templateMap[$template])) {
+ throw new ValidationException("Template name $template does not exist");
+ }
+
+ return $templateMap[$template]->match($formattedName);
+ }
+
+ foreach ($templateMap as $templateName => $pathTemplate) {
+ try {
+ return $pathTemplate->match($formattedName);
+ } catch (ValidationException $ex) {
+ // Swallow the exception to continue trying other path templates
+ }
+ }
+
+ throw new ValidationException("Input did not match any known format. Input: $formattedName");
+ }
+
+ /**
+ * Return an OperationsClient object with the same endpoint as $this.
+ *
+ * @return OperationsClient
+ *
+ * @experimental
+ */
+ 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
+ *
+ * @experimental
+ */
+ 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;
+ }
+
+ /**
+ * 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 'metastore.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);
+ $this->operationsClient = $this->createOperationsClient($clientOptions);
+ }
+
+ /**
+ * Creates a metastore federation in a project and location.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $formattedParent = $dataprocMetastoreFederationClient->locationName('[PROJECT]', '[LOCATION]');
+ * $federationId = 'federation_id';
+ * $federation = new Federation();
+ * $operationResponse = $dataprocMetastoreFederationClient->createFederation($formattedParent, $federationId, $federation);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreFederationClient->createFederation($formattedParent, $federationId, $federation);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreFederationClient->resumeOperation($operationName, 'createFederation');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The relative resource name of the location in which to create a
+ * federation service, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}`.
+ * @param string $federationId Required. The ID of the metastore federation, which is used as the final
+ * component of the metastore federation's name.
+ *
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ * @param Federation $federation Required. The Metastore Federation to create. The `name` field is
+ * ignored. The ID of the created metastore federation must be
+ * provided in the request's `federation_id` field.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function createFederation($parent, $federationId, $federation, array $optionalArgs = [])
+ {
+ $request = new CreateFederationRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setFederationId($federationId);
+ $request->setFederation($federation);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('CreateFederation', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Deletes a single federation.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $formattedName = $dataprocMetastoreFederationClient->federationName('[PROJECT]', '[LOCATION]', '[FEDERATION]');
+ * $operationResponse = $dataprocMetastoreFederationClient->deleteFederation($formattedName);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * // operation succeeded and returns no value
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreFederationClient->deleteFederation($formattedName);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreFederationClient->resumeOperation($operationName, 'deleteFederation');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * // operation succeeded and returns no value
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The relative resource name of the metastore federation to delete,
+ * in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function deleteFederation($name, array $optionalArgs = [])
+ {
+ $request = new DeleteFederationRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('DeleteFederation', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Gets the details of a single federation.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $formattedName = $dataprocMetastoreFederationClient->federationName('[PROJECT]', '[LOCATION]', '[FEDERATION]');
+ * $response = $dataprocMetastoreFederationClient->getFederation($formattedName);
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The relative resource name of the metastore federation to
+ * retrieve, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Metastore\V1alpha\Federation
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function getFederation($name, array $optionalArgs = [])
+ {
+ $request = new GetFederationRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetFederation', Federation::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Lists federations in a project and location.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $formattedParent = $dataprocMetastoreFederationClient->locationName('[PROJECT]', '[LOCATION]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataprocMetastoreFederationClient->listFederations($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataprocMetastoreFederationClient->listFederations($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The relative resource name of the location of metastore
+ * federations to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @type string $filter
+ * Optional. The filter to apply to list results.
+ * @type string $orderBy
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function listFederations($parent, array $optionalArgs = [])
+ {
+ $request = new ListFederationsRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['orderBy'])) {
+ $request->setOrderBy($optionalArgs['orderBy']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListFederations', $optionalArgs, ListFederationsResponse::class, $request);
+ }
+
+ /**
+ * Updates the fields of a federation.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $updateMask = new FieldMask();
+ * $federation = new Federation();
+ * $operationResponse = $dataprocMetastoreFederationClient->updateFederation($updateMask, $federation);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreFederationClient->updateFederation($updateMask, $federation);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreFederationClient->resumeOperation($operationName, 'updateFederation');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param FieldMask $updateMask Required. A field mask used to specify the fields to be overwritten in the
+ * metastore federation resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ * @param Federation $federation Required. The metastore federation to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ *
+ * The metastore federation's `name` field is used to identify the
+ * metastore service to be updated.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function updateFederation($updateMask, $federation, array $optionalArgs = [])
+ {
+ $request = new UpdateFederationRequest();
+ $requestParamHeaders = [];
+ $request->setUpdateMask($updateMask);
+ $request->setFederation($federation);
+ $requestParamHeaders['federation.name'] = $federation->getName();
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('UpdateFederation', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Gets information about a location.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $response = $dataprocMetastoreFederationClient->getLocation();
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $name
+ * Resource name for the location.
+ * @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 \Google\Cloud\Location\Location
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function getLocation(array $optionalArgs = [])
+ {
+ $request = new GetLocationRequest();
+ $requestParamHeaders = [];
+ if (isset($optionalArgs['name'])) {
+ $request->setName($optionalArgs['name']);
+ $requestParamHeaders['name'] = $optionalArgs['name'];
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetLocation', Location::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.cloud.location.Locations')->wait();
+ }
+
+ /**
+ * Lists information about the supported locations for this service.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataprocMetastoreFederationClient->listLocations();
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataprocMetastoreFederationClient->listLocations();
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $name
+ * The resource that owns the locations collection, if applicable.
+ * @type string $filter
+ * The standard list filter.
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function listLocations(array $optionalArgs = [])
+ {
+ $request = new ListLocationsRequest();
+ $requestParamHeaders = [];
+ if (isset($optionalArgs['name'])) {
+ $request->setName($optionalArgs['name']);
+ $requestParamHeaders['name'] = $optionalArgs['name'];
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListLocations', $optionalArgs, ListLocationsResponse::class, $request, 'google.cloud.location.Locations');
+ }
+
+ /**
+ * Gets the access control policy for a resource. Returns an empty policy
+ if the resource exists and does not have a policy set.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $resource = 'resource';
+ * $response = $dataprocMetastoreFederationClient->getIamPolicy($resource);
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param string $resource REQUIRED: The resource for which the policy is being requested.
+ * See the operation documentation for the appropriate value for this field.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type GetPolicyOptions $options
+ * OPTIONAL: A `GetPolicyOptions` object for specifying options to
+ * `GetIamPolicy`.
+ * @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 \Google\Cloud\Iam\V1\Policy
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function getIamPolicy($resource, array $optionalArgs = [])
+ {
+ $request = new GetIamPolicyRequest();
+ $requestParamHeaders = [];
+ $request->setResource($resource);
+ $requestParamHeaders['resource'] = $resource;
+ if (isset($optionalArgs['options'])) {
+ $request->setOptions($optionalArgs['options']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetIamPolicy', Policy::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.iam.v1.IAMPolicy')->wait();
+ }
+
+ /**
+ * Sets the access control policy on the specified resource. Replaces
+ any existing policy.
+
+ Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
+ errors.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $resource = 'resource';
+ * $policy = new Policy();
+ * $response = $dataprocMetastoreFederationClient->setIamPolicy($resource, $policy);
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param string $resource REQUIRED: The resource for which the policy is being specified.
+ * See the operation documentation for the appropriate value for this field.
+ * @param Policy $policy REQUIRED: The complete policy to be applied to the `resource`. The size of
+ * the policy is limited to a few 10s of KB. An empty policy is a
+ * valid policy but certain Cloud Platform services (such as Projects)
+ * might reject them.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type FieldMask $updateMask
+ * OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
+ * the fields in the mask will be modified. If no mask is provided, the
+ * following default mask is used:
+ *
+ * `paths: "bindings, etag"`
+ * @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 \Google\Cloud\Iam\V1\Policy
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function setIamPolicy($resource, $policy, array $optionalArgs = [])
+ {
+ $request = new SetIamPolicyRequest();
+ $requestParamHeaders = [];
+ $request->setResource($resource);
+ $request->setPolicy($policy);
+ $requestParamHeaders['resource'] = $resource;
+ if (isset($optionalArgs['updateMask'])) {
+ $request->setUpdateMask($optionalArgs['updateMask']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('SetIamPolicy', Policy::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.iam.v1.IAMPolicy')->wait();
+ }
+
+ /**
+ * Returns permissions that a caller has on the specified resource. If the
+ resource does not exist, this will return an empty set of
+ permissions, not a `NOT_FOUND` error.
+
+ Note: This operation is designed to be used for building
+ permission-aware UIs and command-line tools, not for authorization
+ checking. This operation may "fail open" without warning.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $resource = 'resource';
+ * $permissions = [];
+ * $response = $dataprocMetastoreFederationClient->testIamPermissions($resource, $permissions);
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param string $resource REQUIRED: The resource for which the policy detail is being requested.
+ * See the operation documentation for the appropriate value for this field.
+ * @param string[] $permissions The set of permissions to check for the `resource`. Permissions with
+ * wildcards (such as '*' or 'storage.*') are not allowed. For more
+ * information see
+ * [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Iam\V1\TestIamPermissionsResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function testIamPermissions($resource, $permissions, array $optionalArgs = [])
+ {
+ $request = new TestIamPermissionsRequest();
+ $requestParamHeaders = [];
+ $request->setResource($resource);
+ $request->setPermissions($permissions);
+ $requestParamHeaders['resource'] = $resource;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('TestIamPermissions', TestIamPermissionsResponse::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.iam.v1.IAMPolicy')->wait();
+ }
+}
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/Gapic/DataprocMetastoreGapicClient.php b/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/Gapic/DataprocMetastoreGapicClient.php
new file mode 100644
index 000000000000..fcf73fb8357a
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/Gapic/DataprocMetastoreGapicClient.php
@@ -0,0 +1,2399 @@
+serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $resourceName = 'resource_name';
+ * $locationUri = 'location_uri';
+ * $operationResponse = $dataprocMetastoreClient->alterMetadataResourceLocation($formattedService, $resourceName, $locationUri);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->alterMetadataResourceLocation($formattedService, $resourceName, $locationUri);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'alterMetadataResourceLocation');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * Many parameters require resource names to be formatted in a particular way. To
+ * assist with these names, this class includes a format method for each type of
+ * name, and additionally a parseName method to extract the individual identifiers
+ * contained within formatted names that are returned by the API.
+ *
+ * @experimental
+ */
+class DataprocMetastoreGapicClient
+{
+ use GapicClientTrait;
+
+ /** The name of the service. */
+ const SERVICE_NAME = 'google.cloud.metastore.v1alpha.DataprocMetastore';
+
+ /** The default address of the service. */
+ const SERVICE_ADDRESS = 'metastore.googleapis.com';
+
+ /** 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 $backupNameTemplate;
+
+ private static $lakeNameTemplate;
+
+ private static $locationNameTemplate;
+
+ private static $metadataImportNameTemplate;
+
+ private static $networkNameTemplate;
+
+ private static $serviceNameTemplate;
+
+ private static $subnetworkNameTemplate;
+
+ private static $pathTemplateMap;
+
+ private $operationsClient;
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/dataproc_metastore_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/dataproc_metastore_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/dataproc_metastore_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/dataproc_metastore_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ private static function getBackupNameTemplate()
+ {
+ if (self::$backupNameTemplate == null) {
+ self::$backupNameTemplate = new PathTemplate('projects/{project}/locations/{location}/services/{service}/backups/{backup}');
+ }
+
+ return self::$backupNameTemplate;
+ }
+
+ private static function getLakeNameTemplate()
+ {
+ if (self::$lakeNameTemplate == null) {
+ self::$lakeNameTemplate = new PathTemplate('projects/{project}/locations/{location}/lakes/{lake}');
+ }
+
+ return self::$lakeNameTemplate;
+ }
+
+ private static function getLocationNameTemplate()
+ {
+ if (self::$locationNameTemplate == null) {
+ self::$locationNameTemplate = new PathTemplate('projects/{project}/locations/{location}');
+ }
+
+ return self::$locationNameTemplate;
+ }
+
+ private static function getMetadataImportNameTemplate()
+ {
+ if (self::$metadataImportNameTemplate == null) {
+ self::$metadataImportNameTemplate = new PathTemplate('projects/{project}/locations/{location}/services/{service}/metadataImports/{metadata_import}');
+ }
+
+ return self::$metadataImportNameTemplate;
+ }
+
+ private static function getNetworkNameTemplate()
+ {
+ if (self::$networkNameTemplate == null) {
+ self::$networkNameTemplate = new PathTemplate('projects/{project}/global/networks/{network}');
+ }
+
+ return self::$networkNameTemplate;
+ }
+
+ private static function getServiceNameTemplate()
+ {
+ if (self::$serviceNameTemplate == null) {
+ self::$serviceNameTemplate = new PathTemplate('projects/{project}/locations/{location}/services/{service}');
+ }
+
+ return self::$serviceNameTemplate;
+ }
+
+ private static function getSubnetworkNameTemplate()
+ {
+ if (self::$subnetworkNameTemplate == null) {
+ self::$subnetworkNameTemplate = new PathTemplate('projects/{project}/regions/{region}/subnetworks/{subnetwork}');
+ }
+
+ return self::$subnetworkNameTemplate;
+ }
+
+ private static function getPathTemplateMap()
+ {
+ if (self::$pathTemplateMap == null) {
+ self::$pathTemplateMap = [
+ 'backup' => self::getBackupNameTemplate(),
+ 'lake' => self::getLakeNameTemplate(),
+ 'location' => self::getLocationNameTemplate(),
+ 'metadataImport' => self::getMetadataImportNameTemplate(),
+ 'network' => self::getNetworkNameTemplate(),
+ 'service' => self::getServiceNameTemplate(),
+ 'subnetwork' => self::getSubnetworkNameTemplate(),
+ ];
+ }
+
+ return self::$pathTemplateMap;
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a backup
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $service
+ * @param string $backup
+ *
+ * @return string The formatted backup resource.
+ *
+ * @experimental
+ */
+ public static function backupName($project, $location, $service, $backup)
+ {
+ return self::getBackupNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'service' => $service,
+ 'backup' => $backup,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a lake
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $lake
+ *
+ * @return string The formatted lake resource.
+ *
+ * @experimental
+ */
+ public static function lakeName($project, $location, $lake)
+ {
+ return self::getLakeNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'lake' => $lake,
+ ]);
+ }
+
+ /**
+ * 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.
+ *
+ * @experimental
+ */
+ public static function locationName($project, $location)
+ {
+ return self::getLocationNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * metadata_import resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $service
+ * @param string $metadataImport
+ *
+ * @return string The formatted metadata_import resource.
+ *
+ * @experimental
+ */
+ public static function metadataImportName($project, $location, $service, $metadataImport)
+ {
+ return self::getMetadataImportNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'service' => $service,
+ 'metadata_import' => $metadataImport,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a network
+ * resource.
+ *
+ * @param string $project
+ * @param string $network
+ *
+ * @return string The formatted network resource.
+ *
+ * @experimental
+ */
+ public static function networkName($project, $network)
+ {
+ return self::getNetworkNameTemplate()->render([
+ 'project' => $project,
+ 'network' => $network,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a service
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $service
+ *
+ * @return string The formatted service resource.
+ *
+ * @experimental
+ */
+ public static function serviceName($project, $location, $service)
+ {
+ return self::getServiceNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'service' => $service,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a subnetwork
+ * resource.
+ *
+ * @param string $project
+ * @param string $region
+ * @param string $subnetwork
+ *
+ * @return string The formatted subnetwork resource.
+ *
+ * @experimental
+ */
+ public static function subnetworkName($project, $region, $subnetwork)
+ {
+ return self::getSubnetworkNameTemplate()->render([
+ 'project' => $project,
+ 'region' => $region,
+ 'subnetwork' => $subnetwork,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - backup: projects/{project}/locations/{location}/services/{service}/backups/{backup}
+ * - lake: projects/{project}/locations/{location}/lakes/{lake}
+ * - location: projects/{project}/locations/{location}
+ * - metadataImport: projects/{project}/locations/{location}/services/{service}/metadataImports/{metadata_import}
+ * - network: projects/{project}/global/networks/{network}
+ * - service: projects/{project}/locations/{location}/services/{service}
+ * - subnetwork: projects/{project}/regions/{region}/subnetworks/{subnetwork}
+ *
+ * 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.
+ *
+ * @experimental
+ */
+ public static function parseName($formattedName, $template = null)
+ {
+ $templateMap = self::getPathTemplateMap();
+ if ($template) {
+ if (!isset($templateMap[$template])) {
+ throw new ValidationException("Template name $template does not exist");
+ }
+
+ return $templateMap[$template]->match($formattedName);
+ }
+
+ foreach ($templateMap as $templateName => $pathTemplate) {
+ try {
+ return $pathTemplate->match($formattedName);
+ } catch (ValidationException $ex) {
+ // Swallow the exception to continue trying other path templates
+ }
+ }
+
+ throw new ValidationException("Input did not match any known format. Input: $formattedName");
+ }
+
+ /**
+ * Return an OperationsClient object with the same endpoint as $this.
+ *
+ * @return OperationsClient
+ *
+ * @experimental
+ */
+ 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
+ *
+ * @experimental
+ */
+ 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;
+ }
+
+ /**
+ * 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 'metastore.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);
+ $this->operationsClient = $this->createOperationsClient($clientOptions);
+ }
+
+ /**
+ * Alter metadata resource location. The metadata resource can be a database,
+ * table, or partition. This functionality only updates the parent directory
+ * for the respective metadata resource and does not transfer any existing
+ * data to the new location.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedService = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $resourceName = 'resource_name';
+ * $locationUri = 'location_uri';
+ * $operationResponse = $dataprocMetastoreClient->alterMetadataResourceLocation($formattedService, $resourceName, $locationUri);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->alterMetadataResourceLocation($formattedService, $resourceName, $locationUri);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'alterMetadataResourceLocation');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $service Required. The relative resource name of the metastore service to mutate
+ * metadata, in the following format:
+ *
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ * @param string $resourceName Required. The relative metadata resource name in the following format.
+ *
+ * `databases/{database_id}`
+ * or
+ * `databases/{database_id}/tables/{table_id}`
+ * or
+ * `databases/{database_id}/tables/{table_id}/partitions/{partition_id}`
+ * @param string $locationUri Required. The new location URI for the metadata resource.
+ * @param array $optionalArgs {
+ * 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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function alterMetadataResourceLocation($service, $resourceName, $locationUri, array $optionalArgs = [])
+ {
+ $request = new AlterMetadataResourceLocationRequest();
+ $requestParamHeaders = [];
+ $request->setService($service);
+ $request->setResourceName($resourceName);
+ $request->setLocationUri($locationUri);
+ $requestParamHeaders['service'] = $service;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('AlterMetadataResourceLocation', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Creates a new backup in a given project and location.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedParent = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $backupId = 'backup_id';
+ * $backup = new Backup();
+ * $operationResponse = $dataprocMetastoreClient->createBackup($formattedParent, $backupId, $backup);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->createBackup($formattedParent, $backupId, $backup);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'createBackup');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The relative resource name of the service in which to create a
+ * backup of the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * @param string $backupId Required. The ID of the backup, which is used as the final component of the
+ * backup's name.
+ *
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ * @param Backup $backup Required. The backup to create. The `name` field is ignored. The ID of the
+ * created backup must be provided in the request's `backup_id` field.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function createBackup($parent, $backupId, $backup, array $optionalArgs = [])
+ {
+ $request = new CreateBackupRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setBackupId($backupId);
+ $request->setBackup($backup);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('CreateBackup', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Creates a new MetadataImport in a given project and location.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedParent = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $metadataImportId = 'metadata_import_id';
+ * $metadataImport = new MetadataImport();
+ * $operationResponse = $dataprocMetastoreClient->createMetadataImport($formattedParent, $metadataImportId, $metadataImport);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->createMetadataImport($formattedParent, $metadataImportId, $metadataImport);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'createMetadataImport');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The relative resource name of the service in which to create a
+ * metastore import, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * @param string $metadataImportId Required. The ID of the metadata import, which is used as the final
+ * component of the metadata import's name.
+ *
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ * @param MetadataImport $metadataImport Required. The metadata import to create. The `name` field is ignored. The
+ * ID of the created metadata import must be provided in the request's
+ * `metadata_import_id` field.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function createMetadataImport($parent, $metadataImportId, $metadataImport, array $optionalArgs = [])
+ {
+ $request = new CreateMetadataImportRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setMetadataImportId($metadataImportId);
+ $request->setMetadataImport($metadataImport);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('CreateMetadataImport', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Creates a metastore service in a project and location.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedParent = $dataprocMetastoreClient->locationName('[PROJECT]', '[LOCATION]');
+ * $serviceId = 'service_id';
+ * $service = new Service();
+ * $operationResponse = $dataprocMetastoreClient->createService($formattedParent, $serviceId, $service);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->createService($formattedParent, $serviceId, $service);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'createService');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The relative resource name of the location in which to create a
+ * metastore service, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}`.
+ * @param string $serviceId Required. The ID of the metastore service, which is used as the final
+ * component of the metastore service's name.
+ *
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ * @param Service $service Required. The Metastore service to create. The `name` field is
+ * ignored. The ID of the created metastore service must be provided in
+ * the request's `service_id` field.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function createService($parent, $serviceId, $service, array $optionalArgs = [])
+ {
+ $request = new CreateServiceRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setServiceId($serviceId);
+ $request->setService($service);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('CreateService', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Deletes a single backup.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedName = $dataprocMetastoreClient->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ * $operationResponse = $dataprocMetastoreClient->deleteBackup($formattedName);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * // operation succeeded and returns no value
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->deleteBackup($formattedName);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'deleteBackup');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * // operation succeeded and returns no value
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The relative resource name of the backup to delete, in the
+ * following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function deleteBackup($name, array $optionalArgs = [])
+ {
+ $request = new DeleteBackupRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('DeleteBackup', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Deletes a single service.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedName = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $operationResponse = $dataprocMetastoreClient->deleteService($formattedName);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * // operation succeeded and returns no value
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->deleteService($formattedName);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'deleteService');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * // operation succeeded and returns no value
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The relative resource name of the metastore service to delete, in
+ * the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function deleteService($name, array $optionalArgs = [])
+ {
+ $request = new DeleteServiceRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('DeleteService', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Exports metadata from a service.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedService = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $operationResponse = $dataprocMetastoreClient->exportMetadata($formattedService);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->exportMetadata($formattedService);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'exportMetadata');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $service Required. The relative resource name of the metastore service to run
+ * export, in the following form:
+ *
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $destinationGcsFolder
+ * A Cloud Storage URI of a folder, in the format
+ * `gs:///`. A sub-folder
+ * `` containing exported files will be created below it.
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @type int $databaseDumpType
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ * For allowed values, use constants defined on {@see \Google\Cloud\Metastore\V1alpha\DatabaseDumpSpec\Type}
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function exportMetadata($service, array $optionalArgs = [])
+ {
+ $request = new ExportMetadataRequest();
+ $requestParamHeaders = [];
+ $request->setService($service);
+ $requestParamHeaders['service'] = $service;
+ if (isset($optionalArgs['destinationGcsFolder'])) {
+ $request->setDestinationGcsFolder($optionalArgs['destinationGcsFolder']);
+ }
+
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ if (isset($optionalArgs['databaseDumpType'])) {
+ $request->setDatabaseDumpType($optionalArgs['databaseDumpType']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('ExportMetadata', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Gets details of a single backup.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedName = $dataprocMetastoreClient->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ * $response = $dataprocMetastoreClient->getBackup($formattedName);
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The relative resource name of the backup to retrieve, in the
+ * following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Metastore\V1alpha\Backup
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function getBackup($name, array $optionalArgs = [])
+ {
+ $request = new GetBackupRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetBackup', Backup::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Gets details of a single import.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedName = $dataprocMetastoreClient->metadataImportName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[METADATA_IMPORT]');
+ * $response = $dataprocMetastoreClient->getMetadataImport($formattedName);
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The relative resource name of the metadata import to retrieve, in
+ * the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{import_id}`.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Metastore\V1alpha\MetadataImport
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function getMetadataImport($name, array $optionalArgs = [])
+ {
+ $request = new GetMetadataImportRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetMetadataImport', MetadataImport::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Gets the details of a single service.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedName = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $response = $dataprocMetastoreClient->getService($formattedName);
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The relative resource name of the metastore service to retrieve,
+ * in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Metastore\V1alpha\Service
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function getService($name, array $optionalArgs = [])
+ {
+ $request = new GetServiceRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetService', Service::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Lists backups in a service.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedParent = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataprocMetastoreClient->listBackups($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataprocMetastoreClient->listBackups($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The relative resource name of the service whose backups to
+ * list, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @type string $filter
+ * Optional. The filter to apply to list results.
+ * @type string $orderBy
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function listBackups($parent, array $optionalArgs = [])
+ {
+ $request = new ListBackupsRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['orderBy'])) {
+ $request->setOrderBy($optionalArgs['orderBy']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListBackups', $optionalArgs, ListBackupsResponse::class, $request);
+ }
+
+ /**
+ * Lists imports in a service.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedParent = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataprocMetastoreClient->listMetadataImports($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataprocMetastoreClient->listMetadataImports($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The relative resource name of the service whose metadata imports
+ * to list, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @type string $filter
+ * Optional. The filter to apply to list results.
+ * @type string $orderBy
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function listMetadataImports($parent, array $optionalArgs = [])
+ {
+ $request = new ListMetadataImportsRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['orderBy'])) {
+ $request->setOrderBy($optionalArgs['orderBy']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListMetadataImports', $optionalArgs, ListMetadataImportsResponse::class, $request);
+ }
+
+ /**
+ * Lists services in a project and location.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedParent = $dataprocMetastoreClient->locationName('[PROJECT]', '[LOCATION]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataprocMetastoreClient->listServices($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataprocMetastoreClient->listServices($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The relative resource name of the location of metastore services
+ * to list, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @type string $filter
+ * Optional. The filter to apply to list results.
+ * @type string $orderBy
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function listServices($parent, array $optionalArgs = [])
+ {
+ $request = new ListServicesRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['orderBy'])) {
+ $request->setOrderBy($optionalArgs['orderBy']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListServices', $optionalArgs, ListServicesResponse::class, $request);
+ }
+
+ /**
+ * Move a table to another database.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedService = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $tableName = 'table_name';
+ * $dbName = 'db_name';
+ * $destinationDbName = 'destination_db_name';
+ * $operationResponse = $dataprocMetastoreClient->moveTableToDatabase($formattedService, $tableName, $dbName, $destinationDbName);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->moveTableToDatabase($formattedService, $tableName, $dbName, $destinationDbName);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'moveTableToDatabase');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $service Required. The relative resource name of the metastore service to mutate
+ * metadata, in the following format:
+ *
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ * @param string $tableName Required. The name of the table to be moved.
+ * @param string $dbName Required. The name of the database where the table resides.
+ * @param string $destinationDbName Required. The name of the database where the table should be moved.
+ * @param array $optionalArgs {
+ * 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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function moveTableToDatabase($service, $tableName, $dbName, $destinationDbName, array $optionalArgs = [])
+ {
+ $request = new MoveTableToDatabaseRequest();
+ $requestParamHeaders = [];
+ $request->setService($service);
+ $request->setTableName($tableName);
+ $request->setDbName($dbName);
+ $request->setDestinationDbName($destinationDbName);
+ $requestParamHeaders['service'] = $service;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('MoveTableToDatabase', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Query DPMS metadata.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedService = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $query = 'query';
+ * $operationResponse = $dataprocMetastoreClient->queryMetadata($formattedService, $query);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->queryMetadata($formattedService, $query);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'queryMetadata');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $service Required. The relative resource name of the metastore service to query
+ * metadata, in the following format:
+ *
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ * @param string $query Required. A read-only SQL query to execute against the metadata database.
+ * The query cannot change or mutate the data.
+ * @param array $optionalArgs {
+ * 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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function queryMetadata($service, $query, array $optionalArgs = [])
+ {
+ $request = new QueryMetadataRequest();
+ $requestParamHeaders = [];
+ $request->setService($service);
+ $request->setQuery($query);
+ $requestParamHeaders['service'] = $service;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('QueryMetadata', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Removes the attached IAM policies for a resource
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $resource = 'resource';
+ * $response = $dataprocMetastoreClient->removeIamPolicy($resource);
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $resource Required. The relative resource name of the dataplane resource to remove
+ * IAM policy, in the following form:
+ *
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/databases/{database_id}`
+ * or
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/databases/{database_id}/tables/{table_id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type bool $asynchronous
+ * Optional. Removes IAM policy attached to database or table asynchronously
+ * when it is set. The default is false.
+ * @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 \Google\Cloud\Metastore\V1alpha\RemoveIamPolicyResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function removeIamPolicy($resource, array $optionalArgs = [])
+ {
+ $request = new RemoveIamPolicyRequest();
+ $requestParamHeaders = [];
+ $request->setResource($resource);
+ $requestParamHeaders['resource'] = $resource;
+ if (isset($optionalArgs['asynchronous'])) {
+ $request->setAsynchronous($optionalArgs['asynchronous']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('RemoveIamPolicy', RemoveIamPolicyResponse::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Restores a service from a backup.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedService = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $formattedBackup = $dataprocMetastoreClient->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ * $operationResponse = $dataprocMetastoreClient->restoreService($formattedService, $formattedBackup);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->restoreService($formattedService, $formattedBackup);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'restoreService');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $service Required. The relative resource name of the metastore service to run
+ * restore, in the following form:
+ *
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ * @param string $backup Required. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ *
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $restoreType
+ * Optional. The type of restore. If unspecified, defaults to `METADATA_ONLY`.
+ * For allowed values, use constants defined on {@see \Google\Cloud\Metastore\V1alpha\Restore\RestoreType}
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function restoreService($service, $backup, array $optionalArgs = [])
+ {
+ $request = new RestoreServiceRequest();
+ $requestParamHeaders = [];
+ $request->setService($service);
+ $request->setBackup($backup);
+ $requestParamHeaders['service'] = $service;
+ if (isset($optionalArgs['restoreType'])) {
+ $request->setRestoreType($optionalArgs['restoreType']);
+ }
+
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('RestoreService', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Updates a single import.
+ * Only the description field of MetadataImport is supported to be updated.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $updateMask = new FieldMask();
+ * $metadataImport = new MetadataImport();
+ * $operationResponse = $dataprocMetastoreClient->updateMetadataImport($updateMask, $metadataImport);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->updateMetadataImport($updateMask, $metadataImport);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'updateMetadataImport');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param FieldMask $updateMask Required. A field mask used to specify the fields to be overwritten in the
+ * metadata import resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ * @param MetadataImport $metadataImport Required. The metadata import to update. The server only merges fields
+ * in the import if they are specified in `update_mask`.
+ *
+ * The metadata import's `name` field is used to identify the metastore
+ * import to be updated.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function updateMetadataImport($updateMask, $metadataImport, array $optionalArgs = [])
+ {
+ $request = new UpdateMetadataImportRequest();
+ $requestParamHeaders = [];
+ $request->setUpdateMask($updateMask);
+ $request->setMetadataImport($metadataImport);
+ $requestParamHeaders['metadata_import.name'] = $metadataImport->getName();
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('UpdateMetadataImport', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Updates the parameters of a single service.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $updateMask = new FieldMask();
+ * $service = new Service();
+ * $operationResponse = $dataprocMetastoreClient->updateService($updateMask, $service);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->updateService($updateMask, $service);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'updateService');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param FieldMask $updateMask Required. A field mask used to specify the fields to be overwritten in the
+ * metastore service resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ * @param Service $service Required. The metastore service to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ *
+ * The metastore service's `name` field is used to identify the metastore
+ * service to be updated.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function updateService($updateMask, $service, array $optionalArgs = [])
+ {
+ $request = new UpdateServiceRequest();
+ $requestParamHeaders = [];
+ $request->setUpdateMask($updateMask);
+ $request->setService($service);
+ $requestParamHeaders['service.name'] = $service->getName();
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('UpdateService', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Gets information about a location.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $response = $dataprocMetastoreClient->getLocation();
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $name
+ * Resource name for the location.
+ * @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 \Google\Cloud\Location\Location
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function getLocation(array $optionalArgs = [])
+ {
+ $request = new GetLocationRequest();
+ $requestParamHeaders = [];
+ if (isset($optionalArgs['name'])) {
+ $request->setName($optionalArgs['name']);
+ $requestParamHeaders['name'] = $optionalArgs['name'];
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetLocation', Location::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.cloud.location.Locations')->wait();
+ }
+
+ /**
+ * Lists information about the supported locations for this service.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataprocMetastoreClient->listLocations();
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataprocMetastoreClient->listLocations();
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $name
+ * The resource that owns the locations collection, if applicable.
+ * @type string $filter
+ * The standard list filter.
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function listLocations(array $optionalArgs = [])
+ {
+ $request = new ListLocationsRequest();
+ $requestParamHeaders = [];
+ if (isset($optionalArgs['name'])) {
+ $request->setName($optionalArgs['name']);
+ $requestParamHeaders['name'] = $optionalArgs['name'];
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListLocations', $optionalArgs, ListLocationsResponse::class, $request, 'google.cloud.location.Locations');
+ }
+
+ /**
+ * Gets the access control policy for a resource. Returns an empty policy
+ if the resource exists and does not have a policy set.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $resource = 'resource';
+ * $response = $dataprocMetastoreClient->getIamPolicy($resource);
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $resource REQUIRED: The resource for which the policy is being requested.
+ * See the operation documentation for the appropriate value for this field.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type GetPolicyOptions $options
+ * OPTIONAL: A `GetPolicyOptions` object for specifying options to
+ * `GetIamPolicy`.
+ * @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 \Google\Cloud\Iam\V1\Policy
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function getIamPolicy($resource, array $optionalArgs = [])
+ {
+ $request = new GetIamPolicyRequest();
+ $requestParamHeaders = [];
+ $request->setResource($resource);
+ $requestParamHeaders['resource'] = $resource;
+ if (isset($optionalArgs['options'])) {
+ $request->setOptions($optionalArgs['options']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetIamPolicy', Policy::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.iam.v1.IAMPolicy')->wait();
+ }
+
+ /**
+ * Sets the access control policy on the specified resource. Replaces
+ any existing policy.
+
+ Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
+ errors.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $resource = 'resource';
+ * $policy = new Policy();
+ * $response = $dataprocMetastoreClient->setIamPolicy($resource, $policy);
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $resource REQUIRED: The resource for which the policy is being specified.
+ * See the operation documentation for the appropriate value for this field.
+ * @param Policy $policy REQUIRED: The complete policy to be applied to the `resource`. The size of
+ * the policy is limited to a few 10s of KB. An empty policy is a
+ * valid policy but certain Cloud Platform services (such as Projects)
+ * might reject them.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type FieldMask $updateMask
+ * OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
+ * the fields in the mask will be modified. If no mask is provided, the
+ * following default mask is used:
+ *
+ * `paths: "bindings, etag"`
+ * @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 \Google\Cloud\Iam\V1\Policy
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function setIamPolicy($resource, $policy, array $optionalArgs = [])
+ {
+ $request = new SetIamPolicyRequest();
+ $requestParamHeaders = [];
+ $request->setResource($resource);
+ $request->setPolicy($policy);
+ $requestParamHeaders['resource'] = $resource;
+ if (isset($optionalArgs['updateMask'])) {
+ $request->setUpdateMask($optionalArgs['updateMask']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('SetIamPolicy', Policy::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.iam.v1.IAMPolicy')->wait();
+ }
+
+ /**
+ * Returns permissions that a caller has on the specified resource. If the
+ resource does not exist, this will return an empty set of
+ permissions, not a `NOT_FOUND` error.
+
+ Note: This operation is designed to be used for building
+ permission-aware UIs and command-line tools, not for authorization
+ checking. This operation may "fail open" without warning.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $resource = 'resource';
+ * $permissions = [];
+ * $response = $dataprocMetastoreClient->testIamPermissions($resource, $permissions);
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $resource REQUIRED: The resource for which the policy detail is being requested.
+ * See the operation documentation for the appropriate value for this field.
+ * @param string[] $permissions The set of permissions to check for the `resource`. Permissions with
+ * wildcards (such as '*' or 'storage.*') are not allowed. For more
+ * information see
+ * [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Iam\V1\TestIamPermissionsResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function testIamPermissions($resource, $permissions, array $optionalArgs = [])
+ {
+ $request = new TestIamPermissionsRequest();
+ $requestParamHeaders = [];
+ $request->setResource($resource);
+ $request->setPermissions($permissions);
+ $requestParamHeaders['resource'] = $resource;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('TestIamPermissions', TestIamPermissionsResponse::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.iam.v1.IAMPolicy')->wait();
+ }
+}
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/gapic_metadata.json b/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/gapic_metadata.json
new file mode 100644
index 000000000000..1276f9994a16
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/gapic_metadata.json
@@ -0,0 +1,197 @@
+{
+ "schema": "1.0",
+ "comment": "This file maps proto services\/RPCs to the corresponding library clients\/methods",
+ "language": "php",
+ "protoPackage": "google.cloud.metastore.v1alpha",
+ "libraryPackage": "Google\\Cloud\\Metastore\\V1alpha",
+ "services": {
+ "DataprocMetastore": {
+ "clients": {
+ "grpc": {
+ "libraryClient": "DataprocMetastoreGapicClient",
+ "rpcs": {
+ "AlterMetadataResourceLocation": {
+ "methods": [
+ "alterMetadataResourceLocation"
+ ]
+ },
+ "CreateBackup": {
+ "methods": [
+ "createBackup"
+ ]
+ },
+ "CreateMetadataImport": {
+ "methods": [
+ "createMetadataImport"
+ ]
+ },
+ "CreateService": {
+ "methods": [
+ "createService"
+ ]
+ },
+ "DeleteBackup": {
+ "methods": [
+ "deleteBackup"
+ ]
+ },
+ "DeleteService": {
+ "methods": [
+ "deleteService"
+ ]
+ },
+ "ExportMetadata": {
+ "methods": [
+ "exportMetadata"
+ ]
+ },
+ "GetBackup": {
+ "methods": [
+ "getBackup"
+ ]
+ },
+ "GetMetadataImport": {
+ "methods": [
+ "getMetadataImport"
+ ]
+ },
+ "GetService": {
+ "methods": [
+ "getService"
+ ]
+ },
+ "ListBackups": {
+ "methods": [
+ "listBackups"
+ ]
+ },
+ "ListMetadataImports": {
+ "methods": [
+ "listMetadataImports"
+ ]
+ },
+ "ListServices": {
+ "methods": [
+ "listServices"
+ ]
+ },
+ "MoveTableToDatabase": {
+ "methods": [
+ "moveTableToDatabase"
+ ]
+ },
+ "QueryMetadata": {
+ "methods": [
+ "queryMetadata"
+ ]
+ },
+ "RemoveIamPolicy": {
+ "methods": [
+ "removeIamPolicy"
+ ]
+ },
+ "RestoreService": {
+ "methods": [
+ "restoreService"
+ ]
+ },
+ "UpdateMetadataImport": {
+ "methods": [
+ "updateMetadataImport"
+ ]
+ },
+ "UpdateService": {
+ "methods": [
+ "updateService"
+ ]
+ },
+ "GetLocation": {
+ "methods": [
+ "getLocation"
+ ]
+ },
+ "ListLocations": {
+ "methods": [
+ "listLocations"
+ ]
+ },
+ "GetIamPolicy": {
+ "methods": [
+ "getIamPolicy"
+ ]
+ },
+ "SetIamPolicy": {
+ "methods": [
+ "setIamPolicy"
+ ]
+ },
+ "TestIamPermissions": {
+ "methods": [
+ "testIamPermissions"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "DataprocMetastoreFederation": {
+ "clients": {
+ "grpc": {
+ "libraryClient": "DataprocMetastoreFederationGapicClient",
+ "rpcs": {
+ "CreateFederation": {
+ "methods": [
+ "createFederation"
+ ]
+ },
+ "DeleteFederation": {
+ "methods": [
+ "deleteFederation"
+ ]
+ },
+ "GetFederation": {
+ "methods": [
+ "getFederation"
+ ]
+ },
+ "ListFederations": {
+ "methods": [
+ "listFederations"
+ ]
+ },
+ "UpdateFederation": {
+ "methods": [
+ "updateFederation"
+ ]
+ },
+ "GetLocation": {
+ "methods": [
+ "getLocation"
+ ]
+ },
+ "ListLocations": {
+ "methods": [
+ "listLocations"
+ ]
+ },
+ "GetIamPolicy": {
+ "methods": [
+ "getIamPolicy"
+ ]
+ },
+ "SetIamPolicy": {
+ "methods": [
+ "setIamPolicy"
+ ]
+ },
+ "TestIamPermissions": {
+ "methods": [
+ "testIamPermissions"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/resources/dataproc_metastore_client_config.json b/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/resources/dataproc_metastore_client_config.json
new file mode 100644
index 000000000000..2355e4bd3525
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/resources/dataproc_metastore_client_config.json
@@ -0,0 +1,164 @@
+{
+ "interfaces": {
+ "google.cloud.metastore.v1alpha.DataprocMetastore": {
+ "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": {
+ "AlterMetadataResourceLocation": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "CreateBackup": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateMetadataImport": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateService": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteBackup": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteService": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ExportMetadata": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetBackup": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetMetadataImport": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetService": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListBackups": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListMetadataImports": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListServices": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "MoveTableToDatabase": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "QueryMetadata": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "RemoveIamPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "RestoreService": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateMetadataImport": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateService": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetLocation": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListLocations": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetIamPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "SetIamPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "TestIamPermissions": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ }
+ }
+ }
+ }
+}
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/resources/dataproc_metastore_descriptor_config.php b/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/resources/dataproc_metastore_descriptor_config.php
new file mode 100644
index 000000000000..94d5d9d3a88f
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/resources/dataproc_metastore_descriptor_config.php
@@ -0,0 +1,181 @@
+ [
+ 'google.cloud.metastore.v1alpha.DataprocMetastore' => [
+ 'AlterMetadataResourceLocation' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1alpha\AlterMetadataResourceLocationResponse',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1alpha\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'CreateBackup' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1alpha\Backup',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1alpha\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'CreateMetadataImport' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1alpha\MetadataImport',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1alpha\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'CreateService' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1alpha\Service',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1alpha\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'DeleteBackup' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1alpha\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'DeleteService' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1alpha\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'ExportMetadata' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1alpha\MetadataExport',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1alpha\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'MoveTableToDatabase' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1alpha\MoveTableToDatabaseResponse',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1alpha\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'QueryMetadata' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1alpha\QueryMetadataResponse',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1alpha\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'RestoreService' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1alpha\Restore',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1alpha\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'UpdateMetadataImport' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1alpha\MetadataImport',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1alpha\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'UpdateService' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1alpha\Service',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1alpha\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'ListBackups' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getBackups',
+ ],
+ ],
+ 'ListMetadataImports' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getMetadataImports',
+ ],
+ ],
+ 'ListServices' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getServices',
+ ],
+ ],
+ 'GetLocation' => [
+ 'interfaceOverride' => 'google.cloud.location.Locations',
+ ],
+ 'ListLocations' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getLocations',
+ ],
+ 'interfaceOverride' => 'google.cloud.location.Locations',
+ ],
+ 'GetIamPolicy' => [
+ 'interfaceOverride' => 'google.iam.v1.IAMPolicy',
+ ],
+ 'SetIamPolicy' => [
+ 'interfaceOverride' => 'google.iam.v1.IAMPolicy',
+ ],
+ 'TestIamPermissions' => [
+ 'interfaceOverride' => 'google.iam.v1.IAMPolicy',
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/resources/dataproc_metastore_federation_client_config.json b/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/resources/dataproc_metastore_federation_client_config.json
new file mode 100644
index 000000000000..360aa62b94ff
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/resources/dataproc_metastore_federation_client_config.json
@@ -0,0 +1,72 @@
+{
+ "interfaces": {
+ "google.cloud.metastore.v1alpha.DataprocMetastoreFederation": {
+ "retry_codes": {
+ "no_retry_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
+ }
+ },
+ "methods": {
+ "CreateFederation": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "DeleteFederation": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "GetFederation": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "ListFederations": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "UpdateFederation": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_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"
+ },
+ "GetIamPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "SetIamPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "TestIamPermissions": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ }
+ }
+ }
+ }
+}
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/resources/dataproc_metastore_federation_descriptor_config.php b/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/resources/dataproc_metastore_federation_descriptor_config.php
new file mode 100644
index 000000000000..0fb6ca9677cb
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/resources/dataproc_metastore_federation_descriptor_config.php
@@ -0,0 +1,71 @@
+ [
+ 'google.cloud.metastore.v1alpha.DataprocMetastoreFederation' => [
+ 'CreateFederation' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1alpha\Federation',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1alpha\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'DeleteFederation' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1alpha\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'UpdateFederation' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1alpha\Federation',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1alpha\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'ListFederations' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getFederations',
+ ],
+ ],
+ 'GetLocation' => [
+ 'interfaceOverride' => 'google.cloud.location.Locations',
+ ],
+ 'ListLocations' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getLocations',
+ ],
+ 'interfaceOverride' => 'google.cloud.location.Locations',
+ ],
+ 'GetIamPolicy' => [
+ 'interfaceOverride' => 'google.iam.v1.IAMPolicy',
+ ],
+ 'SetIamPolicy' => [
+ 'interfaceOverride' => 'google.iam.v1.IAMPolicy',
+ ],
+ 'TestIamPermissions' => [
+ 'interfaceOverride' => 'google.iam.v1.IAMPolicy',
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/resources/dataproc_metastore_federation_rest_client_config.php b/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/resources/dataproc_metastore_federation_rest_client_config.php
new file mode 100644
index 000000000000..aad54be89376
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/resources/dataproc_metastore_federation_rest_client_config.php
@@ -0,0 +1,243 @@
+ [
+ 'google.cloud.location.Locations' => [
+ 'GetLocation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{name=projects/*/locations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListLocations' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{name=projects/*}/locations',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.cloud.metastore.v1alpha.DataprocMetastoreFederation' => [
+ 'CreateFederation' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{parent=projects/*/locations/*}/federations',
+ 'body' => 'federation',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'federation_id',
+ ],
+ ],
+ 'DeleteFederation' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1alpha/{name=projects/*/locations/*/federations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetFederation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{name=projects/*/locations/*/federations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListFederations' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{parent=projects/*/locations/*}/federations',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateFederation' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1alpha/{federation.name=projects/*/locations/*/federations/*}',
+ 'body' => 'federation',
+ 'placeholders' => [
+ 'federation.name' => [
+ 'getters' => [
+ 'getFederation',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ ],
+ 'google.iam.v1.IAMPolicy' => [
+ 'GetIamPolicy' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/services/*}:getIamPolicy',
+ 'additionalBindings' => [
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/services/*/backups/*}:getIamPolicy',
+ ],
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/services/*/databases/*}:getIamPolicy',
+ ],
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/services/*/databases/*/tables/*}:getIamPolicy',
+ ],
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/federations/*}:getIamPolicy',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'SetIamPolicy' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/services/*}:setIamPolicy',
+ 'body' => '*',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/services/*/backups/*}:setIamPolicy',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/services/*/databases/*}:setIamPolicy',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/services/*/databases/*/tables/*}:setIamPolicy',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/federations/*}:setIamPolicy',
+ 'body' => '*',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'TestIamPermissions' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/services/*}:testIamPermissions',
+ 'body' => '*',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/services/*/backups/*}:testIamPermissions',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/services/*/databases/*}:testIamPermissions',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/services/*/databases/*/tables/*}:testIamPermissions',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/federations/*}:testIamPermissions',
+ 'body' => '*',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.longrunning.Operations' => [
+ 'CancelOperation' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{name=projects/*/locations/*/operations/*}:cancel',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteOperation' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1alpha/{name=projects/*/locations/*/operations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetOperation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{name=projects/*/locations/*/operations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListOperations' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{name=projects/*/locations/*}/operations',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'numericEnums' => true,
+];
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/resources/dataproc_metastore_rest_client_config.php b/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/resources/dataproc_metastore_rest_client_config.php
new file mode 100644
index 000000000000..5da0a2b6574d
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/src/V1alpha/resources/dataproc_metastore_rest_client_config.php
@@ -0,0 +1,416 @@
+ [
+ 'google.cloud.location.Locations' => [
+ 'GetLocation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{name=projects/*/locations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListLocations' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{name=projects/*}/locations',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.cloud.metastore.v1alpha.DataprocMetastore' => [
+ 'AlterMetadataResourceLocation' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{service=projects/*/locations/*/services/*}:alterLocation',
+ 'body' => '*',
+ 'placeholders' => [
+ 'service' => [
+ 'getters' => [
+ 'getService',
+ ],
+ ],
+ ],
+ ],
+ 'CreateBackup' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{parent=projects/*/locations/*/services/*}/backups',
+ 'body' => 'backup',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'backup_id',
+ ],
+ ],
+ 'CreateMetadataImport' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{parent=projects/*/locations/*/services/*}/metadataImports',
+ 'body' => 'metadata_import',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'metadata_import_id',
+ ],
+ ],
+ 'CreateService' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{parent=projects/*/locations/*}/services',
+ 'body' => 'service',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'service_id',
+ ],
+ ],
+ 'DeleteBackup' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1alpha/{name=projects/*/locations/*/services/*/backups/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteService' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1alpha/{name=projects/*/locations/*/services/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ExportMetadata' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{service=projects/*/locations/*/services/*}:exportMetadata',
+ 'body' => '*',
+ 'placeholders' => [
+ 'service' => [
+ 'getters' => [
+ 'getService',
+ ],
+ ],
+ ],
+ ],
+ 'GetBackup' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{name=projects/*/locations/*/services/*/backups/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetMetadataImport' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{name=projects/*/locations/*/services/*/metadataImports/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetService' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{name=projects/*/locations/*/services/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListBackups' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{parent=projects/*/locations/*/services/*}/backups',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListMetadataImports' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{parent=projects/*/locations/*/services/*}/metadataImports',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListServices' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{parent=projects/*/locations/*}/services',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'MoveTableToDatabase' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{service=projects/*/locations/*/services/*}:moveTableToDatabase',
+ 'body' => '*',
+ 'placeholders' => [
+ 'service' => [
+ 'getters' => [
+ 'getService',
+ ],
+ ],
+ ],
+ ],
+ 'QueryMetadata' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{service=projects/*/locations/*/services/*}:queryMetadata',
+ 'body' => '*',
+ 'placeholders' => [
+ 'service' => [
+ 'getters' => [
+ 'getService',
+ ],
+ ],
+ ],
+ ],
+ 'RemoveIamPolicy' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/services/*/**}:removeIamPolicy',
+ 'body' => '*',
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'RestoreService' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{service=projects/*/locations/*/services/*}:restore',
+ 'body' => '*',
+ 'placeholders' => [
+ 'service' => [
+ 'getters' => [
+ 'getService',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateMetadataImport' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1alpha/{metadata_import.name=projects/*/locations/*/services/*/metadataImports/*}',
+ 'body' => 'metadata_import',
+ 'placeholders' => [
+ 'metadata_import.name' => [
+ 'getters' => [
+ 'getMetadataImport',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ 'UpdateService' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1alpha/{service.name=projects/*/locations/*/services/*}',
+ 'body' => 'service',
+ 'placeholders' => [
+ 'service.name' => [
+ 'getters' => [
+ 'getService',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ ],
+ 'google.iam.v1.IAMPolicy' => [
+ 'GetIamPolicy' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/services/*}:getIamPolicy',
+ 'additionalBindings' => [
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/services/*/backups/*}:getIamPolicy',
+ ],
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/services/*/databases/*}:getIamPolicy',
+ ],
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/services/*/databases/*/tables/*}:getIamPolicy',
+ ],
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/federations/*}:getIamPolicy',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'SetIamPolicy' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/services/*}:setIamPolicy',
+ 'body' => '*',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/services/*/backups/*}:setIamPolicy',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/services/*/databases/*}:setIamPolicy',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/services/*/databases/*/tables/*}:setIamPolicy',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/federations/*}:setIamPolicy',
+ 'body' => '*',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'TestIamPermissions' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/services/*}:testIamPermissions',
+ 'body' => '*',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/services/*/backups/*}:testIamPermissions',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/services/*/databases/*}:testIamPermissions',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/services/*/databases/*/tables/*}:testIamPermissions',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{resource=projects/*/locations/*/federations/*}:testIamPermissions',
+ 'body' => '*',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.longrunning.Operations' => [
+ 'CancelOperation' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{name=projects/*/locations/*/operations/*}:cancel',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteOperation' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1alpha/{name=projects/*/locations/*/operations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetOperation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{name=projects/*/locations/*/operations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListOperations' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{name=projects/*/locations/*}/operations',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'numericEnums' => true,
+];
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/tests/Unit/V1alpha/DataprocMetastoreClientTest.php b/owl-bot-staging/DataprocMetastore/v1alpha/tests/Unit/V1alpha/DataprocMetastoreClientTest.php
new file mode 100644
index 000000000000..836ed8d475c5
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/tests/Unit/V1alpha/DataprocMetastoreClientTest.php
@@ -0,0 +1,2364 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return DataprocMetastoreClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new DataprocMetastoreClient($options);
+ }
+
+ /** @test */
+ public function alterMetadataResourceLocationTest()
+ {
+ $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/alterMetadataResourceLocationTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new AlterMetadataResourceLocationResponse();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/alterMetadataResourceLocationTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $resourceName = 'resourceName979421212';
+ $locationUri = 'locationUri-57953822';
+ $response = $gapicClient->alterMetadataResourceLocation($formattedService, $resourceName, $locationUri);
+ $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.metastore.v1alpha.DataprocMetastore/AlterMetadataResourceLocation', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getService();
+ $this->assertProtobufEquals($formattedService, $actualValue);
+ $actualValue = $actualApiRequestObject->getResourceName();
+ $this->assertProtobufEquals($resourceName, $actualValue);
+ $actualValue = $actualApiRequestObject->getLocationUri();
+ $this->assertProtobufEquals($locationUri, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/alterMetadataResourceLocationTest');
+ $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 alterMetadataResourceLocationExceptionTest()
+ {
+ $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/alterMetadataResourceLocationTest');
+ $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
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $resourceName = 'resourceName979421212';
+ $locationUri = 'locationUri-57953822';
+ $response = $gapicClient->alterMetadataResourceLocation($formattedService, $resourceName, $locationUri);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/alterMetadataResourceLocationTest');
+ 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 createBackupTest()
+ {
+ $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/createBackupTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $description = 'description-1724546052';
+ $expectedResponse = new Backup();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDescription($description);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createBackupTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $backupId = 'backupId1355353272';
+ $backup = new Backup();
+ $response = $gapicClient->createBackup($formattedParent, $backupId, $backup);
+ $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.metastore.v1alpha.DataprocMetastore/CreateBackup', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getBackupId();
+ $this->assertProtobufEquals($backupId, $actualValue);
+ $actualValue = $actualApiRequestObject->getBackup();
+ $this->assertProtobufEquals($backup, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createBackupTest');
+ $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 createBackupExceptionTest()
+ {
+ $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/createBackupTest');
+ $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->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $backupId = 'backupId1355353272';
+ $backup = new Backup();
+ $response = $gapicClient->createBackup($formattedParent, $backupId, $backup);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createBackupTest');
+ 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 createMetadataImportTest()
+ {
+ $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/createMetadataImportTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $description = 'description-1724546052';
+ $expectedResponse = new MetadataImport();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDescription($description);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createMetadataImportTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $metadataImportId = 'metadataImportId-476076315';
+ $metadataImport = new MetadataImport();
+ $response = $gapicClient->createMetadataImport($formattedParent, $metadataImportId, $metadataImport);
+ $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.metastore.v1alpha.DataprocMetastore/CreateMetadataImport', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getMetadataImportId();
+ $this->assertProtobufEquals($metadataImportId, $actualValue);
+ $actualValue = $actualApiRequestObject->getMetadataImport();
+ $this->assertProtobufEquals($metadataImport, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createMetadataImportTest');
+ $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 createMetadataImportExceptionTest()
+ {
+ $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/createMetadataImportTest');
+ $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->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $metadataImportId = 'metadataImportId-476076315';
+ $metadataImport = new MetadataImport();
+ $response = $gapicClient->createMetadataImport($formattedParent, $metadataImportId, $metadataImport);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createMetadataImportTest');
+ 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 createServiceTest()
+ {
+ $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/createServiceTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $network = 'network1843485230';
+ $endpointUri = 'endpointUri-850313278';
+ $port = 3446913;
+ $stateMessage = 'stateMessage29641305';
+ $artifactGcsUri = 'artifactGcsUri1337121495';
+ $uid = 'uid115792';
+ $expectedResponse = new Service();
+ $expectedResponse->setName($name);
+ $expectedResponse->setNetwork($network);
+ $expectedResponse->setEndpointUri($endpointUri);
+ $expectedResponse->setPort($port);
+ $expectedResponse->setStateMessage($stateMessage);
+ $expectedResponse->setArtifactGcsUri($artifactGcsUri);
+ $expectedResponse->setUid($uid);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createServiceTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $serviceId = 'serviceId-1724763419';
+ $service = new Service();
+ $response = $gapicClient->createService($formattedParent, $serviceId, $service);
+ $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.metastore.v1alpha.DataprocMetastore/CreateService', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getServiceId();
+ $this->assertProtobufEquals($serviceId, $actualValue);
+ $actualValue = $actualApiRequestObject->getService();
+ $this->assertProtobufEquals($service, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createServiceTest');
+ $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 createServiceExceptionTest()
+ {
+ $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/createServiceTest');
+ $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]');
+ $serviceId = 'serviceId-1724763419';
+ $service = new Service();
+ $response = $gapicClient->createService($formattedParent, $serviceId, $service);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createServiceTest');
+ 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 deleteBackupTest()
+ {
+ $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/deleteBackupTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteBackupTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ $response = $gapicClient->deleteBackup($formattedName);
+ $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.metastore.v1alpha.DataprocMetastore/DeleteBackup', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteBackupTest');
+ $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 deleteBackupExceptionTest()
+ {
+ $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/deleteBackupTest');
+ $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->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ $response = $gapicClient->deleteBackup($formattedName);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteBackupTest');
+ 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 deleteServiceTest()
+ {
+ $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/deleteServiceTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteServiceTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $response = $gapicClient->deleteService($formattedName);
+ $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.metastore.v1alpha.DataprocMetastore/DeleteService', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteServiceTest');
+ $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 deleteServiceExceptionTest()
+ {
+ $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/deleteServiceTest');
+ $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->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $response = $gapicClient->deleteService($formattedName);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteServiceTest');
+ 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 exportMetadataTest()
+ {
+ $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/exportMetadataTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $destinationGcsUri = 'destinationGcsUri1386421523';
+ $expectedResponse = new MetadataExport();
+ $expectedResponse->setDestinationGcsUri($destinationGcsUri);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/exportMetadataTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $response = $gapicClient->exportMetadata($formattedService);
+ $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.metastore.v1alpha.DataprocMetastore/ExportMetadata', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getService();
+ $this->assertProtobufEquals($formattedService, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/exportMetadataTest');
+ $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 exportMetadataExceptionTest()
+ {
+ $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/exportMetadataTest');
+ $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
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $response = $gapicClient->exportMetadata($formattedService);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/exportMetadataTest');
+ 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 getBackupTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $description = 'description-1724546052';
+ $expectedResponse = new Backup();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ $response = $gapicClient->getBackup($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1alpha.DataprocMetastore/GetBackup', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getBackupExceptionTest()
+ {
+ $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->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ try {
+ $gapicClient->getBackup($formattedName);
+ // 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 getMetadataImportTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $description = 'description-1724546052';
+ $expectedResponse = new MetadataImport();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->metadataImportName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[METADATA_IMPORT]');
+ $response = $gapicClient->getMetadataImport($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1alpha.DataprocMetastore/GetMetadataImport', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getMetadataImportExceptionTest()
+ {
+ $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->metadataImportName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[METADATA_IMPORT]');
+ try {
+ $gapicClient->getMetadataImport($formattedName);
+ // 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 getServiceTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $network = 'network1843485230';
+ $endpointUri = 'endpointUri-850313278';
+ $port = 3446913;
+ $stateMessage = 'stateMessage29641305';
+ $artifactGcsUri = 'artifactGcsUri1337121495';
+ $uid = 'uid115792';
+ $expectedResponse = new Service();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setNetwork($network);
+ $expectedResponse->setEndpointUri($endpointUri);
+ $expectedResponse->setPort($port);
+ $expectedResponse->setStateMessage($stateMessage);
+ $expectedResponse->setArtifactGcsUri($artifactGcsUri);
+ $expectedResponse->setUid($uid);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $response = $gapicClient->getService($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1alpha.DataprocMetastore/GetService', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getServiceExceptionTest()
+ {
+ $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->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ try {
+ $gapicClient->getService($formattedName);
+ // 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 listBackupsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $backupsElement = new Backup();
+ $backups = [
+ $backupsElement,
+ ];
+ $expectedResponse = new ListBackupsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setBackups($backups);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $response = $gapicClient->listBackups($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getBackups()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1alpha.DataprocMetastore/ListBackups', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listBackupsExceptionTest()
+ {
+ $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->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ try {
+ $gapicClient->listBackups($formattedParent);
+ // 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 listMetadataImportsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $metadataImportsElement = new MetadataImport();
+ $metadataImports = [
+ $metadataImportsElement,
+ ];
+ $expectedResponse = new ListMetadataImportsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setMetadataImports($metadataImports);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $response = $gapicClient->listMetadataImports($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getMetadataImports()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1alpha.DataprocMetastore/ListMetadataImports', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listMetadataImportsExceptionTest()
+ {
+ $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->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ try {
+ $gapicClient->listMetadataImports($formattedParent);
+ // 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 listServicesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $servicesElement = new Service();
+ $services = [
+ $servicesElement,
+ ];
+ $expectedResponse = new ListServicesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setServices($services);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $response = $gapicClient->listServices($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getServices()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1alpha.DataprocMetastore/ListServices', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listServicesExceptionTest()
+ {
+ $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]');
+ try {
+ $gapicClient->listServices($formattedParent);
+ // 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 moveTableToDatabaseTest()
+ {
+ $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/moveTableToDatabaseTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new MoveTableToDatabaseResponse();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/moveTableToDatabaseTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $tableName = 'tableName-1504630692';
+ $dbName = 'dbName1452819884';
+ $destinationDbName = 'destinationDbName-1322761605';
+ $response = $gapicClient->moveTableToDatabase($formattedService, $tableName, $dbName, $destinationDbName);
+ $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.metastore.v1alpha.DataprocMetastore/MoveTableToDatabase', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getService();
+ $this->assertProtobufEquals($formattedService, $actualValue);
+ $actualValue = $actualApiRequestObject->getTableName();
+ $this->assertProtobufEquals($tableName, $actualValue);
+ $actualValue = $actualApiRequestObject->getDbName();
+ $this->assertProtobufEquals($dbName, $actualValue);
+ $actualValue = $actualApiRequestObject->getDestinationDbName();
+ $this->assertProtobufEquals($destinationDbName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/moveTableToDatabaseTest');
+ $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 moveTableToDatabaseExceptionTest()
+ {
+ $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/moveTableToDatabaseTest');
+ $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
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $tableName = 'tableName-1504630692';
+ $dbName = 'dbName1452819884';
+ $destinationDbName = 'destinationDbName-1322761605';
+ $response = $gapicClient->moveTableToDatabase($formattedService, $tableName, $dbName, $destinationDbName);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/moveTableToDatabaseTest');
+ 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 queryMetadataTest()
+ {
+ $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/queryMetadataTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $resultManifestUri = 'resultManifestUri-1050940354';
+ $expectedResponse = new QueryMetadataResponse();
+ $expectedResponse->setResultManifestUri($resultManifestUri);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/queryMetadataTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $query = 'query107944136';
+ $response = $gapicClient->queryMetadata($formattedService, $query);
+ $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.metastore.v1alpha.DataprocMetastore/QueryMetadata', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getService();
+ $this->assertProtobufEquals($formattedService, $actualValue);
+ $actualValue = $actualApiRequestObject->getQuery();
+ $this->assertProtobufEquals($query, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/queryMetadataTest');
+ $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 queryMetadataExceptionTest()
+ {
+ $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/queryMetadataTest');
+ $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
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $query = 'query107944136';
+ $response = $gapicClient->queryMetadata($formattedService, $query);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/queryMetadataTest');
+ 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 removeIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $success = false;
+ $expectedResponse = new RemoveIamPolicyResponse();
+ $expectedResponse->setSuccess($success);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $response = $gapicClient->removeIamPolicy($resource);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1alpha.DataprocMetastore/RemoveIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function removeIamPolicyExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ try {
+ $gapicClient->removeIamPolicy($resource);
+ // 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 restoreServiceTest()
+ {
+ $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/restoreServiceTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $backup2 = 'backup22121930997';
+ $details = 'details1557721666';
+ $expectedResponse = new Restore();
+ $expectedResponse->setBackup($backup2);
+ $expectedResponse->setDetails($details);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/restoreServiceTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $formattedBackup = $gapicClient->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ $response = $gapicClient->restoreService($formattedService, $formattedBackup);
+ $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.metastore.v1alpha.DataprocMetastore/RestoreService', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getService();
+ $this->assertProtobufEquals($formattedService, $actualValue);
+ $actualValue = $actualApiRequestObject->getBackup();
+ $this->assertProtobufEquals($formattedBackup, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/restoreServiceTest');
+ $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 restoreServiceExceptionTest()
+ {
+ $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/restoreServiceTest');
+ $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
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $formattedBackup = $gapicClient->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ $response = $gapicClient->restoreService($formattedService, $formattedBackup);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/restoreServiceTest');
+ 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 updateMetadataImportTest()
+ {
+ $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/updateMetadataImportTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $description = 'description-1724546052';
+ $expectedResponse = new MetadataImport();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDescription($description);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateMetadataImportTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $updateMask = new FieldMask();
+ $metadataImport = new MetadataImport();
+ $response = $gapicClient->updateMetadataImport($updateMask, $metadataImport);
+ $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.metastore.v1alpha.DataprocMetastore/UpdateMetadataImport', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualApiRequestObject->getMetadataImport();
+ $this->assertProtobufEquals($metadataImport, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateMetadataImportTest');
+ $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 updateMetadataImportExceptionTest()
+ {
+ $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/updateMetadataImportTest');
+ $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();
+ $metadataImport = new MetadataImport();
+ $response = $gapicClient->updateMetadataImport($updateMask, $metadataImport);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateMetadataImportTest');
+ 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 updateServiceTest()
+ {
+ $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/updateServiceTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $network = 'network1843485230';
+ $endpointUri = 'endpointUri-850313278';
+ $port = 3446913;
+ $stateMessage = 'stateMessage29641305';
+ $artifactGcsUri = 'artifactGcsUri1337121495';
+ $uid = 'uid115792';
+ $expectedResponse = new Service();
+ $expectedResponse->setName($name);
+ $expectedResponse->setNetwork($network);
+ $expectedResponse->setEndpointUri($endpointUri);
+ $expectedResponse->setPort($port);
+ $expectedResponse->setStateMessage($stateMessage);
+ $expectedResponse->setArtifactGcsUri($artifactGcsUri);
+ $expectedResponse->setUid($uid);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateServiceTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $updateMask = new FieldMask();
+ $service = new Service();
+ $response = $gapicClient->updateService($updateMask, $service);
+ $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.metastore.v1alpha.DataprocMetastore/UpdateService', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualApiRequestObject->getService();
+ $this->assertProtobufEquals($service, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateServiceTest');
+ $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 updateServiceExceptionTest()
+ {
+ $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/updateServiceTest');
+ $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();
+ $service = new Service();
+ $response = $gapicClient->updateService($updateMask, $service);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateServiceTest');
+ 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);
+ $response = $gapicClient->getLocation();
+ $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);
+ try {
+ $gapicClient->getLocation();
+ // 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);
+ $response = $gapicClient->listLocations();
+ $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);
+ try {
+ $gapicClient->listLocations();
+ // 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 getIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $version = 351608024;
+ $etag = '21';
+ $expectedResponse = new Policy();
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $response = $gapicClient->getIamPolicy($resource);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/GetIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getIamPolicyExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ try {
+ $gapicClient->getIamPolicy($resource);
+ // 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 setIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $version = 351608024;
+ $etag = '21';
+ $expectedResponse = new Policy();
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $policy = new Policy();
+ $response = $gapicClient->setIamPolicy($resource, $policy);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/SetIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $actualValue = $actualRequestObject->getPolicy();
+ $this->assertProtobufEquals($policy, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function setIamPolicyExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ $policy = new Policy();
+ try {
+ $gapicClient->setIamPolicy($resource, $policy);
+ // 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 testIamPermissionsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new TestIamPermissionsResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $permissions = [];
+ $response = $gapicClient->testIamPermissions($resource, $permissions);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/TestIamPermissions', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $actualValue = $actualRequestObject->getPermissions();
+ $this->assertProtobufEquals($permissions, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function testIamPermissionsExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ $permissions = [];
+ try {
+ $gapicClient->testIamPermissions($resource, $permissions);
+ // 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());
+ }
+}
diff --git a/owl-bot-staging/DataprocMetastore/v1alpha/tests/Unit/V1alpha/DataprocMetastoreFederationClientTest.php b/owl-bot-staging/DataprocMetastore/v1alpha/tests/Unit/V1alpha/DataprocMetastoreFederationClientTest.php
new file mode 100644
index 000000000000..88348d6e8e58
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1alpha/tests/Unit/V1alpha/DataprocMetastoreFederationClientTest.php
@@ -0,0 +1,901 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return DataprocMetastoreFederationClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new DataprocMetastoreFederationClient($options);
+ }
+
+ /** @test */
+ public function createFederationTest()
+ {
+ $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/createFederationTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $version = 'version351608024';
+ $endpointUri = 'endpointUri-850313278';
+ $stateMessage = 'stateMessage29641305';
+ $uid = 'uid115792';
+ $expectedResponse = new Federation();
+ $expectedResponse->setName($name);
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEndpointUri($endpointUri);
+ $expectedResponse->setStateMessage($stateMessage);
+ $expectedResponse->setUid($uid);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createFederationTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $federationId = 'federationId-1338699881';
+ $federation = new Federation();
+ $response = $gapicClient->createFederation($formattedParent, $federationId, $federation);
+ $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.metastore.v1alpha.DataprocMetastoreFederation/CreateFederation', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getFederationId();
+ $this->assertProtobufEquals($federationId, $actualValue);
+ $actualValue = $actualApiRequestObject->getFederation();
+ $this->assertProtobufEquals($federation, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createFederationTest');
+ $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 createFederationExceptionTest()
+ {
+ $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/createFederationTest');
+ $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]');
+ $federationId = 'federationId-1338699881';
+ $federation = new Federation();
+ $response = $gapicClient->createFederation($formattedParent, $federationId, $federation);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createFederationTest');
+ 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 deleteFederationTest()
+ {
+ $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/deleteFederationTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteFederationTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->federationName('[PROJECT]', '[LOCATION]', '[FEDERATION]');
+ $response = $gapicClient->deleteFederation($formattedName);
+ $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.metastore.v1alpha.DataprocMetastoreFederation/DeleteFederation', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteFederationTest');
+ $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 deleteFederationExceptionTest()
+ {
+ $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/deleteFederationTest');
+ $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->federationName('[PROJECT]', '[LOCATION]', '[FEDERATION]');
+ $response = $gapicClient->deleteFederation($formattedName);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteFederationTest');
+ 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 getFederationTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $version = 'version351608024';
+ $endpointUri = 'endpointUri-850313278';
+ $stateMessage = 'stateMessage29641305';
+ $uid = 'uid115792';
+ $expectedResponse = new Federation();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEndpointUri($endpointUri);
+ $expectedResponse->setStateMessage($stateMessage);
+ $expectedResponse->setUid($uid);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->federationName('[PROJECT]', '[LOCATION]', '[FEDERATION]');
+ $response = $gapicClient->getFederation($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1alpha.DataprocMetastoreFederation/GetFederation', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getFederationExceptionTest()
+ {
+ $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->federationName('[PROJECT]', '[LOCATION]', '[FEDERATION]');
+ try {
+ $gapicClient->getFederation($formattedName);
+ // 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 listFederationsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $federationsElement = new Federation();
+ $federations = [
+ $federationsElement,
+ ];
+ $expectedResponse = new ListFederationsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setFederations($federations);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $response = $gapicClient->listFederations($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getFederations()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1alpha.DataprocMetastoreFederation/ListFederations', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listFederationsExceptionTest()
+ {
+ $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]');
+ try {
+ $gapicClient->listFederations($formattedParent);
+ // 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 updateFederationTest()
+ {
+ $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/updateFederationTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $version = 'version351608024';
+ $endpointUri = 'endpointUri-850313278';
+ $stateMessage = 'stateMessage29641305';
+ $uid = 'uid115792';
+ $expectedResponse = new Federation();
+ $expectedResponse->setName($name);
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEndpointUri($endpointUri);
+ $expectedResponse->setStateMessage($stateMessage);
+ $expectedResponse->setUid($uid);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateFederationTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $updateMask = new FieldMask();
+ $federation = new Federation();
+ $response = $gapicClient->updateFederation($updateMask, $federation);
+ $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.metastore.v1alpha.DataprocMetastoreFederation/UpdateFederation', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualApiRequestObject->getFederation();
+ $this->assertProtobufEquals($federation, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateFederationTest');
+ $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 updateFederationExceptionTest()
+ {
+ $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/updateFederationTest');
+ $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();
+ $federation = new Federation();
+ $response = $gapicClient->updateFederation($updateMask, $federation);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateFederationTest');
+ 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);
+ $response = $gapicClient->getLocation();
+ $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);
+ try {
+ $gapicClient->getLocation();
+ // 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);
+ $response = $gapicClient->listLocations();
+ $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);
+ try {
+ $gapicClient->listLocations();
+ // 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 getIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $version = 351608024;
+ $etag = '21';
+ $expectedResponse = new Policy();
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $response = $gapicClient->getIamPolicy($resource);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/GetIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getIamPolicyExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ try {
+ $gapicClient->getIamPolicy($resource);
+ // 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 setIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $version = 351608024;
+ $etag = '21';
+ $expectedResponse = new Policy();
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $policy = new Policy();
+ $response = $gapicClient->setIamPolicy($resource, $policy);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/SetIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $actualValue = $actualRequestObject->getPolicy();
+ $this->assertProtobufEquals($policy, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function setIamPolicyExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ $policy = new Policy();
+ try {
+ $gapicClient->setIamPolicy($resource, $policy);
+ // 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 testIamPermissionsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new TestIamPermissionsResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $permissions = [];
+ $response = $gapicClient->testIamPermissions($resource, $permissions);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/TestIamPermissions', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $actualValue = $actualRequestObject->getPermissions();
+ $this->assertProtobufEquals($permissions, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function testIamPermissionsExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ $permissions = [];
+ try {
+ $gapicClient->testIamPermissions($resource, $permissions);
+ // 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());
+ }
+}
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/GPBMetadata/Google/Cloud/Metastore/V1Beta/Metastore.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/GPBMetadata/Google/Cloud/Metastore/V1Beta/Metastore.php
new file mode 100644
index 000000000000..6d7f8a0d6dad
Binary files /dev/null and b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/GPBMetadata/Google/Cloud/Metastore/V1Beta/Metastore.php differ
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/GPBMetadata/Google/Cloud/Metastore/V1Beta/MetastoreFederation.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/GPBMetadata/Google/Cloud/Metastore/V1Beta/MetastoreFederation.php
new file mode 100644
index 000000000000..87fc10e1c67a
Binary files /dev/null and b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/GPBMetadata/Google/Cloud/Metastore/V1Beta/MetastoreFederation.php differ
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/AlterMetadataResourceLocationRequest.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/AlterMetadataResourceLocationRequest.php
new file mode 100644
index 000000000000..fc849cb388b1
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/AlterMetadataResourceLocationRequest.php
@@ -0,0 +1,164 @@
+google.cloud.metastore.v1beta.AlterMetadataResourceLocationRequest
+ */
+class AlterMetadataResourceLocationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metastore service to mutate
+ * metadata, in the following format:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $service = '';
+ /**
+ * Required. The relative metadata resource name in the following format.
+ * `databases/{database_id}`
+ * or
+ * `databases/{database_id}/tables/{table_id}`
+ * or
+ * `databases/{database_id}/tables/{table_id}/partitions/{partition_id}`
+ *
+ * Generated from protobuf field string resource_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $resource_name = '';
+ /**
+ * Required. The new location URI for the metadata resource.
+ *
+ * Generated from protobuf field string location_uri = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $location_uri = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $service
+ * Required. The relative resource name of the metastore service to mutate
+ * metadata, in the following format:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ * @type string $resource_name
+ * Required. The relative metadata resource name in the following format.
+ * `databases/{database_id}`
+ * or
+ * `databases/{database_id}/tables/{table_id}`
+ * or
+ * `databases/{database_id}/tables/{table_id}/partitions/{partition_id}`
+ * @type string $location_uri
+ * Required. The new location URI for the metadata resource.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to mutate
+ * metadata, in the following format:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to mutate
+ * metadata, in the following format:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The relative metadata resource name in the following format.
+ * `databases/{database_id}`
+ * or
+ * `databases/{database_id}/tables/{table_id}`
+ * or
+ * `databases/{database_id}/tables/{table_id}/partitions/{partition_id}`
+ *
+ * Generated from protobuf field string resource_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getResourceName()
+ {
+ return $this->resource_name;
+ }
+
+ /**
+ * Required. The relative metadata resource name in the following format.
+ * `databases/{database_id}`
+ * or
+ * `databases/{database_id}/tables/{table_id}`
+ * or
+ * `databases/{database_id}/tables/{table_id}/partitions/{partition_id}`
+ *
+ * Generated from protobuf field string resource_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setResourceName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->resource_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The new location URI for the metadata resource.
+ *
+ * Generated from protobuf field string location_uri = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getLocationUri()
+ {
+ return $this->location_uri;
+ }
+
+ /**
+ * Required. The new location URI for the metadata resource.
+ *
+ * Generated from protobuf field string location_uri = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setLocationUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->location_uri = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/AlterMetadataResourceLocationResponse.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/AlterMetadataResourceLocationResponse.php
new file mode 100644
index 000000000000..03eec5061def
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/AlterMetadataResourceLocationResponse.php
@@ -0,0 +1,34 @@
+google.cloud.metastore.v1beta.AlterMetadataResourceLocationResponse
+ */
+class AlterMetadataResourceLocationResponse extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/AuxiliaryVersionConfig.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/AuxiliaryVersionConfig.php
new file mode 100644
index 000000000000..968460eae50e
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/AuxiliaryVersionConfig.php
@@ -0,0 +1,169 @@
+google.cloud.metastore.v1beta.AuxiliaryVersionConfig
+ */
+class AuxiliaryVersionConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The Hive metastore version of the auxiliary service. It must be less
+ * than the primary Hive metastore service's version.
+ *
+ * Generated from protobuf field string version = 1;
+ */
+ protected $version = '';
+ /**
+ * A mapping of Hive metastore configuration key-value pairs to apply to the
+ * auxiliary Hive metastore (configured in `hive-site.xml`) in addition to
+ * the primary version's overrides. If keys are present in both the auxiliary
+ * version's overrides and the primary version's overrides, the value from
+ * the auxiliary version's overrides takes precedence.
+ *
+ * Generated from protobuf field map config_overrides = 2;
+ */
+ private $config_overrides;
+ /**
+ * Output only. The network configuration contains the endpoint URI(s) of the
+ * auxiliary Hive metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.NetworkConfig network_config = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $network_config = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $version
+ * The Hive metastore version of the auxiliary service. It must be less
+ * than the primary Hive metastore service's version.
+ * @type array|\Google\Protobuf\Internal\MapField $config_overrides
+ * A mapping of Hive metastore configuration key-value pairs to apply to the
+ * auxiliary Hive metastore (configured in `hive-site.xml`) in addition to
+ * the primary version's overrides. If keys are present in both the auxiliary
+ * version's overrides and the primary version's overrides, the value from
+ * the auxiliary version's overrides takes precedence.
+ * @type \Google\Cloud\Metastore\V1beta\NetworkConfig $network_config
+ * Output only. The network configuration contains the endpoint URI(s) of the
+ * auxiliary Hive metastore service.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The Hive metastore version of the auxiliary service. It must be less
+ * than the primary Hive metastore service's version.
+ *
+ * Generated from protobuf field string version = 1;
+ * @return string
+ */
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ /**
+ * The Hive metastore version of the auxiliary service. It must be less
+ * than the primary Hive metastore service's version.
+ *
+ * Generated from protobuf field string version = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->version = $var;
+
+ return $this;
+ }
+
+ /**
+ * A mapping of Hive metastore configuration key-value pairs to apply to the
+ * auxiliary Hive metastore (configured in `hive-site.xml`) in addition to
+ * the primary version's overrides. If keys are present in both the auxiliary
+ * version's overrides and the primary version's overrides, the value from
+ * the auxiliary version's overrides takes precedence.
+ *
+ * Generated from protobuf field map config_overrides = 2;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getConfigOverrides()
+ {
+ return $this->config_overrides;
+ }
+
+ /**
+ * A mapping of Hive metastore configuration key-value pairs to apply to the
+ * auxiliary Hive metastore (configured in `hive-site.xml`) in addition to
+ * the primary version's overrides. If keys are present in both the auxiliary
+ * version's overrides and the primary version's overrides, the value from
+ * the auxiliary version's overrides takes precedence.
+ *
+ * Generated from protobuf field map config_overrides = 2;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setConfigOverrides($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->config_overrides = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The network configuration contains the endpoint URI(s) of the
+ * auxiliary Hive metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.NetworkConfig network_config = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Metastore\V1beta\NetworkConfig|null
+ */
+ public function getNetworkConfig()
+ {
+ return $this->network_config;
+ }
+
+ public function hasNetworkConfig()
+ {
+ return isset($this->network_config);
+ }
+
+ public function clearNetworkConfig()
+ {
+ unset($this->network_config);
+ }
+
+ /**
+ * Output only. The network configuration contains the endpoint URI(s) of the
+ * auxiliary Hive metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.NetworkConfig network_config = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Metastore\V1beta\NetworkConfig $var
+ * @return $this
+ */
+ public function setNetworkConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1beta\NetworkConfig::class);
+ $this->network_config = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/BackendMetastore.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/BackendMetastore.php
new file mode 100644
index 000000000000..6b4bff0e5194
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/BackendMetastore.php
@@ -0,0 +1,125 @@
+google.cloud.metastore.v1beta.BackendMetastore
+ */
+class BackendMetastore extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The relative resource name of the metastore that is being federated.
+ * The formats of the relative resource names for the currently supported
+ * metastores are listed below:
+ * * BigQuery
+ * * `projects/{project_id}`
+ * * Dataproc Metastore
+ * * `projects/{project_id}/locations/{location}/services/{service_id}`
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * The type of the backend metastore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.BackendMetastore.MetastoreType metastore_type = 2;
+ */
+ protected $metastore_type = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The relative resource name of the metastore that is being federated.
+ * The formats of the relative resource names for the currently supported
+ * metastores are listed below:
+ * * BigQuery
+ * * `projects/{project_id}`
+ * * Dataproc Metastore
+ * * `projects/{project_id}/locations/{location}/services/{service_id}`
+ * @type int $metastore_type
+ * The type of the backend metastore.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\MetastoreFederation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The relative resource name of the metastore that is being federated.
+ * The formats of the relative resource names for the currently supported
+ * metastores are listed below:
+ * * BigQuery
+ * * `projects/{project_id}`
+ * * Dataproc Metastore
+ * * `projects/{project_id}/locations/{location}/services/{service_id}`
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The relative resource name of the metastore that is being federated.
+ * The formats of the relative resource names for the currently supported
+ * metastores are listed below:
+ * * BigQuery
+ * * `projects/{project_id}`
+ * * Dataproc Metastore
+ * * `projects/{project_id}/locations/{location}/services/{service_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;
+ }
+
+ /**
+ * The type of the backend metastore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.BackendMetastore.MetastoreType metastore_type = 2;
+ * @return int
+ */
+ public function getMetastoreType()
+ {
+ return $this->metastore_type;
+ }
+
+ /**
+ * The type of the backend metastore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.BackendMetastore.MetastoreType metastore_type = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setMetastoreType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1beta\BackendMetastore\MetastoreType::class);
+ $this->metastore_type = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/BackendMetastore/MetastoreType.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/BackendMetastore/MetastoreType.php
new file mode 100644
index 000000000000..4f52e47ec7df
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/BackendMetastore/MetastoreType.php
@@ -0,0 +1,71 @@
+google.cloud.metastore.v1beta.BackendMetastore.MetastoreType
+ */
+class MetastoreType
+{
+ /**
+ * The metastore type is not set.
+ *
+ * Generated from protobuf enum METASTORE_TYPE_UNSPECIFIED = 0;
+ */
+ const METASTORE_TYPE_UNSPECIFIED = 0;
+ /**
+ * The backend metastore is Dataplex.
+ *
+ * Generated from protobuf enum DATAPLEX = 1;
+ */
+ const DATAPLEX = 1;
+ /**
+ * The backend metastore is BigQuery.
+ *
+ * Generated from protobuf enum BIGQUERY = 2;
+ */
+ const BIGQUERY = 2;
+ /**
+ * The backend metastore is Dataproc Metastore.
+ *
+ * Generated from protobuf enum DATAPROC_METASTORE = 3;
+ */
+ const DATAPROC_METASTORE = 3;
+
+ private static $valueToName = [
+ self::METASTORE_TYPE_UNSPECIFIED => 'METASTORE_TYPE_UNSPECIFIED',
+ self::DATAPLEX => 'DATAPLEX',
+ self::BIGQUERY => 'BIGQUERY',
+ self::DATAPROC_METASTORE => 'DATAPROC_METASTORE',
+ ];
+
+ 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(MetastoreType::class, \Google\Cloud\Metastore\V1beta\BackendMetastore_MetastoreType::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/BackendMetastore_MetastoreType.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/BackendMetastore_MetastoreType.php
new file mode 100644
index 000000000000..2bfb08dc8b6b
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/BackendMetastore_MetastoreType.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1beta.Backup
+ */
+class Backup extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Immutable. The relative resource name of the backup, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $name = '';
+ /**
+ * Output only. The time when the backup was started.
+ *
+ * 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 backup finished creating.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $end_time = null;
+ /**
+ * Output only. The current state of the backup.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Backup.State state = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. The revision of the service at the time of backup.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Service service_revision = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $service_revision = null;
+ /**
+ * The description of the backup.
+ *
+ * Generated from protobuf field string description = 6;
+ */
+ protected $description = '';
+ /**
+ * Output only. Services that are restoring from the backup.
+ *
+ * Generated from protobuf field repeated string restoring_services = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $restoring_services;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Immutable. The relative resource name of the backup, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time when the backup was started.
+ * @type \Google\Protobuf\Timestamp $end_time
+ * Output only. The time when the backup finished creating.
+ * @type int $state
+ * Output only. The current state of the backup.
+ * @type \Google\Cloud\Metastore\V1beta\Service $service_revision
+ * Output only. The revision of the service at the time of backup.
+ * @type string $description
+ * The description of the backup.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $restoring_services
+ * Output only. Services that are restoring from the backup.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Immutable. The relative resource name of the backup, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Immutable. The relative resource name of the backup, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the backup was started.
+ *
+ * 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 backup was started.
+ *
+ * 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 backup finished creating.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 3 [(.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 when the backup finished creating.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 3 [(.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 current state of the backup.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Backup.State state = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The current state of the backup.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Backup.State state = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1beta\Backup\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The revision of the service at the time of backup.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Service service_revision = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Metastore\V1beta\Service|null
+ */
+ public function getServiceRevision()
+ {
+ return $this->service_revision;
+ }
+
+ public function hasServiceRevision()
+ {
+ return isset($this->service_revision);
+ }
+
+ public function clearServiceRevision()
+ {
+ unset($this->service_revision);
+ }
+
+ /**
+ * Output only. The revision of the service at the time of backup.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Service service_revision = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Metastore\V1beta\Service $var
+ * @return $this
+ */
+ public function setServiceRevision($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1beta\Service::class);
+ $this->service_revision = $var;
+
+ return $this;
+ }
+
+ /**
+ * The description of the backup.
+ *
+ * Generated from protobuf field string description = 6;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * The description of the backup.
+ *
+ * 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;
+ }
+
+ /**
+ * Output only. Services that are restoring from the backup.
+ *
+ * Generated from protobuf field repeated string restoring_services = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRestoringServices()
+ {
+ return $this->restoring_services;
+ }
+
+ /**
+ * Output only. Services that are restoring from the backup.
+ *
+ * Generated from protobuf field repeated string restoring_services = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRestoringServices($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->restoring_services = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Backup/State.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Backup/State.php
new file mode 100644
index 000000000000..b66b7d93284c
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Backup/State.php
@@ -0,0 +1,85 @@
+google.cloud.metastore.v1beta.Backup.State
+ */
+class State
+{
+ /**
+ * The state of the backup is unknown.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The backup is being created.
+ *
+ * Generated from protobuf enum CREATING = 1;
+ */
+ const CREATING = 1;
+ /**
+ * The backup is being deleted.
+ *
+ * Generated from protobuf enum DELETING = 2;
+ */
+ const DELETING = 2;
+ /**
+ * The backup is active and ready to use.
+ *
+ * Generated from protobuf enum ACTIVE = 3;
+ */
+ const ACTIVE = 3;
+ /**
+ * The backup failed.
+ *
+ * Generated from protobuf enum FAILED = 4;
+ */
+ const FAILED = 4;
+ /**
+ * The backup is being restored.
+ *
+ * Generated from protobuf enum RESTORING = 5;
+ */
+ const RESTORING = 5;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::CREATING => 'CREATING',
+ self::DELETING => 'DELETING',
+ self::ACTIVE => 'ACTIVE',
+ self::FAILED => 'FAILED',
+ self::RESTORING => 'RESTORING',
+ ];
+
+ 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\Metastore\V1beta\Backup_State::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Backup_State.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Backup_State.php
new file mode 100644
index 000000000000..1c1b9cc5c689
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Backup_State.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1beta.CreateBackupRequest
+ */
+class CreateBackupRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the service in which to create a
+ * backup of the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The ID of the backup, which is used as the final component of the
+ * backup's name.
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ *
+ * Generated from protobuf field string backup_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $backup_id = '';
+ /**
+ * Required. The backup to create. The `name` field is ignored. The ID of the
+ * created backup must be provided in the request's `backup_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Backup backup = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $backup = null;
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The relative resource name of the service in which to create a
+ * backup of the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * @type string $backup_id
+ * Required. The ID of the backup, which is used as the final component of the
+ * backup's name.
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ * @type \Google\Cloud\Metastore\V1beta\Backup $backup
+ * Required. The backup to create. The `name` field is ignored. The ID of the
+ * created backup must be provided in the request's `backup_id` field.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the service in which to create a
+ * backup of the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * 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 relative resource name of the service in which to create a
+ * backup of the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * 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 backup, which is used as the final component of the
+ * backup's name.
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ *
+ * Generated from protobuf field string backup_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getBackupId()
+ {
+ return $this->backup_id;
+ }
+
+ /**
+ * Required. The ID of the backup, which is used as the final component of the
+ * backup's name.
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ *
+ * Generated from protobuf field string backup_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setBackupId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->backup_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The backup to create. The `name` field is ignored. The ID of the
+ * created backup must be provided in the request's `backup_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Backup backup = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Metastore\V1beta\Backup|null
+ */
+ public function getBackup()
+ {
+ return $this->backup;
+ }
+
+ public function hasBackup()
+ {
+ return isset($this->backup);
+ }
+
+ public function clearBackup()
+ {
+ unset($this->backup);
+ }
+
+ /**
+ * Required. The backup to create. The `name` field is ignored. The ID of the
+ * created backup must be provided in the request's `backup_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Backup backup = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Metastore\V1beta\Backup $var
+ * @return $this
+ */
+ public function setBackup($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1beta\Backup::class);
+ $this->backup = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/CreateFederationRequest.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/CreateFederationRequest.php
new file mode 100644
index 000000000000..bbc27b9a9cb9
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/CreateFederationRequest.php
@@ -0,0 +1,247 @@
+google.cloud.metastore.v1beta.CreateFederationRequest
+ */
+class CreateFederationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the location in which to create a
+ * federation service, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The ID of the metastore federation, which is used as the final
+ * component of the metastore federation's name.
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ *
+ * Generated from protobuf field string federation_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $federation_id = '';
+ /**
+ * Required. The Metastore Federation to create. The `name` field is
+ * ignored. The ID of the created metastore federation must be
+ * provided in the request's `federation_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Federation federation = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $federation = null;
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The relative resource name of the location in which to create a
+ * federation service, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ * @type string $federation_id
+ * Required. The ID of the metastore federation, which is used as the final
+ * component of the metastore federation's name.
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ * @type \Google\Cloud\Metastore\V1beta\Federation $federation
+ * Required. The Metastore Federation to create. The `name` field is
+ * ignored. The ID of the created metastore federation must be
+ * provided in the request's `federation_id` field.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\MetastoreFederation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the location in which to create a
+ * federation service, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * 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 relative resource name of the location in which to create a
+ * federation service, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * 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 metastore federation, which is used as the final
+ * component of the metastore federation's name.
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ *
+ * Generated from protobuf field string federation_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getFederationId()
+ {
+ return $this->federation_id;
+ }
+
+ /**
+ * Required. The ID of the metastore federation, which is used as the final
+ * component of the metastore federation's name.
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ *
+ * Generated from protobuf field string federation_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setFederationId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->federation_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The Metastore Federation to create. The `name` field is
+ * ignored. The ID of the created metastore federation must be
+ * provided in the request's `federation_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Federation federation = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Metastore\V1beta\Federation|null
+ */
+ public function getFederation()
+ {
+ return $this->federation;
+ }
+
+ public function hasFederation()
+ {
+ return isset($this->federation);
+ }
+
+ public function clearFederation()
+ {
+ unset($this->federation);
+ }
+
+ /**
+ * Required. The Metastore Federation to create. The `name` field is
+ * ignored. The ID of the created metastore federation must be
+ * provided in the request's `federation_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Federation federation = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Metastore\V1beta\Federation $var
+ * @return $this
+ */
+ public function setFederation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1beta\Federation::class);
+ $this->federation = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/CreateMetadataImportRequest.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/CreateMetadataImportRequest.php
new file mode 100644
index 000000000000..0b854d8101a3
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/CreateMetadataImportRequest.php
@@ -0,0 +1,248 @@
+google.cloud.metastore.v1beta.CreateMetadataImportRequest
+ */
+class CreateMetadataImportRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the service in which to create a
+ * metastore import, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The ID of the metadata import, which is used as the final
+ * component of the metadata import's name.
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ *
+ * Generated from protobuf field string metadata_import_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $metadata_import_id = '';
+ /**
+ * Required. The metadata import to create. The `name` field is ignored. The
+ * ID of the created metadata import must be provided in the request's
+ * `metadata_import_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.MetadataImport metadata_import = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $metadata_import = null;
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The relative resource name of the service in which to create a
+ * metastore import, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * @type string $metadata_import_id
+ * Required. The ID of the metadata import, which is used as the final
+ * component of the metadata import's name.
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ * @type \Google\Cloud\Metastore\V1beta\MetadataImport $metadata_import
+ * Required. The metadata import to create. The `name` field is ignored. The
+ * ID of the created metadata import must be provided in the request's
+ * `metadata_import_id` field.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the service in which to create a
+ * metastore import, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * 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 relative resource name of the service in which to create a
+ * metastore import, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * 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 metadata import, which is used as the final
+ * component of the metadata import's name.
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ *
+ * Generated from protobuf field string metadata_import_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getMetadataImportId()
+ {
+ return $this->metadata_import_id;
+ }
+
+ /**
+ * Required. The ID of the metadata import, which is used as the final
+ * component of the metadata import's name.
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ *
+ * Generated from protobuf field string metadata_import_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setMetadataImportId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->metadata_import_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The metadata import to create. The `name` field is ignored. The
+ * ID of the created metadata import must be provided in the request's
+ * `metadata_import_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.MetadataImport metadata_import = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Metastore\V1beta\MetadataImport|null
+ */
+ public function getMetadataImport()
+ {
+ return $this->metadata_import;
+ }
+
+ public function hasMetadataImport()
+ {
+ return isset($this->metadata_import);
+ }
+
+ public function clearMetadataImport()
+ {
+ unset($this->metadata_import);
+ }
+
+ /**
+ * Required. The metadata import to create. The `name` field is ignored. The
+ * ID of the created metadata import must be provided in the request's
+ * `metadata_import_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.MetadataImport metadata_import = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Metastore\V1beta\MetadataImport $var
+ * @return $this
+ */
+ public function setMetadataImport($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1beta\MetadataImport::class);
+ $this->metadata_import = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/CreateServiceRequest.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/CreateServiceRequest.php
new file mode 100644
index 000000000000..b4c1d5f098ec
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/CreateServiceRequest.php
@@ -0,0 +1,248 @@
+google.cloud.metastore.v1beta.CreateServiceRequest
+ */
+class CreateServiceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the location in which to create a
+ * metastore service, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The ID of the metastore service, which is used as the final
+ * component of the metastore service's name.
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ *
+ * Generated from protobuf field string service_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $service_id = '';
+ /**
+ * Required. The Metastore service to create. The `name` field is
+ * ignored. The ID of the created metastore service must be provided in
+ * the request's `service_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Service service = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $service = null;
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The relative resource name of the location in which to create a
+ * metastore service, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ * @type string $service_id
+ * Required. The ID of the metastore service, which is used as the final
+ * component of the metastore service's name.
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ * @type \Google\Cloud\Metastore\V1beta\Service $service
+ * Required. The Metastore service to create. The `name` field is
+ * ignored. The ID of the created metastore service must be provided in
+ * the request's `service_id` field.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the location in which to create a
+ * metastore service, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * 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 relative resource name of the location in which to create a
+ * metastore service, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * 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 metastore service, which is used as the final
+ * component of the metastore service's name.
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ *
+ * Generated from protobuf field string service_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getServiceId()
+ {
+ return $this->service_id;
+ }
+
+ /**
+ * Required. The ID of the metastore service, which is used as the final
+ * component of the metastore service's name.
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ *
+ * Generated from protobuf field string service_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setServiceId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The Metastore service to create. The `name` field is
+ * ignored. The ID of the created metastore service must be provided in
+ * the request's `service_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Service service = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Metastore\V1beta\Service|null
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ public function hasService()
+ {
+ return isset($this->service);
+ }
+
+ public function clearService()
+ {
+ unset($this->service);
+ }
+
+ /**
+ * Required. The Metastore service to create. The `name` field is
+ * ignored. The ID of the created metastore service must be provided in
+ * the request's `service_id` field.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Service service = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Metastore\V1beta\Service $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1beta\Service::class);
+ $this->service = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DataCatalogConfig.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DataCatalogConfig.php
new file mode 100644
index 000000000000..d445745eba1e
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DataCatalogConfig.php
@@ -0,0 +1,72 @@
+google.cloud.metastore.v1beta.DataCatalogConfig
+ */
+class DataCatalogConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Defines whether the metastore metadata should be synced to Data Catalog.
+ * The default value is to disable syncing metastore metadata to Data Catalog.
+ *
+ * Generated from protobuf field bool enabled = 2;
+ */
+ protected $enabled = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enabled
+ * Defines whether the metastore metadata should be synced to Data Catalog.
+ * The default value is to disable syncing metastore metadata to Data Catalog.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Defines whether the metastore metadata should be synced to Data Catalog.
+ * The default value is to disable syncing metastore metadata to Data Catalog.
+ *
+ * Generated from protobuf field bool enabled = 2;
+ * @return bool
+ */
+ public function getEnabled()
+ {
+ return $this->enabled;
+ }
+
+ /**
+ * Defines whether the metastore metadata should be synced to Data Catalog.
+ * The default value is to disable syncing metastore metadata to Data Catalog.
+ *
+ * Generated from protobuf field bool enabled = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DatabaseDumpSpec.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DatabaseDumpSpec.php
new file mode 100644
index 000000000000..3f8713173032
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DatabaseDumpSpec.php
@@ -0,0 +1,33 @@
+google.cloud.metastore.v1beta.DatabaseDumpSpec
+ */
+class DatabaseDumpSpec extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DatabaseDumpSpec/Type.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DatabaseDumpSpec/Type.php
new file mode 100644
index 000000000000..47888ab7a90a
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DatabaseDumpSpec/Type.php
@@ -0,0 +1,64 @@
+google.cloud.metastore.v1beta.DatabaseDumpSpec.Type
+ */
+class Type
+{
+ /**
+ * The type of the database dump is unknown.
+ *
+ * Generated from protobuf enum TYPE_UNSPECIFIED = 0;
+ */
+ const TYPE_UNSPECIFIED = 0;
+ /**
+ * Database dump is a MySQL dump file.
+ *
+ * Generated from protobuf enum MYSQL = 1;
+ */
+ const MYSQL = 1;
+ /**
+ * Database dump contains Avro files.
+ *
+ * Generated from protobuf enum AVRO = 2;
+ */
+ const AVRO = 2;
+
+ private static $valueToName = [
+ self::TYPE_UNSPECIFIED => 'TYPE_UNSPECIFIED',
+ self::MYSQL => 'MYSQL',
+ self::AVRO => 'AVRO',
+ ];
+
+ 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\Metastore\V1beta\DatabaseDumpSpec_Type::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DatabaseDumpSpec_Type.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DatabaseDumpSpec_Type.php
new file mode 100644
index 000000000000..ec69ee336af3
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DatabaseDumpSpec_Type.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1beta.DataplexConfig
+ */
+class DataplexConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A reference to the Lake resources that this metastore service is attached
+ * to. The key is the lake resource name. Example:
+ * `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`.
+ *
+ * Generated from protobuf field map lake_resources = 1;
+ */
+ private $lake_resources;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\MapField $lake_resources
+ * A reference to the Lake resources that this metastore service is attached
+ * to. The key is the lake resource name. Example:
+ * `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A reference to the Lake resources that this metastore service is attached
+ * to. The key is the lake resource name. Example:
+ * `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`.
+ *
+ * Generated from protobuf field map lake_resources = 1;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLakeResources()
+ {
+ return $this->lake_resources;
+ }
+
+ /**
+ * A reference to the Lake resources that this metastore service is attached
+ * to. The key is the lake resource name. Example:
+ * `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`.
+ *
+ * Generated from protobuf field map lake_resources = 1;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setLakeResources($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1beta\Lake::class);
+ $this->lake_resources = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DataprocMetastoreFederationGrpcClient.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DataprocMetastoreFederationGrpcClient.php
new file mode 100644
index 000000000000..ffbd2074ba13
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DataprocMetastoreFederationGrpcClient.php
@@ -0,0 +1,122 @@
+_simpleRequest('/google.cloud.metastore.v1beta.DataprocMetastoreFederation/ListFederations',
+ $argument,
+ ['\Google\Cloud\Metastore\V1beta\ListFederationsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Gets the details of a single federation.
+ * @param \Google\Cloud\Metastore\V1beta\GetFederationRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetFederation(\Google\Cloud\Metastore\V1beta\GetFederationRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1beta.DataprocMetastoreFederation/GetFederation',
+ $argument,
+ ['\Google\Cloud\Metastore\V1beta\Federation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Creates a metastore federation in a project and location.
+ * @param \Google\Cloud\Metastore\V1beta\CreateFederationRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CreateFederation(\Google\Cloud\Metastore\V1beta\CreateFederationRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1beta.DataprocMetastoreFederation/CreateFederation',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Updates the fields of a federation.
+ * @param \Google\Cloud\Metastore\V1beta\UpdateFederationRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function UpdateFederation(\Google\Cloud\Metastore\V1beta\UpdateFederationRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1beta.DataprocMetastoreFederation/UpdateFederation',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Deletes a single federation.
+ * @param \Google\Cloud\Metastore\V1beta\DeleteFederationRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function DeleteFederation(\Google\Cloud\Metastore\V1beta\DeleteFederationRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1beta.DataprocMetastoreFederation/DeleteFederation',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+}
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DataprocMetastoreGrpcClient.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DataprocMetastoreGrpcClient.php
new file mode 100644
index 000000000000..b1e3da0defa3
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DataprocMetastoreGrpcClient.php
@@ -0,0 +1,340 @@
+_simpleRequest('/google.cloud.metastore.v1beta.DataprocMetastore/ListServices',
+ $argument,
+ ['\Google\Cloud\Metastore\V1beta\ListServicesResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Gets the details of a single service.
+ * @param \Google\Cloud\Metastore\V1beta\GetServiceRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetService(\Google\Cloud\Metastore\V1beta\GetServiceRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1beta.DataprocMetastore/GetService',
+ $argument,
+ ['\Google\Cloud\Metastore\V1beta\Service', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Creates a metastore service in a project and location.
+ * @param \Google\Cloud\Metastore\V1beta\CreateServiceRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CreateService(\Google\Cloud\Metastore\V1beta\CreateServiceRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1beta.DataprocMetastore/CreateService',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Updates the parameters of a single service.
+ * @param \Google\Cloud\Metastore\V1beta\UpdateServiceRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function UpdateService(\Google\Cloud\Metastore\V1beta\UpdateServiceRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1beta.DataprocMetastore/UpdateService',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Deletes a single service.
+ * @param \Google\Cloud\Metastore\V1beta\DeleteServiceRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function DeleteService(\Google\Cloud\Metastore\V1beta\DeleteServiceRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1beta.DataprocMetastore/DeleteService',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Lists imports in a service.
+ * @param \Google\Cloud\Metastore\V1beta\ListMetadataImportsRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ListMetadataImports(\Google\Cloud\Metastore\V1beta\ListMetadataImportsRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1beta.DataprocMetastore/ListMetadataImports',
+ $argument,
+ ['\Google\Cloud\Metastore\V1beta\ListMetadataImportsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Gets details of a single import.
+ * @param \Google\Cloud\Metastore\V1beta\GetMetadataImportRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetMetadataImport(\Google\Cloud\Metastore\V1beta\GetMetadataImportRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1beta.DataprocMetastore/GetMetadataImport',
+ $argument,
+ ['\Google\Cloud\Metastore\V1beta\MetadataImport', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Creates a new MetadataImport in a given project and location.
+ * @param \Google\Cloud\Metastore\V1beta\CreateMetadataImportRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CreateMetadataImport(\Google\Cloud\Metastore\V1beta\CreateMetadataImportRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1beta.DataprocMetastore/CreateMetadataImport',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Updates a single import.
+ * Only the description field of MetadataImport is supported to be updated.
+ * @param \Google\Cloud\Metastore\V1beta\UpdateMetadataImportRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function UpdateMetadataImport(\Google\Cloud\Metastore\V1beta\UpdateMetadataImportRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1beta.DataprocMetastore/UpdateMetadataImport',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Exports metadata from a service.
+ * @param \Google\Cloud\Metastore\V1beta\ExportMetadataRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ExportMetadata(\Google\Cloud\Metastore\V1beta\ExportMetadataRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1beta.DataprocMetastore/ExportMetadata',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Restores a service from a backup.
+ * @param \Google\Cloud\Metastore\V1beta\RestoreServiceRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function RestoreService(\Google\Cloud\Metastore\V1beta\RestoreServiceRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1beta.DataprocMetastore/RestoreService',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Lists backups in a service.
+ * @param \Google\Cloud\Metastore\V1beta\ListBackupsRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ListBackups(\Google\Cloud\Metastore\V1beta\ListBackupsRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1beta.DataprocMetastore/ListBackups',
+ $argument,
+ ['\Google\Cloud\Metastore\V1beta\ListBackupsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Gets details of a single backup.
+ * @param \Google\Cloud\Metastore\V1beta\GetBackupRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetBackup(\Google\Cloud\Metastore\V1beta\GetBackupRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1beta.DataprocMetastore/GetBackup',
+ $argument,
+ ['\Google\Cloud\Metastore\V1beta\Backup', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Creates a new backup in a given project and location.
+ * @param \Google\Cloud\Metastore\V1beta\CreateBackupRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CreateBackup(\Google\Cloud\Metastore\V1beta\CreateBackupRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1beta.DataprocMetastore/CreateBackup',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Deletes a single backup.
+ * @param \Google\Cloud\Metastore\V1beta\DeleteBackupRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function DeleteBackup(\Google\Cloud\Metastore\V1beta\DeleteBackupRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1beta.DataprocMetastore/DeleteBackup',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Removes the attached IAM policies for a resource
+ * @param \Google\Cloud\Metastore\V1beta\RemoveIamPolicyRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function RemoveIamPolicy(\Google\Cloud\Metastore\V1beta\RemoveIamPolicyRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1beta.DataprocMetastore/RemoveIamPolicy',
+ $argument,
+ ['\Google\Cloud\Metastore\V1beta\RemoveIamPolicyResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Query DPMS metadata.
+ * @param \Google\Cloud\Metastore\V1beta\QueryMetadataRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function QueryMetadata(\Google\Cloud\Metastore\V1beta\QueryMetadataRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1beta.DataprocMetastore/QueryMetadata',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Move a table to another database.
+ * @param \Google\Cloud\Metastore\V1beta\MoveTableToDatabaseRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function MoveTableToDatabase(\Google\Cloud\Metastore\V1beta\MoveTableToDatabaseRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1beta.DataprocMetastore/MoveTableToDatabase',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Alter metadata resource location. The metadata resource can be a database,
+ * table, or partition. This functionality only updates the parent directory
+ * for the respective metadata resource and does not transfer any existing
+ * data to the new location.
+ * @param \Google\Cloud\Metastore\V1beta\AlterMetadataResourceLocationRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function AlterMetadataResourceLocation(\Google\Cloud\Metastore\V1beta\AlterMetadataResourceLocationRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.metastore.v1beta.DataprocMetastore/AlterMetadataResourceLocation',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+}
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DeleteBackupRequest.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DeleteBackupRequest.php
new file mode 100644
index 000000000000..502139968259
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DeleteBackupRequest.php
@@ -0,0 +1,146 @@
+google.cloud.metastore.v1beta.DeleteBackupRequest
+ */
+class DeleteBackupRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the backup to delete, in the
+ * following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The relative resource name of the backup to delete, in the
+ * following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the backup to delete, in the
+ * following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * 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 relative resource name of the backup to delete, in the
+ * following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * 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. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DeleteFederationRequest.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DeleteFederationRequest.php
new file mode 100644
index 000000000000..37ea8f14cf98
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DeleteFederationRequest.php
@@ -0,0 +1,145 @@
+google.cloud.metastore.v1beta.DeleteFederationRequest
+ */
+class DeleteFederationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metastore federation to delete,
+ * in the following form:
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The relative resource name of the metastore federation to delete,
+ * in the following form:
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\MetastoreFederation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the metastore federation to delete,
+ * in the following form:
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * 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 relative resource name of the metastore federation to delete,
+ * in the following form:
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * 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. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DeleteServiceRequest.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DeleteServiceRequest.php
new file mode 100644
index 000000000000..98a261602e43
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/DeleteServiceRequest.php
@@ -0,0 +1,146 @@
+google.cloud.metastore.v1beta.DeleteServiceRequest
+ */
+class DeleteServiceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metastore service to delete, in
+ * the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The relative resource name of the metastore service to delete, in
+ * the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to delete, in
+ * the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * 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 relative resource name of the metastore service to delete, in
+ * the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * 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. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/EncryptionConfig.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/EncryptionConfig.php
new file mode 100644
index 000000000000..0c580153147d
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/EncryptionConfig.php
@@ -0,0 +1,75 @@
+google.cloud.metastore.v1beta.EncryptionConfig
+ */
+class EncryptionConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The fully qualified customer provided Cloud KMS key name to use for
+ * customer data encryption, in the following form:
+ * `projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}`.
+ *
+ * Generated from protobuf field string kms_key = 1;
+ */
+ protected $kms_key = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $kms_key
+ * The fully qualified customer provided Cloud KMS key name to use for
+ * customer data encryption, in the following form:
+ * `projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The fully qualified customer provided Cloud KMS key name to use for
+ * customer data encryption, in the following form:
+ * `projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}`.
+ *
+ * Generated from protobuf field string kms_key = 1;
+ * @return string
+ */
+ public function getKmsKey()
+ {
+ return $this->kms_key;
+ }
+
+ /**
+ * The fully qualified customer provided Cloud KMS key name to use for
+ * customer data encryption, in the following form:
+ * `projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}`.
+ *
+ * Generated from protobuf field string kms_key = 1;
+ * @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/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ExportMetadataRequest.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ExportMetadataRequest.php
new file mode 100644
index 000000000000..562eeb937f38
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ExportMetadataRequest.php
@@ -0,0 +1,232 @@
+google.cloud.metastore.v1beta.ExportMetadataRequest
+ */
+class ExportMetadataRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metastore service to run
+ * export, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $service = '';
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+ /**
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.DatabaseDumpSpec.Type database_dump_type = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $database_dump_type = 0;
+ protected $destination;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $destination_gcs_folder
+ * A Cloud Storage URI of a folder, in the format
+ * `gs:///`. A sub-folder
+ * `` containing exported files will be created below it.
+ * @type string $service
+ * Required. The relative resource name of the metastore service to run
+ * export, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @type int $database_dump_type
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A Cloud Storage URI of a folder, in the format
+ * `gs:///`. A sub-folder
+ * `` containing exported files will be created below it.
+ *
+ * Generated from protobuf field string destination_gcs_folder = 2;
+ * @return string
+ */
+ public function getDestinationGcsFolder()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasDestinationGcsFolder()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * A Cloud Storage URI of a folder, in the format
+ * `gs:///`. A sub-folder
+ * `` containing exported files will be created below it.
+ *
+ * Generated from protobuf field string destination_gcs_folder = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setDestinationGcsFolder($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to run
+ * export, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to run
+ * export, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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;
+ }
+
+ /**
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.DatabaseDumpSpec.Type database_dump_type = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getDatabaseDumpType()
+ {
+ return $this->database_dump_type;
+ }
+
+ /**
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.DatabaseDumpSpec.Type database_dump_type = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setDatabaseDumpType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1beta\DatabaseDumpSpec\Type::class);
+ $this->database_dump_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getDestination()
+ {
+ return $this->whichOneof("destination");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Federation.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Federation.php
new file mode 100644
index 000000000000..7751b7c96516
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Federation.php
@@ -0,0 +1,433 @@
+google.cloud.metastore.v1beta.Federation
+ */
+class Federation extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Immutable. The relative resource name of the federation, of the
+ * form:
+ * projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $name = '';
+ /**
+ * Output only. The time when the metastore federation 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 metastore federation was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * User-defined labels for the metastore federation.
+ *
+ * Generated from protobuf field map labels = 4;
+ */
+ private $labels;
+ /**
+ * Immutable. The Apache Hive metastore version of the federation. All backend
+ * metastore versions must be compatible with the federation version.
+ *
+ * Generated from protobuf field string version = 5 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $version = '';
+ /**
+ * A map from `BackendMetastore` rank to `BackendMetastore`s from which the
+ * federation service serves metadata at query time. The map key represents
+ * the order in which `BackendMetastore`s should be evaluated to resolve
+ * database names at query time and should be greater than or equal to zero. A
+ * `BackendMetastore` with a lower number will be evaluated before a
+ * `BackendMetastore` with a higher number.
+ *
+ * Generated from protobuf field map backend_metastores = 6;
+ */
+ private $backend_metastores;
+ /**
+ * Output only. The federation endpoint.
+ *
+ * Generated from protobuf field string endpoint_uri = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $endpoint_uri = '';
+ /**
+ * Output only. The current state of the federation.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Federation.State state = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. Additional information about the current state of the
+ * metastore federation, if available.
+ *
+ * Generated from protobuf field string state_message = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state_message = '';
+ /**
+ * Output only. The globally unique resource identifier of the metastore
+ * federation.
+ *
+ * Generated from protobuf field string uid = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $uid = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Immutable. The relative resource name of the federation, of the
+ * form:
+ * projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time when the metastore federation was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The time when the metastore federation was last updated.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * User-defined labels for the metastore federation.
+ * @type string $version
+ * Immutable. The Apache Hive metastore version of the federation. All backend
+ * metastore versions must be compatible with the federation version.
+ * @type array|\Google\Protobuf\Internal\MapField $backend_metastores
+ * A map from `BackendMetastore` rank to `BackendMetastore`s from which the
+ * federation service serves metadata at query time. The map key represents
+ * the order in which `BackendMetastore`s should be evaluated to resolve
+ * database names at query time and should be greater than or equal to zero. A
+ * `BackendMetastore` with a lower number will be evaluated before a
+ * `BackendMetastore` with a higher number.
+ * @type string $endpoint_uri
+ * Output only. The federation endpoint.
+ * @type int $state
+ * Output only. The current state of the federation.
+ * @type string $state_message
+ * Output only. Additional information about the current state of the
+ * metastore federation, if available.
+ * @type string $uid
+ * Output only. The globally unique resource identifier of the metastore
+ * federation.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\MetastoreFederation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Immutable. The relative resource name of the federation, of the
+ * form:
+ * projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Immutable. The relative resource name of the federation, of the
+ * form:
+ * projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the metastore federation 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 metastore federation 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 metastore federation 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 metastore federation 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-defined labels for the metastore federation.
+ *
+ * Generated from protobuf field map labels = 4;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * User-defined labels for the metastore federation.
+ *
+ * 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;
+ }
+
+ /**
+ * Immutable. The Apache Hive metastore version of the federation. All backend
+ * metastore versions must be compatible with the federation version.
+ *
+ * Generated from protobuf field string version = 5 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return string
+ */
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ /**
+ * Immutable. The Apache Hive metastore version of the federation. All backend
+ * metastore versions must be compatible with the federation version.
+ *
+ * Generated from protobuf field string version = 5 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param string $var
+ * @return $this
+ */
+ public function setVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->version = $var;
+
+ return $this;
+ }
+
+ /**
+ * A map from `BackendMetastore` rank to `BackendMetastore`s from which the
+ * federation service serves metadata at query time. The map key represents
+ * the order in which `BackendMetastore`s should be evaluated to resolve
+ * database names at query time and should be greater than or equal to zero. A
+ * `BackendMetastore` with a lower number will be evaluated before a
+ * `BackendMetastore` with a higher number.
+ *
+ * Generated from protobuf field map backend_metastores = 6;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getBackendMetastores()
+ {
+ return $this->backend_metastores;
+ }
+
+ /**
+ * A map from `BackendMetastore` rank to `BackendMetastore`s from which the
+ * federation service serves metadata at query time. The map key represents
+ * the order in which `BackendMetastore`s should be evaluated to resolve
+ * database names at query time and should be greater than or equal to zero. A
+ * `BackendMetastore` with a lower number will be evaluated before a
+ * `BackendMetastore` with a higher number.
+ *
+ * Generated from protobuf field map backend_metastores = 6;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setBackendMetastores($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::INT32, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1beta\BackendMetastore::class);
+ $this->backend_metastores = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The federation endpoint.
+ *
+ * Generated from protobuf field string endpoint_uri = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getEndpointUri()
+ {
+ return $this->endpoint_uri;
+ }
+
+ /**
+ * Output only. The federation endpoint.
+ *
+ * Generated from protobuf field string endpoint_uri = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setEndpointUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->endpoint_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The current state of the federation.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Federation.State state = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The current state of the federation.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Federation.State state = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1beta\Federation\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Additional information about the current state of the
+ * metastore federation, if available.
+ *
+ * Generated from protobuf field string state_message = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getStateMessage()
+ {
+ return $this->state_message;
+ }
+
+ /**
+ * Output only. Additional information about the current state of the
+ * metastore federation, if available.
+ *
+ * Generated from protobuf field string state_message = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setStateMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->state_message = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The globally unique resource identifier of the metastore
+ * federation.
+ *
+ * Generated from protobuf field string uid = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getUid()
+ {
+ return $this->uid;
+ }
+
+ /**
+ * Output only. The globally unique resource identifier of the metastore
+ * federation.
+ *
+ * Generated from protobuf field string uid = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setUid($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uid = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Federation/State.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Federation/State.php
new file mode 100644
index 000000000000..ece483cad3f2
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Federation/State.php
@@ -0,0 +1,87 @@
+google.cloud.metastore.v1beta.Federation.State
+ */
+class State
+{
+ /**
+ * The state of the metastore federation is unknown.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The metastore federation is in the process of being created.
+ *
+ * Generated from protobuf enum CREATING = 1;
+ */
+ const CREATING = 1;
+ /**
+ * The metastore federation is running and ready to serve queries.
+ *
+ * Generated from protobuf enum ACTIVE = 2;
+ */
+ const ACTIVE = 2;
+ /**
+ * The metastore federation is being updated. It remains usable but cannot
+ * accept additional update requests or be deleted at this time.
+ *
+ * Generated from protobuf enum UPDATING = 3;
+ */
+ const UPDATING = 3;
+ /**
+ * The metastore federation is undergoing deletion. It cannot be used.
+ *
+ * Generated from protobuf enum DELETING = 4;
+ */
+ const DELETING = 4;
+ /**
+ * The metastore federation has encountered an error and cannot be used. The
+ * metastore federation should be deleted.
+ *
+ * Generated from protobuf enum ERROR = 5;
+ */
+ const ERROR = 5;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::CREATING => 'CREATING',
+ self::ACTIVE => 'ACTIVE',
+ self::UPDATING => 'UPDATING',
+ self::DELETING => 'DELETING',
+ self::ERROR => 'ERROR',
+ ];
+
+ 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\Metastore\V1beta\Federation_State::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Federation_State.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Federation_State.php
new file mode 100644
index 000000000000..ff631592fafd
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Federation_State.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1beta.GetBackupRequest
+ */
+class GetBackupRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the backup to retrieve, in the
+ * following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The relative resource name of the backup to retrieve, in the
+ * following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the backup to retrieve, in the
+ * following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * 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 relative resource name of the backup to retrieve, in the
+ * following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * 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/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/GetFederationRequest.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/GetFederationRequest.php
new file mode 100644
index 000000000000..d37137df1cc1
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/GetFederationRequest.php
@@ -0,0 +1,75 @@
+google.cloud.metastore.v1beta.GetFederationRequest
+ */
+class GetFederationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metastore federation to
+ * retrieve, in the following form:
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The relative resource name of the metastore federation to
+ * retrieve, in the following form:
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\MetastoreFederation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the metastore federation to
+ * retrieve, in the following form:
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * 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 relative resource name of the metastore federation to
+ * retrieve, in the following form:
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ *
+ * 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/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/GetMetadataImportRequest.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/GetMetadataImportRequest.php
new file mode 100644
index 000000000000..f68832aaeee1
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/GetMetadataImportRequest.php
@@ -0,0 +1,76 @@
+google.cloud.metastore.v1beta.GetMetadataImportRequest
+ */
+class GetMetadataImportRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metadata import to retrieve, in
+ * the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{import_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The relative resource name of the metadata import to retrieve, in
+ * the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{import_id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the metadata import to retrieve, in
+ * the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{import_id}`.
+ *
+ * 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 relative resource name of the metadata import to retrieve, in
+ * the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{import_id}`.
+ *
+ * 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/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/GetServiceRequest.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/GetServiceRequest.php
new file mode 100644
index 000000000000..3b061125d7b9
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/GetServiceRequest.php
@@ -0,0 +1,76 @@
+google.cloud.metastore.v1beta.GetServiceRequest
+ */
+class GetServiceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metastore service to retrieve,
+ * in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The relative resource name of the metastore service to retrieve,
+ * in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to retrieve,
+ * in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * 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 relative resource name of the metastore service to retrieve,
+ * in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * 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/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/HiveMetastoreConfig.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/HiveMetastoreConfig.php
new file mode 100644
index 000000000000..b04e639ad22d
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/HiveMetastoreConfig.php
@@ -0,0 +1,278 @@
+google.cloud.metastore.v1beta.HiveMetastoreConfig
+ */
+class HiveMetastoreConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Immutable. The Hive metastore schema version.
+ *
+ * Generated from protobuf field string version = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $version = '';
+ /**
+ * A mapping of Hive metastore configuration key-value pairs to apply to the
+ * Hive metastore (configured in `hive-site.xml`). The mappings
+ * override system defaults (some keys cannot be overridden). These
+ * overrides are also applied to auxiliary versions and can be further
+ * customized in the auxiliary version's `AuxiliaryVersionConfig`.
+ *
+ * Generated from protobuf field map config_overrides = 2;
+ */
+ private $config_overrides;
+ /**
+ * Information used to configure the Hive metastore service as a service
+ * principal in a Kerberos realm. To disable Kerberos, use the `UpdateService`
+ * method and specify this field's path
+ * (`hive_metastore_config.kerberos_config`) in the request's `update_mask`
+ * while omitting this field from the request's `service`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.KerberosConfig kerberos_config = 3;
+ */
+ protected $kerberos_config = null;
+ /**
+ * The protocol to use for the metastore service endpoint. If unspecified,
+ * defaults to `THRIFT`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.HiveMetastoreConfig.EndpointProtocol endpoint_protocol = 4;
+ */
+ protected $endpoint_protocol = 0;
+ /**
+ * A mapping of Hive metastore version to the auxiliary version
+ * configuration. When specified, a secondary Hive metastore service is
+ * created along with the primary service. All auxiliary versions must be less
+ * than the service's primary version. The key is the auxiliary service name
+ * and it must match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?. This
+ * means that the first character must be a lowercase letter, and all the
+ * following characters must be hyphens, lowercase letters, or digits, except
+ * the last character, which cannot be a hyphen.
+ *
+ * Generated from protobuf field map auxiliary_versions = 5;
+ */
+ private $auxiliary_versions;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $version
+ * Immutable. The Hive metastore schema version.
+ * @type array|\Google\Protobuf\Internal\MapField $config_overrides
+ * A mapping of Hive metastore configuration key-value pairs to apply to the
+ * Hive metastore (configured in `hive-site.xml`). The mappings
+ * override system defaults (some keys cannot be overridden). These
+ * overrides are also applied to auxiliary versions and can be further
+ * customized in the auxiliary version's `AuxiliaryVersionConfig`.
+ * @type \Google\Cloud\Metastore\V1beta\KerberosConfig $kerberos_config
+ * Information used to configure the Hive metastore service as a service
+ * principal in a Kerberos realm. To disable Kerberos, use the `UpdateService`
+ * method and specify this field's path
+ * (`hive_metastore_config.kerberos_config`) in the request's `update_mask`
+ * while omitting this field from the request's `service`.
+ * @type int $endpoint_protocol
+ * The protocol to use for the metastore service endpoint. If unspecified,
+ * defaults to `THRIFT`.
+ * @type array|\Google\Protobuf\Internal\MapField $auxiliary_versions
+ * A mapping of Hive metastore version to the auxiliary version
+ * configuration. When specified, a secondary Hive metastore service is
+ * created along with the primary service. All auxiliary versions must be less
+ * than the service's primary version. The key is the auxiliary service name
+ * and it must match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?. This
+ * means that the first character must be a lowercase letter, and all the
+ * following characters must be hyphens, lowercase letters, or digits, except
+ * the last character, which cannot be a hyphen.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Immutable. The Hive metastore schema version.
+ *
+ * Generated from protobuf field string version = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return string
+ */
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ /**
+ * Immutable. The Hive metastore schema version.
+ *
+ * Generated from protobuf field string version = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param string $var
+ * @return $this
+ */
+ public function setVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->version = $var;
+
+ return $this;
+ }
+
+ /**
+ * A mapping of Hive metastore configuration key-value pairs to apply to the
+ * Hive metastore (configured in `hive-site.xml`). The mappings
+ * override system defaults (some keys cannot be overridden). These
+ * overrides are also applied to auxiliary versions and can be further
+ * customized in the auxiliary version's `AuxiliaryVersionConfig`.
+ *
+ * Generated from protobuf field map config_overrides = 2;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getConfigOverrides()
+ {
+ return $this->config_overrides;
+ }
+
+ /**
+ * A mapping of Hive metastore configuration key-value pairs to apply to the
+ * Hive metastore (configured in `hive-site.xml`). The mappings
+ * override system defaults (some keys cannot be overridden). These
+ * overrides are also applied to auxiliary versions and can be further
+ * customized in the auxiliary version's `AuxiliaryVersionConfig`.
+ *
+ * Generated from protobuf field map config_overrides = 2;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setConfigOverrides($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->config_overrides = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Information used to configure the Hive metastore service as a service
+ * principal in a Kerberos realm. To disable Kerberos, use the `UpdateService`
+ * method and specify this field's path
+ * (`hive_metastore_config.kerberos_config`) in the request's `update_mask`
+ * while omitting this field from the request's `service`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.KerberosConfig kerberos_config = 3;
+ * @return \Google\Cloud\Metastore\V1beta\KerberosConfig|null
+ */
+ public function getKerberosConfig()
+ {
+ return $this->kerberos_config;
+ }
+
+ public function hasKerberosConfig()
+ {
+ return isset($this->kerberos_config);
+ }
+
+ public function clearKerberosConfig()
+ {
+ unset($this->kerberos_config);
+ }
+
+ /**
+ * Information used to configure the Hive metastore service as a service
+ * principal in a Kerberos realm. To disable Kerberos, use the `UpdateService`
+ * method and specify this field's path
+ * (`hive_metastore_config.kerberos_config`) in the request's `update_mask`
+ * while omitting this field from the request's `service`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.KerberosConfig kerberos_config = 3;
+ * @param \Google\Cloud\Metastore\V1beta\KerberosConfig $var
+ * @return $this
+ */
+ public function setKerberosConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1beta\KerberosConfig::class);
+ $this->kerberos_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The protocol to use for the metastore service endpoint. If unspecified,
+ * defaults to `THRIFT`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.HiveMetastoreConfig.EndpointProtocol endpoint_protocol = 4;
+ * @return int
+ */
+ public function getEndpointProtocol()
+ {
+ return $this->endpoint_protocol;
+ }
+
+ /**
+ * The protocol to use for the metastore service endpoint. If unspecified,
+ * defaults to `THRIFT`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.HiveMetastoreConfig.EndpointProtocol endpoint_protocol = 4;
+ * @param int $var
+ * @return $this
+ */
+ public function setEndpointProtocol($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1beta\HiveMetastoreConfig\EndpointProtocol::class);
+ $this->endpoint_protocol = $var;
+
+ return $this;
+ }
+
+ /**
+ * A mapping of Hive metastore version to the auxiliary version
+ * configuration. When specified, a secondary Hive metastore service is
+ * created along with the primary service. All auxiliary versions must be less
+ * than the service's primary version. The key is the auxiliary service name
+ * and it must match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?. This
+ * means that the first character must be a lowercase letter, and all the
+ * following characters must be hyphens, lowercase letters, or digits, except
+ * the last character, which cannot be a hyphen.
+ *
+ * Generated from protobuf field map auxiliary_versions = 5;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getAuxiliaryVersions()
+ {
+ return $this->auxiliary_versions;
+ }
+
+ /**
+ * A mapping of Hive metastore version to the auxiliary version
+ * configuration. When specified, a secondary Hive metastore service is
+ * created along with the primary service. All auxiliary versions must be less
+ * than the service's primary version. The key is the auxiliary service name
+ * and it must match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?. This
+ * means that the first character must be a lowercase letter, and all the
+ * following characters must be hyphens, lowercase letters, or digits, except
+ * the last character, which cannot be a hyphen.
+ *
+ * Generated from protobuf field map auxiliary_versions = 5;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setAuxiliaryVersions($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1beta\AuxiliaryVersionConfig::class);
+ $this->auxiliary_versions = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/HiveMetastoreConfig/EndpointProtocol.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/HiveMetastoreConfig/EndpointProtocol.php
new file mode 100644
index 000000000000..2098fa3fe11e
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/HiveMetastoreConfig/EndpointProtocol.php
@@ -0,0 +1,64 @@
+google.cloud.metastore.v1beta.HiveMetastoreConfig.EndpointProtocol
+ */
+class EndpointProtocol
+{
+ /**
+ * The protocol is not set.
+ *
+ * Generated from protobuf enum ENDPOINT_PROTOCOL_UNSPECIFIED = 0;
+ */
+ const ENDPOINT_PROTOCOL_UNSPECIFIED = 0;
+ /**
+ * Use the legacy Apache Thrift protocol for the metastore service endpoint.
+ *
+ * Generated from protobuf enum THRIFT = 1;
+ */
+ const THRIFT = 1;
+ /**
+ * Use the modernized gRPC protocol for the metastore service endpoint.
+ *
+ * Generated from protobuf enum GRPC = 2;
+ */
+ const GRPC = 2;
+
+ private static $valueToName = [
+ self::ENDPOINT_PROTOCOL_UNSPECIFIED => 'ENDPOINT_PROTOCOL_UNSPECIFIED',
+ self::THRIFT => 'THRIFT',
+ self::GRPC => 'GRPC',
+ ];
+
+ 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(EndpointProtocol::class, \Google\Cloud\Metastore\V1beta\HiveMetastoreConfig_EndpointProtocol::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/HiveMetastoreConfig_EndpointProtocol.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/HiveMetastoreConfig_EndpointProtocol.php
new file mode 100644
index 000000000000..3b63e5e9cd8a
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/HiveMetastoreConfig_EndpointProtocol.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1beta.KerberosConfig
+ */
+class KerberosConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A Kerberos keytab file that can be used to authenticate a service principal
+ * with a Kerberos Key Distribution Center (KDC).
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Secret keytab = 1;
+ */
+ protected $keytab = null;
+ /**
+ * A Kerberos principal that exists in the both the keytab the KDC
+ * to authenticate as. A typical principal is of the form
+ * `primary/instance@REALM`, but there is no exact format.
+ *
+ * Generated from protobuf field string principal = 2;
+ */
+ protected $principal = '';
+ /**
+ * A Cloud Storage URI that specifies the path to a
+ * krb5.conf file. It is of the form `gs://{bucket_name}/path/to/krb5.conf`,
+ * although the file does not need to be named krb5.conf explicitly.
+ *
+ * Generated from protobuf field string krb5_config_gcs_uri = 3;
+ */
+ protected $krb5_config_gcs_uri = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Metastore\V1beta\Secret $keytab
+ * A Kerberos keytab file that can be used to authenticate a service principal
+ * with a Kerberos Key Distribution Center (KDC).
+ * @type string $principal
+ * A Kerberos principal that exists in the both the keytab the KDC
+ * to authenticate as. A typical principal is of the form
+ * `primary/instance@REALM`, but there is no exact format.
+ * @type string $krb5_config_gcs_uri
+ * A Cloud Storage URI that specifies the path to a
+ * krb5.conf file. It is of the form `gs://{bucket_name}/path/to/krb5.conf`,
+ * although the file does not need to be named krb5.conf explicitly.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A Kerberos keytab file that can be used to authenticate a service principal
+ * with a Kerberos Key Distribution Center (KDC).
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Secret keytab = 1;
+ * @return \Google\Cloud\Metastore\V1beta\Secret|null
+ */
+ public function getKeytab()
+ {
+ return $this->keytab;
+ }
+
+ public function hasKeytab()
+ {
+ return isset($this->keytab);
+ }
+
+ public function clearKeytab()
+ {
+ unset($this->keytab);
+ }
+
+ /**
+ * A Kerberos keytab file that can be used to authenticate a service principal
+ * with a Kerberos Key Distribution Center (KDC).
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Secret keytab = 1;
+ * @param \Google\Cloud\Metastore\V1beta\Secret $var
+ * @return $this
+ */
+ public function setKeytab($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1beta\Secret::class);
+ $this->keytab = $var;
+
+ return $this;
+ }
+
+ /**
+ * A Kerberos principal that exists in the both the keytab the KDC
+ * to authenticate as. A typical principal is of the form
+ * `primary/instance@REALM`, but there is no exact format.
+ *
+ * Generated from protobuf field string principal = 2;
+ * @return string
+ */
+ public function getPrincipal()
+ {
+ return $this->principal;
+ }
+
+ /**
+ * A Kerberos principal that exists in the both the keytab the KDC
+ * to authenticate as. A typical principal is of the form
+ * `primary/instance@REALM`, but there is no exact format.
+ *
+ * Generated from protobuf field string principal = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setPrincipal($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->principal = $var;
+
+ return $this;
+ }
+
+ /**
+ * A Cloud Storage URI that specifies the path to a
+ * krb5.conf file. It is of the form `gs://{bucket_name}/path/to/krb5.conf`,
+ * although the file does not need to be named krb5.conf explicitly.
+ *
+ * Generated from protobuf field string krb5_config_gcs_uri = 3;
+ * @return string
+ */
+ public function getKrb5ConfigGcsUri()
+ {
+ return $this->krb5_config_gcs_uri;
+ }
+
+ /**
+ * A Cloud Storage URI that specifies the path to a
+ * krb5.conf file. It is of the form `gs://{bucket_name}/path/to/krb5.conf`,
+ * although the file does not need to be named krb5.conf explicitly.
+ *
+ * Generated from protobuf field string krb5_config_gcs_uri = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setKrb5ConfigGcsUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->krb5_config_gcs_uri = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Lake.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Lake.php
new file mode 100644
index 000000000000..62cb12726e69
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Lake.php
@@ -0,0 +1,75 @@
+google.cloud.metastore.v1beta.Lake
+ */
+class Lake extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The Lake resource name.
+ * Example:
+ * `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The Lake resource name.
+ * Example:
+ * `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The Lake resource name.
+ * Example:
+ * `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The Lake resource name.
+ * Example:
+ * `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.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/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ListBackupsRequest.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ListBackupsRequest.php
new file mode 100644
index 000000000000..36886d02c938
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ListBackupsRequest.php
@@ -0,0 +1,252 @@
+google.cloud.metastore.v1beta.ListBackupsRequest
+ */
+class ListBackupsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the service whose backups to
+ * list, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. The maximum number of backups to return. The response may contain
+ * less than the maximum number. If unspecified, no more than 500 backups are
+ * returned. The maximum value is 1000; values above 1000 are changed to 1000.
+ *
+ * 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
+ * [DataprocMetastore.ListBackups][google.cloud.metastore.v1beta.DataprocMetastore.ListBackups]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListBackups][google.cloud.metastore.v1beta.DataprocMetastore.ListBackups]
+ * 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. The filter to apply to list results.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+ /**
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $order_by = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The relative resource name of the service whose backups to
+ * list, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups`.
+ * @type int $page_size
+ * Optional. The maximum number of backups to return. The response may contain
+ * less than the maximum number. If unspecified, no more than 500 backups are
+ * returned. The maximum value is 1000; values above 1000 are changed to 1000.
+ * @type string $page_token
+ * Optional. A page token, received from a previous
+ * [DataprocMetastore.ListBackups][google.cloud.metastore.v1beta.DataprocMetastore.ListBackups]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListBackups][google.cloud.metastore.v1beta.DataprocMetastore.ListBackups]
+ * must match the call that provided the page token.
+ * @type string $filter
+ * Optional. The filter to apply to list results.
+ * @type string $order_by
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the service whose backups to
+ * list, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups`.
+ *
+ * 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 relative resource name of the service whose backups to
+ * list, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups`.
+ *
+ * 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 backups to return. The response may contain
+ * less than the maximum number. If unspecified, no more than 500 backups are
+ * returned. The maximum value is 1000; values above 1000 are changed to 1000.
+ *
+ * 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 backups to return. The response may contain
+ * less than the maximum number. If unspecified, no more than 500 backups are
+ * returned. The maximum value is 1000; values above 1000 are changed to 1000.
+ *
+ * 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
+ * [DataprocMetastore.ListBackups][google.cloud.metastore.v1beta.DataprocMetastore.ListBackups]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListBackups][google.cloud.metastore.v1beta.DataprocMetastore.ListBackups]
+ * 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
+ * [DataprocMetastore.ListBackups][google.cloud.metastore.v1beta.DataprocMetastore.ListBackups]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListBackups][google.cloud.metastore.v1beta.DataprocMetastore.ListBackups]
+ * 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. The filter to apply to list results.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. The filter to apply to list results.
+ *
+ * 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. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * 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/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ListBackupsResponse.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ListBackupsResponse.php
new file mode 100644
index 000000000000..a28503a594af
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ListBackupsResponse.php
@@ -0,0 +1,140 @@
+google.cloud.metastore.v1beta.ListBackupsResponse
+ */
+class ListBackupsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The backups of the specified service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1beta.Backup backups = 1;
+ */
+ private $backups;
+ /**
+ * 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\Metastore\V1beta\Backup>|\Google\Protobuf\Internal\RepeatedField $backups
+ * The backups of the specified service.
+ * @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\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The backups of the specified service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1beta.Backup backups = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getBackups()
+ {
+ return $this->backups;
+ }
+
+ /**
+ * The backups of the specified service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1beta.Backup backups = 1;
+ * @param array<\Google\Cloud\Metastore\V1beta\Backup>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setBackups($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1beta\Backup::class);
+ $this->backups = $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/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ListFederationsRequest.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ListFederationsRequest.php
new file mode 100644
index 000000000000..cd49d1a0f5c2
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ListFederationsRequest.php
@@ -0,0 +1,251 @@
+google.cloud.metastore.v1beta.ListFederationsRequest
+ */
+class ListFederationsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the location of metastore
+ * federations to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. The maximum number of federations to return. The response may
+ * contain less than the maximum number. If unspecified, no more than 500
+ * services are returned. The maximum value is 1000; values above 1000 are
+ * changed to 1000.
+ *
+ * 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 ListFederationServices
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * ListFederationServices 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. The filter to apply to list results.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+ /**
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $order_by = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The relative resource name of the location of metastore
+ * federations to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ * @type int $page_size
+ * Optional. The maximum number of federations to return. The response may
+ * contain less than the maximum number. If unspecified, no more than 500
+ * services are returned. The maximum value is 1000; values above 1000 are
+ * changed to 1000.
+ * @type string $page_token
+ * Optional. A page token, received from a previous ListFederationServices
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * ListFederationServices must match the call that provided the
+ * page token.
+ * @type string $filter
+ * Optional. The filter to apply to list results.
+ * @type string $order_by
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\MetastoreFederation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the location of metastore
+ * federations to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * 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 relative resource name of the location of metastore
+ * federations to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * 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 federations to return. The response may
+ * contain less than the maximum number. If unspecified, no more than 500
+ * services are returned. The maximum value is 1000; values above 1000 are
+ * changed to 1000.
+ *
+ * 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 federations to return. The response may
+ * contain less than the maximum number. If unspecified, no more than 500
+ * services are returned. The maximum value is 1000; values above 1000 are
+ * changed to 1000.
+ *
+ * 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 ListFederationServices
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * ListFederationServices 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 ListFederationServices
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * ListFederationServices 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. The filter to apply to list results.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. The filter to apply to list results.
+ *
+ * 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. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * 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/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ListFederationsResponse.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ListFederationsResponse.php
new file mode 100644
index 000000000000..c3e522aedae4
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ListFederationsResponse.php
@@ -0,0 +1,139 @@
+google.cloud.metastore.v1beta.ListFederationsResponse
+ */
+class ListFederationsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The services in the specified location.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1beta.Federation federations = 1;
+ */
+ private $federations;
+ /**
+ * 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\Metastore\V1beta\Federation>|\Google\Protobuf\Internal\RepeatedField $federations
+ * The services in the specified location.
+ * @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\Metastore\V1Beta\MetastoreFederation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The services in the specified location.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1beta.Federation federations = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getFederations()
+ {
+ return $this->federations;
+ }
+
+ /**
+ * The services in the specified location.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1beta.Federation federations = 1;
+ * @param array<\Google\Cloud\Metastore\V1beta\Federation>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setFederations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1beta\Federation::class);
+ $this->federations = $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/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ListMetadataImportsRequest.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ListMetadataImportsRequest.php
new file mode 100644
index 000000000000..63bb5ae4dbc7
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ListMetadataImportsRequest.php
@@ -0,0 +1,252 @@
+google.cloud.metastore.v1beta.ListMetadataImportsRequest
+ */
+class ListMetadataImportsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the service whose metadata imports
+ * to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. The maximum number of imports to return. The response may contain
+ * less than the maximum number. If unspecified, no more than 500 imports are
+ * returned. The maximum value is 1000; values above 1000 are changed to 1000.
+ *
+ * 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
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1beta.DataprocMetastore.ListServices]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1beta.DataprocMetastore.ListServices]
+ * 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. The filter to apply to list results.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+ /**
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $order_by = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The relative resource name of the service whose metadata imports
+ * to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports`.
+ * @type int $page_size
+ * Optional. The maximum number of imports to return. The response may contain
+ * less than the maximum number. If unspecified, no more than 500 imports are
+ * returned. The maximum value is 1000; values above 1000 are changed to 1000.
+ * @type string $page_token
+ * Optional. A page token, received from a previous
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1beta.DataprocMetastore.ListServices]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1beta.DataprocMetastore.ListServices]
+ * must match the call that provided the page token.
+ * @type string $filter
+ * Optional. The filter to apply to list results.
+ * @type string $order_by
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the service whose metadata imports
+ * to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports`.
+ *
+ * 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 relative resource name of the service whose metadata imports
+ * to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports`.
+ *
+ * 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 imports to return. The response may contain
+ * less than the maximum number. If unspecified, no more than 500 imports are
+ * returned. The maximum value is 1000; values above 1000 are changed to 1000.
+ *
+ * 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 imports to return. The response may contain
+ * less than the maximum number. If unspecified, no more than 500 imports are
+ * returned. The maximum value is 1000; values above 1000 are changed to 1000.
+ *
+ * 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
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1beta.DataprocMetastore.ListServices]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1beta.DataprocMetastore.ListServices]
+ * 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
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1beta.DataprocMetastore.ListServices]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1beta.DataprocMetastore.ListServices]
+ * 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. The filter to apply to list results.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. The filter to apply to list results.
+ *
+ * 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. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * 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/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ListMetadataImportsResponse.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ListMetadataImportsResponse.php
new file mode 100644
index 000000000000..3185137d31b9
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ListMetadataImportsResponse.php
@@ -0,0 +1,140 @@
+google.cloud.metastore.v1beta.ListMetadataImportsResponse
+ */
+class ListMetadataImportsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The imports in the specified service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1beta.MetadataImport metadata_imports = 1;
+ */
+ private $metadata_imports;
+ /**
+ * 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\Metastore\V1beta\MetadataImport>|\Google\Protobuf\Internal\RepeatedField $metadata_imports
+ * The imports in the specified service.
+ * @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\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The imports in the specified service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1beta.MetadataImport metadata_imports = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getMetadataImports()
+ {
+ return $this->metadata_imports;
+ }
+
+ /**
+ * The imports in the specified service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1beta.MetadataImport metadata_imports = 1;
+ * @param array<\Google\Cloud\Metastore\V1beta\MetadataImport>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setMetadataImports($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1beta\MetadataImport::class);
+ $this->metadata_imports = $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/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ListServicesRequest.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ListServicesRequest.php
new file mode 100644
index 000000000000..3ad5134d65c1
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ListServicesRequest.php
@@ -0,0 +1,256 @@
+google.cloud.metastore.v1beta.ListServicesRequest
+ */
+class ListServicesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the location of metastore services
+ * to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. The maximum number of services to return. The response may
+ * contain less than the maximum number. If unspecified, no more than 500
+ * services are returned. The maximum value is 1000; values above 1000 are
+ * changed to 1000.
+ *
+ * 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
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1beta.DataprocMetastore.ListServices]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1beta.DataprocMetastore.ListServices]
+ * 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. The filter to apply to list results.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+ /**
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $order_by = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The relative resource name of the location of metastore services
+ * to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ * @type int $page_size
+ * Optional. The maximum number of services to return. The response may
+ * contain less than the maximum number. If unspecified, no more than 500
+ * services are returned. The maximum value is 1000; values above 1000 are
+ * changed to 1000.
+ * @type string $page_token
+ * Optional. A page token, received from a previous
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1beta.DataprocMetastore.ListServices]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1beta.DataprocMetastore.ListServices]
+ * must match the call that provided the page token.
+ * @type string $filter
+ * Optional. The filter to apply to list results.
+ * @type string $order_by
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the location of metastore services
+ * to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * 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 relative resource name of the location of metastore services
+ * to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ *
+ * 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 services to return. The response may
+ * contain less than the maximum number. If unspecified, no more than 500
+ * services are returned. The maximum value is 1000; values above 1000 are
+ * changed to 1000.
+ *
+ * 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 services to return. The response may
+ * contain less than the maximum number. If unspecified, no more than 500
+ * services are returned. The maximum value is 1000; values above 1000 are
+ * changed to 1000.
+ *
+ * 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
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1beta.DataprocMetastore.ListServices]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1beta.DataprocMetastore.ListServices]
+ * 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
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1beta.DataprocMetastore.ListServices]
+ * call. Provide this token to retrieve the subsequent page.
+ * To retrieve the first page, supply an empty page token.
+ * When paginating, other parameters provided to
+ * [DataprocMetastore.ListServices][google.cloud.metastore.v1beta.DataprocMetastore.ListServices]
+ * 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. The filter to apply to list results.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. The filter to apply to list results.
+ *
+ * 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. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ *
+ * 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/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ListServicesResponse.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ListServicesResponse.php
new file mode 100644
index 000000000000..b37cb04836b5
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ListServicesResponse.php
@@ -0,0 +1,140 @@
+google.cloud.metastore.v1beta.ListServicesResponse
+ */
+class ListServicesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The services in the specified location.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1beta.Service services = 1;
+ */
+ private $services;
+ /**
+ * 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\Metastore\V1beta\Service>|\Google\Protobuf\Internal\RepeatedField $services
+ * The services in the specified location.
+ * @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\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The services in the specified location.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1beta.Service services = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getServices()
+ {
+ return $this->services;
+ }
+
+ /**
+ * The services in the specified location.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1beta.Service services = 1;
+ * @param array<\Google\Cloud\Metastore\V1beta\Service>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setServices($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1beta\Service::class);
+ $this->services = $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/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/LocationMetadata.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/LocationMetadata.php
new file mode 100644
index 000000000000..2399c3c3e4ec
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/LocationMetadata.php
@@ -0,0 +1,75 @@
+google.cloud.metastore.v1beta.LocationMetadata
+ */
+class LocationMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The versions of Hive Metastore that can be used when creating a new
+ * metastore service in this location. The server guarantees that exactly one
+ * `HiveMetastoreVersion` in the list will set `is_default`.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1beta.LocationMetadata.HiveMetastoreVersion supported_hive_metastore_versions = 1;
+ */
+ private $supported_hive_metastore_versions;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Metastore\V1beta\LocationMetadata\HiveMetastoreVersion>|\Google\Protobuf\Internal\RepeatedField $supported_hive_metastore_versions
+ * The versions of Hive Metastore that can be used when creating a new
+ * metastore service in this location. The server guarantees that exactly one
+ * `HiveMetastoreVersion` in the list will set `is_default`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The versions of Hive Metastore that can be used when creating a new
+ * metastore service in this location. The server guarantees that exactly one
+ * `HiveMetastoreVersion` in the list will set `is_default`.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1beta.LocationMetadata.HiveMetastoreVersion supported_hive_metastore_versions = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getSupportedHiveMetastoreVersions()
+ {
+ return $this->supported_hive_metastore_versions;
+ }
+
+ /**
+ * The versions of Hive Metastore that can be used when creating a new
+ * metastore service in this location. The server guarantees that exactly one
+ * `HiveMetastoreVersion` in the list will set `is_default`.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1beta.LocationMetadata.HiveMetastoreVersion supported_hive_metastore_versions = 1;
+ * @param array<\Google\Cloud\Metastore\V1beta\LocationMetadata\HiveMetastoreVersion>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setSupportedHiveMetastoreVersions($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1beta\LocationMetadata\HiveMetastoreVersion::class);
+ $this->supported_hive_metastore_versions = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/LocationMetadata/HiveMetastoreVersion.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/LocationMetadata/HiveMetastoreVersion.php
new file mode 100644
index 000000000000..6e8fc8b023e8
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/LocationMetadata/HiveMetastoreVersion.php
@@ -0,0 +1,108 @@
+google.cloud.metastore.v1beta.LocationMetadata.HiveMetastoreVersion
+ */
+class HiveMetastoreVersion extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The semantic version of the Hive Metastore software.
+ *
+ * Generated from protobuf field string version = 1;
+ */
+ protected $version = '';
+ /**
+ * Whether `version` will be chosen by the server if a metastore service is
+ * created with a `HiveMetastoreConfig` that omits the `version`.
+ *
+ * Generated from protobuf field bool is_default = 2;
+ */
+ protected $is_default = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $version
+ * The semantic version of the Hive Metastore software.
+ * @type bool $is_default
+ * Whether `version` will be chosen by the server if a metastore service is
+ * created with a `HiveMetastoreConfig` that omits the `version`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The semantic version of the Hive Metastore software.
+ *
+ * Generated from protobuf field string version = 1;
+ * @return string
+ */
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ /**
+ * The semantic version of the Hive Metastore software.
+ *
+ * Generated from protobuf field string version = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->version = $var;
+
+ return $this;
+ }
+
+ /**
+ * Whether `version` will be chosen by the server if a metastore service is
+ * created with a `HiveMetastoreConfig` that omits the `version`.
+ *
+ * Generated from protobuf field bool is_default = 2;
+ * @return bool
+ */
+ public function getIsDefault()
+ {
+ return $this->is_default;
+ }
+
+ /**
+ * Whether `version` will be chosen by the server if a metastore service is
+ * created with a `HiveMetastoreConfig` that omits the `version`.
+ *
+ * Generated from protobuf field bool is_default = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setIsDefault($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->is_default = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(HiveMetastoreVersion::class, \Google\Cloud\Metastore\V1beta\LocationMetadata_HiveMetastoreVersion::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/LocationMetadata_HiveMetastoreVersion.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/LocationMetadata_HiveMetastoreVersion.php
new file mode 100644
index 000000000000..3110a7f795b0
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/LocationMetadata_HiveMetastoreVersion.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1beta.MaintenanceWindow
+ */
+class MaintenanceWindow extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The hour of day (0-23) when the window starts.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value hour_of_day = 1;
+ */
+ protected $hour_of_day = null;
+ /**
+ * The day of week, when the window starts.
+ *
+ * Generated from protobuf field .google.type.DayOfWeek day_of_week = 2;
+ */
+ protected $day_of_week = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Int32Value $hour_of_day
+ * The hour of day (0-23) when the window starts.
+ * @type int $day_of_week
+ * The day of week, when the window starts.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The hour of day (0-23) when the window starts.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value hour_of_day = 1;
+ * @return \Google\Protobuf\Int32Value|null
+ */
+ public function getHourOfDay()
+ {
+ return $this->hour_of_day;
+ }
+
+ public function hasHourOfDay()
+ {
+ return isset($this->hour_of_day);
+ }
+
+ public function clearHourOfDay()
+ {
+ unset($this->hour_of_day);
+ }
+
+ /**
+ * Returns the unboxed value from getHourOfDay()
+
+ * The hour of day (0-23) when the window starts.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value hour_of_day = 1;
+ * @return int|null
+ */
+ public function getHourOfDayUnwrapped()
+ {
+ return $this->readWrapperValue("hour_of_day");
+ }
+
+ /**
+ * The hour of day (0-23) when the window starts.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value hour_of_day = 1;
+ * @param \Google\Protobuf\Int32Value $var
+ * @return $this
+ */
+ public function setHourOfDay($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Int32Value::class);
+ $this->hour_of_day = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sets the field by wrapping a primitive type in a Google\Protobuf\Int32Value object.
+
+ * The hour of day (0-23) when the window starts.
+ *
+ * Generated from protobuf field .google.protobuf.Int32Value hour_of_day = 1;
+ * @param int|null $var
+ * @return $this
+ */
+ public function setHourOfDayUnwrapped($var)
+ {
+ $this->writeWrapperValue("hour_of_day", $var);
+ return $this;}
+
+ /**
+ * The day of week, when the window starts.
+ *
+ * Generated from protobuf field .google.type.DayOfWeek day_of_week = 2;
+ * @return int
+ */
+ public function getDayOfWeek()
+ {
+ return $this->day_of_week;
+ }
+
+ /**
+ * The day of week, when the window starts.
+ *
+ * Generated from protobuf field .google.type.DayOfWeek day_of_week = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setDayOfWeek($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Type\DayOfWeek::class);
+ $this->day_of_week = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MetadataExport.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MetadataExport.php
new file mode 100644
index 000000000000..08d2d19f3979
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MetadataExport.php
@@ -0,0 +1,240 @@
+google.cloud.metastore.v1beta.MetadataExport
+ */
+class MetadataExport extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The time when the export started.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $start_time = null;
+ /**
+ * Output only. The time when the export ended.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $end_time = null;
+ /**
+ * Output only. The current state of the export.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.MetadataExport.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. The type of the database dump.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.DatabaseDumpSpec.Type database_dump_type = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $database_dump_type = 0;
+ protected $destination;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $destination_gcs_uri
+ * Output only. A Cloud Storage URI of a folder that metadata are exported
+ * to, in the form of
+ * `gs:////`, where
+ * `` is automatically generated.
+ * @type \Google\Protobuf\Timestamp $start_time
+ * Output only. The time when the export started.
+ * @type \Google\Protobuf\Timestamp $end_time
+ * Output only. The time when the export ended.
+ * @type int $state
+ * Output only. The current state of the export.
+ * @type int $database_dump_type
+ * Output only. The type of the database dump.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. A Cloud Storage URI of a folder that metadata are exported
+ * to, in the form of
+ * `gs:////`, where
+ * `` is automatically generated.
+ *
+ * Generated from protobuf field string destination_gcs_uri = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getDestinationGcsUri()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasDestinationGcsUri()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * Output only. A Cloud Storage URI of a folder that metadata are exported
+ * to, in the form of
+ * `gs:////`, where
+ * `` is automatically generated.
+ *
+ * Generated from protobuf field string destination_gcs_uri = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setDestinationGcsUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the export started.
+ *
+ * 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 time when the export started.
+ *
+ * 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 time when the export ended.
+ *
+ * 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 when the export ended.
+ *
+ * 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 current state of the export.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.MetadataExport.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The current state of the export.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.MetadataExport.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1beta\MetadataExport\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The type of the database dump.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.DatabaseDumpSpec.Type database_dump_type = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getDatabaseDumpType()
+ {
+ return $this->database_dump_type;
+ }
+
+ /**
+ * Output only. The type of the database dump.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.DatabaseDumpSpec.Type database_dump_type = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setDatabaseDumpType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1beta\DatabaseDumpSpec\Type::class);
+ $this->database_dump_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getDestination()
+ {
+ return $this->whichOneof("destination");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MetadataExport/State.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MetadataExport/State.php
new file mode 100644
index 000000000000..92bac47ffdc6
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MetadataExport/State.php
@@ -0,0 +1,78 @@
+google.cloud.metastore.v1beta.MetadataExport.State
+ */
+class State
+{
+ /**
+ * The state of the metadata export is unknown.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The metadata export is running.
+ *
+ * Generated from protobuf enum RUNNING = 1;
+ */
+ const RUNNING = 1;
+ /**
+ * The metadata export completed successfully.
+ *
+ * Generated from protobuf enum SUCCEEDED = 2;
+ */
+ const SUCCEEDED = 2;
+ /**
+ * The metadata export failed.
+ *
+ * Generated from protobuf enum FAILED = 3;
+ */
+ const FAILED = 3;
+ /**
+ * The metadata export is cancelled.
+ *
+ * Generated from protobuf enum CANCELLED = 4;
+ */
+ const CANCELLED = 4;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::RUNNING => 'RUNNING',
+ self::SUCCEEDED => 'SUCCEEDED',
+ self::FAILED => 'FAILED',
+ self::CANCELLED => 'CANCELLED',
+ ];
+
+ 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\Metastore\V1beta\MetadataExport_State::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MetadataExport_State.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MetadataExport_State.php
new file mode 100644
index 000000000000..fc0ed65eab07
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MetadataExport_State.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1beta.MetadataImport
+ */
+class MetadataImport extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Immutable. The relative resource name of the metadata import, of the form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{metadata_import_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $name = '';
+ /**
+ * The description of the metadata import.
+ *
+ * Generated from protobuf field string description = 2;
+ */
+ protected $description = '';
+ /**
+ * Output only. The time when the metadata import was started.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The time when the metadata import 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 time when the metadata import finished.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $end_time = null;
+ /**
+ * Output only. The current state of the metadata import.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.MetadataImport.State state = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ protected $metadata;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Metastore\V1beta\MetadataImport\DatabaseDump $database_dump
+ * Immutable. A database dump from a pre-existing metastore's database.
+ * @type string $name
+ * Immutable. The relative resource name of the metadata import, of the form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{metadata_import_id}`.
+ * @type string $description
+ * The description of the metadata import.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time when the metadata import was started.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The time when the metadata import was last updated.
+ * @type \Google\Protobuf\Timestamp $end_time
+ * Output only. The time when the metadata import finished.
+ * @type int $state
+ * Output only. The current state of the metadata import.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Immutable. A database dump from a pre-existing metastore's database.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.MetadataImport.DatabaseDump database_dump = 6 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return \Google\Cloud\Metastore\V1beta\MetadataImport\DatabaseDump|null
+ */
+ public function getDatabaseDump()
+ {
+ return $this->readOneof(6);
+ }
+
+ public function hasDatabaseDump()
+ {
+ return $this->hasOneof(6);
+ }
+
+ /**
+ * Immutable. A database dump from a pre-existing metastore's database.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.MetadataImport.DatabaseDump database_dump = 6 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param \Google\Cloud\Metastore\V1beta\MetadataImport\DatabaseDump $var
+ * @return $this
+ */
+ public function setDatabaseDump($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1beta\MetadataImport\DatabaseDump::class);
+ $this->writeOneof(6, $var);
+
+ return $this;
+ }
+
+ /**
+ * Immutable. The relative resource name of the metadata import, of the form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{metadata_import_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Immutable. The relative resource name of the metadata import, of the form:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{metadata_import_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The description of the metadata import.
+ *
+ * Generated from protobuf field string description = 2;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * The description of the metadata import.
+ *
+ * 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;
+ }
+
+ /**
+ * Output only. The time when the metadata import was started.
+ *
+ * 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 time when the metadata import was started.
+ *
+ * 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 time when the metadata import 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 time when the metadata import 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 time when the metadata import finished.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 7 [(.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 when the metadata import finished.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 7 [(.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 current state of the metadata import.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.MetadataImport.State state = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The current state of the metadata import.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.MetadataImport.State state = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1beta\MetadataImport\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getMetadata()
+ {
+ return $this->whichOneof("metadata");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MetadataImport/DatabaseDump.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MetadataImport/DatabaseDump.php
new file mode 100644
index 000000000000..b70a092e0864
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MetadataImport/DatabaseDump.php
@@ -0,0 +1,191 @@
+google.cloud.metastore.v1beta.MetadataImport.DatabaseDump
+ */
+class DatabaseDump extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The type of the database.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.MetadataImport.DatabaseDump.DatabaseType database_type = 1 [deprecated = true];
+ * @deprecated
+ */
+ protected $database_type = 0;
+ /**
+ * A Cloud Storage object or folder URI that specifies the source from which
+ * to import metadata. It must begin with `gs://`.
+ *
+ * Generated from protobuf field string gcs_uri = 2;
+ */
+ protected $gcs_uri = '';
+ /**
+ * The name of the source database.
+ *
+ * Generated from protobuf field string source_database = 3 [deprecated = true];
+ * @deprecated
+ */
+ protected $source_database = '';
+ /**
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.DatabaseDumpSpec.Type type = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $type = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $database_type
+ * The type of the database.
+ * @type string $gcs_uri
+ * A Cloud Storage object or folder URI that specifies the source from which
+ * to import metadata. It must begin with `gs://`.
+ * @type string $source_database
+ * The name of the source database.
+ * @type int $type
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The type of the database.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.MetadataImport.DatabaseDump.DatabaseType database_type = 1 [deprecated = true];
+ * @return int
+ * @deprecated
+ */
+ public function getDatabaseType()
+ {
+ @trigger_error('database_type is deprecated.', E_USER_DEPRECATED);
+ return $this->database_type;
+ }
+
+ /**
+ * The type of the database.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.MetadataImport.DatabaseDump.DatabaseType database_type = 1 [deprecated = true];
+ * @param int $var
+ * @return $this
+ * @deprecated
+ */
+ public function setDatabaseType($var)
+ {
+ @trigger_error('database_type is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1beta\MetadataImport\DatabaseDump\DatabaseType::class);
+ $this->database_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * A Cloud Storage object or folder URI that specifies the source from which
+ * to import metadata. It must begin with `gs://`.
+ *
+ * Generated from protobuf field string gcs_uri = 2;
+ * @return string
+ */
+ public function getGcsUri()
+ {
+ return $this->gcs_uri;
+ }
+
+ /**
+ * A Cloud Storage object or folder URI that specifies the source from which
+ * to import metadata. It must begin with `gs://`.
+ *
+ * Generated from protobuf field string gcs_uri = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setGcsUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->gcs_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * The name of the source database.
+ *
+ * Generated from protobuf field string source_database = 3 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getSourceDatabase()
+ {
+ @trigger_error('source_database is deprecated.', E_USER_DEPRECATED);
+ return $this->source_database;
+ }
+
+ /**
+ * The name of the source database.
+ *
+ * Generated from protobuf field string source_database = 3 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setSourceDatabase($var)
+ {
+ @trigger_error('source_database is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->source_database = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.DatabaseDumpSpec.Type type = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.DatabaseDumpSpec.Type type = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1beta\DatabaseDumpSpec\Type::class);
+ $this->type = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(DatabaseDump::class, \Google\Cloud\Metastore\V1beta\MetadataImport_DatabaseDump::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MetadataImport/DatabaseDump/DatabaseType.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MetadataImport/DatabaseDump/DatabaseType.php
new file mode 100644
index 000000000000..d217a3fd64c5
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MetadataImport/DatabaseDump/DatabaseType.php
@@ -0,0 +1,57 @@
+google.cloud.metastore.v1beta.MetadataImport.DatabaseDump.DatabaseType
+ */
+class DatabaseType
+{
+ /**
+ * The type of the source database is unknown.
+ *
+ * Generated from protobuf enum DATABASE_TYPE_UNSPECIFIED = 0;
+ */
+ const DATABASE_TYPE_UNSPECIFIED = 0;
+ /**
+ * The type of the source database is MySQL.
+ *
+ * Generated from protobuf enum MYSQL = 1;
+ */
+ const MYSQL = 1;
+
+ private static $valueToName = [
+ self::DATABASE_TYPE_UNSPECIFIED => 'DATABASE_TYPE_UNSPECIFIED',
+ self::MYSQL => 'MYSQL',
+ ];
+
+ 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(DatabaseType::class, \Google\Cloud\Metastore\V1beta\MetadataImport_DatabaseDump_DatabaseType::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MetadataImport/State.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MetadataImport/State.php
new file mode 100644
index 000000000000..317ecb495509
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MetadataImport/State.php
@@ -0,0 +1,79 @@
+google.cloud.metastore.v1beta.MetadataImport.State
+ */
+class State
+{
+ /**
+ * The state of the metadata import is unknown.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The metadata import is running.
+ *
+ * Generated from protobuf enum RUNNING = 1;
+ */
+ const RUNNING = 1;
+ /**
+ * The metadata import completed successfully.
+ *
+ * Generated from protobuf enum SUCCEEDED = 2;
+ */
+ const SUCCEEDED = 2;
+ /**
+ * The metadata import is being updated.
+ *
+ * Generated from protobuf enum UPDATING = 3;
+ */
+ const UPDATING = 3;
+ /**
+ * The metadata import failed, and attempted metadata changes were rolled
+ * back.
+ *
+ * Generated from protobuf enum FAILED = 4;
+ */
+ const FAILED = 4;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::RUNNING => 'RUNNING',
+ self::SUCCEEDED => 'SUCCEEDED',
+ self::UPDATING => 'UPDATING',
+ 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\Metastore\V1beta\MetadataImport_State::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MetadataImport_DatabaseDump.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MetadataImport_DatabaseDump.php
new file mode 100644
index 000000000000..cd1701ef0757
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MetadataImport_DatabaseDump.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1beta.MetadataIntegration
+ */
+class MetadataIntegration extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The integration config for the Data Catalog service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.DataCatalogConfig data_catalog_config = 1;
+ */
+ protected $data_catalog_config = null;
+ /**
+ * The integration config for the Dataplex service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.DataplexConfig dataplex_config = 2;
+ */
+ protected $dataplex_config = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Metastore\V1beta\DataCatalogConfig $data_catalog_config
+ * The integration config for the Data Catalog service.
+ * @type \Google\Cloud\Metastore\V1beta\DataplexConfig $dataplex_config
+ * The integration config for the Dataplex service.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The integration config for the Data Catalog service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.DataCatalogConfig data_catalog_config = 1;
+ * @return \Google\Cloud\Metastore\V1beta\DataCatalogConfig|null
+ */
+ public function getDataCatalogConfig()
+ {
+ return $this->data_catalog_config;
+ }
+
+ public function hasDataCatalogConfig()
+ {
+ return isset($this->data_catalog_config);
+ }
+
+ public function clearDataCatalogConfig()
+ {
+ unset($this->data_catalog_config);
+ }
+
+ /**
+ * The integration config for the Data Catalog service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.DataCatalogConfig data_catalog_config = 1;
+ * @param \Google\Cloud\Metastore\V1beta\DataCatalogConfig $var
+ * @return $this
+ */
+ public function setDataCatalogConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1beta\DataCatalogConfig::class);
+ $this->data_catalog_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The integration config for the Dataplex service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.DataplexConfig dataplex_config = 2;
+ * @return \Google\Cloud\Metastore\V1beta\DataplexConfig|null
+ */
+ public function getDataplexConfig()
+ {
+ return $this->dataplex_config;
+ }
+
+ public function hasDataplexConfig()
+ {
+ return isset($this->dataplex_config);
+ }
+
+ public function clearDataplexConfig()
+ {
+ unset($this->dataplex_config);
+ }
+
+ /**
+ * The integration config for the Dataplex service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.DataplexConfig dataplex_config = 2;
+ * @param \Google\Cloud\Metastore\V1beta\DataplexConfig $var
+ * @return $this
+ */
+ public function setDataplexConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1beta\DataplexConfig::class);
+ $this->dataplex_config = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MetadataManagementActivity.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MetadataManagementActivity.php
new file mode 100644
index 000000000000..379ac929fda8
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MetadataManagementActivity.php
@@ -0,0 +1,101 @@
+google.cloud.metastore.v1beta.MetadataManagementActivity
+ */
+class MetadataManagementActivity extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The latest metadata exports of the metastore service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1beta.MetadataExport metadata_exports = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $metadata_exports;
+ /**
+ * Output only. The latest restores of the metastore service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1beta.Restore restores = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $restores;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Metastore\V1beta\MetadataExport>|\Google\Protobuf\Internal\RepeatedField $metadata_exports
+ * Output only. The latest metadata exports of the metastore service.
+ * @type array<\Google\Cloud\Metastore\V1beta\Restore>|\Google\Protobuf\Internal\RepeatedField $restores
+ * Output only. The latest restores of the metastore service.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The latest metadata exports of the metastore service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1beta.MetadataExport metadata_exports = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getMetadataExports()
+ {
+ return $this->metadata_exports;
+ }
+
+ /**
+ * Output only. The latest metadata exports of the metastore service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1beta.MetadataExport metadata_exports = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array<\Google\Cloud\Metastore\V1beta\MetadataExport>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setMetadataExports($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1beta\MetadataExport::class);
+ $this->metadata_exports = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The latest restores of the metastore service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1beta.Restore restores = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRestores()
+ {
+ return $this->restores;
+ }
+
+ /**
+ * Output only. The latest restores of the metastore service.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1beta.Restore restores = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array<\Google\Cloud\Metastore\V1beta\Restore>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRestores($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1beta\Restore::class);
+ $this->restores = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MoveTableToDatabaseRequest.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MoveTableToDatabaseRequest.php
new file mode 100644
index 000000000000..cb5c97e47bce
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MoveTableToDatabaseRequest.php
@@ -0,0 +1,178 @@
+google.cloud.metastore.v1beta.MoveTableToDatabaseRequest
+ */
+class MoveTableToDatabaseRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metastore service to mutate
+ * metadata, in the following format:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $service = '';
+ /**
+ * Required. The name of the table to be moved.
+ *
+ * Generated from protobuf field string table_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $table_name = '';
+ /**
+ * Required. The name of the database where the table resides.
+ *
+ * Generated from protobuf field string db_name = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $db_name = '';
+ /**
+ * Required. The name of the database where the table should be moved.
+ *
+ * Generated from protobuf field string destination_db_name = 4 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $destination_db_name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $service
+ * Required. The relative resource name of the metastore service to mutate
+ * metadata, in the following format:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ * @type string $table_name
+ * Required. The name of the table to be moved.
+ * @type string $db_name
+ * Required. The name of the database where the table resides.
+ * @type string $destination_db_name
+ * Required. The name of the database where the table should be moved.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to mutate
+ * metadata, in the following format:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to mutate
+ * metadata, in the following format:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The name of the table to be moved.
+ *
+ * Generated from protobuf field string table_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getTableName()
+ {
+ return $this->table_name;
+ }
+
+ /**
+ * Required. The name of the table to be moved.
+ *
+ * Generated from protobuf field string table_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setTableName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->table_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The name of the database where the table resides.
+ *
+ * Generated from protobuf field string db_name = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getDbName()
+ {
+ return $this->db_name;
+ }
+
+ /**
+ * Required. The name of the database where the table resides.
+ *
+ * Generated from protobuf field string db_name = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setDbName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->db_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The name of the database where the table should be moved.
+ *
+ * Generated from protobuf field string destination_db_name = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getDestinationDbName()
+ {
+ return $this->destination_db_name;
+ }
+
+ /**
+ * Required. The name of the database where the table should be moved.
+ *
+ * Generated from protobuf field string destination_db_name = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setDestinationDbName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->destination_db_name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MoveTableToDatabaseResponse.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MoveTableToDatabaseResponse.php
new file mode 100644
index 000000000000..d37cfad3e623
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/MoveTableToDatabaseResponse.php
@@ -0,0 +1,34 @@
+google.cloud.metastore.v1beta.MoveTableToDatabaseResponse
+ */
+class MoveTableToDatabaseResponse extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/NetworkConfig.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/NetworkConfig.php
new file mode 100644
index 000000000000..c59d58f344fb
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/NetworkConfig.php
@@ -0,0 +1,109 @@
+google.cloud.metastore.v1beta.NetworkConfig
+ */
+class NetworkConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Immutable. The consumer-side network configuration for the Dataproc
+ * Metastore instance.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1beta.NetworkConfig.Consumer consumers = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ private $consumers;
+ /**
+ * Enables custom routes to be imported and exported for the Dataproc
+ * Metastore service's peered VPC network.
+ *
+ * Generated from protobuf field bool custom_routes_enabled = 2;
+ */
+ protected $custom_routes_enabled = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Metastore\V1beta\NetworkConfig\Consumer>|\Google\Protobuf\Internal\RepeatedField $consumers
+ * Immutable. The consumer-side network configuration for the Dataproc
+ * Metastore instance.
+ * @type bool $custom_routes_enabled
+ * Enables custom routes to be imported and exported for the Dataproc
+ * Metastore service's peered VPC network.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Immutable. The consumer-side network configuration for the Dataproc
+ * Metastore instance.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1beta.NetworkConfig.Consumer consumers = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getConsumers()
+ {
+ return $this->consumers;
+ }
+
+ /**
+ * Immutable. The consumer-side network configuration for the Dataproc
+ * Metastore instance.
+ *
+ * Generated from protobuf field repeated .google.cloud.metastore.v1beta.NetworkConfig.Consumer consumers = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param array<\Google\Cloud\Metastore\V1beta\NetworkConfig\Consumer>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setConsumers($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Metastore\V1beta\NetworkConfig\Consumer::class);
+ $this->consumers = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Enables custom routes to be imported and exported for the Dataproc
+ * Metastore service's peered VPC network.
+ *
+ * Generated from protobuf field bool custom_routes_enabled = 2;
+ * @return bool
+ */
+ public function getCustomRoutesEnabled()
+ {
+ return $this->custom_routes_enabled;
+ }
+
+ /**
+ * Enables custom routes to be imported and exported for the Dataproc
+ * Metastore service's peered VPC network.
+ *
+ * Generated from protobuf field bool custom_routes_enabled = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setCustomRoutesEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->custom_routes_enabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/NetworkConfig/Consumer.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/NetworkConfig/Consumer.php
new file mode 100644
index 000000000000..6db4093fea06
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/NetworkConfig/Consumer.php
@@ -0,0 +1,134 @@
+google.cloud.metastore.v1beta.NetworkConfig.Consumer
+ */
+class Consumer extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The URI of the endpoint used to access the metastore
+ * service.
+ *
+ * Generated from protobuf field string endpoint_uri = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $endpoint_uri = '';
+ protected $vpc_resource;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $subnetwork
+ * Immutable. The subnetwork of the customer project from which an IP
+ * address is reserved and used as the Dataproc Metastore service's
+ * endpoint. It is accessible to hosts in the subnet and to all
+ * hosts in a subnet in the same region and same network. There must
+ * be at least one IP address available in the subnet's primary range. The
+ * subnet is specified in the following form:
+ * `projects/{project_number}/regions/{region_id}/subnetworks/{subnetwork_id}`
+ * @type string $endpoint_uri
+ * Output only. The URI of the endpoint used to access the metastore
+ * service.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Immutable. The subnetwork of the customer project from which an IP
+ * address is reserved and used as the Dataproc Metastore service's
+ * endpoint. It is accessible to hosts in the subnet and to all
+ * hosts in a subnet in the same region and same network. There must
+ * be at least one IP address available in the subnet's primary range. The
+ * subnet is specified in the following form:
+ * `projects/{project_number}/regions/{region_id}/subnetworks/{subnetwork_id}`
+ *
+ * Generated from protobuf field string subnetwork = 1 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getSubnetwork()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasSubnetwork()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Immutable. The subnetwork of the customer project from which an IP
+ * address is reserved and used as the Dataproc Metastore service's
+ * endpoint. It is accessible to hosts in the subnet and to all
+ * hosts in a subnet in the same region and same network. There must
+ * be at least one IP address available in the subnet's primary range. The
+ * subnet is specified in the following form:
+ * `projects/{project_number}/regions/{region_id}/subnetworks/{subnetwork_id}`
+ *
+ * Generated from protobuf field string subnetwork = 1 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setSubnetwork($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The URI of the endpoint used to access the metastore
+ * service.
+ *
+ * Generated from protobuf field string endpoint_uri = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getEndpointUri()
+ {
+ return $this->endpoint_uri;
+ }
+
+ /**
+ * Output only. The URI of the endpoint used to access the metastore
+ * service.
+ *
+ * Generated from protobuf field string endpoint_uri = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setEndpointUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->endpoint_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getVpcResource()
+ {
+ return $this->whichOneof("vpc_resource");
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Consumer::class, \Google\Cloud\Metastore\V1beta\NetworkConfig_Consumer::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/NetworkConfig_Consumer.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/NetworkConfig_Consumer.php
new file mode 100644
index 000000000000..8f7e3889933d
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/NetworkConfig_Consumer.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1beta.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 caller 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 = 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 caller 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\Metastore\V1Beta\Metastore::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 caller 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 = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return bool
+ */
+ public function getRequestedCancellation()
+ {
+ return $this->requested_cancellation;
+ }
+
+ /**
+ * Output only. Identifies whether the caller 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 = 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/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/QueryMetadataRequest.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/QueryMetadataRequest.php
new file mode 100644
index 000000000000..fcab55a190ee
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/QueryMetadataRequest.php
@@ -0,0 +1,114 @@
+google.cloud.metastore.v1beta.QueryMetadataRequest
+ */
+class QueryMetadataRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metastore service to query
+ * metadata, in the following format:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $service = '';
+ /**
+ * Required. A read-only SQL query to execute against the metadata database.
+ * The query cannot change or mutate the data.
+ *
+ * Generated from protobuf field string query = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $query = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $service
+ * Required. The relative resource name of the metastore service to query
+ * metadata, in the following format:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ * @type string $query
+ * Required. A read-only SQL query to execute against the metadata database.
+ * The query cannot change or mutate the data.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to query
+ * metadata, in the following format:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to query
+ * metadata, in the following format:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. A read-only SQL query to execute against the metadata database.
+ * The query cannot change or mutate the data.
+ *
+ * Generated from protobuf field string query = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getQuery()
+ {
+ return $this->query;
+ }
+
+ /**
+ * Required. A read-only SQL query to execute against the metadata database.
+ * The query cannot change or mutate the data.
+ *
+ * Generated from protobuf field string query = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setQuery($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->query = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/QueryMetadataResponse.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/QueryMetadataResponse.php
new file mode 100644
index 000000000000..c9ce754485c8
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/QueryMetadataResponse.php
@@ -0,0 +1,80 @@
+google.cloud.metastore.v1beta.QueryMetadataResponse
+ */
+class QueryMetadataResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The manifest URI is link to a JSON instance in Cloud Storage.
+ * This instance manifests immediately along with QueryMetadataResponse. The
+ * content of the URI is not retriable until the long-running operation query
+ * against the metadata finishes.
+ *
+ * Generated from protobuf field string result_manifest_uri = 1;
+ */
+ protected $result_manifest_uri = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $result_manifest_uri
+ * The manifest URI is link to a JSON instance in Cloud Storage.
+ * This instance manifests immediately along with QueryMetadataResponse. The
+ * content of the URI is not retriable until the long-running operation query
+ * against the metadata finishes.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The manifest URI is link to a JSON instance in Cloud Storage.
+ * This instance manifests immediately along with QueryMetadataResponse. The
+ * content of the URI is not retriable until the long-running operation query
+ * against the metadata finishes.
+ *
+ * Generated from protobuf field string result_manifest_uri = 1;
+ * @return string
+ */
+ public function getResultManifestUri()
+ {
+ return $this->result_manifest_uri;
+ }
+
+ /**
+ * The manifest URI is link to a JSON instance in Cloud Storage.
+ * This instance manifests immediately along with QueryMetadataResponse. The
+ * content of the URI is not retriable until the long-running operation query
+ * against the metadata finishes.
+ *
+ * Generated from protobuf field string result_manifest_uri = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setResultManifestUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->result_manifest_uri = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/RemoveIamPolicyRequest.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/RemoveIamPolicyRequest.php
new file mode 100644
index 000000000000..ef9bdbaada41
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/RemoveIamPolicyRequest.php
@@ -0,0 +1,122 @@
+google.cloud.metastore.v1beta.RemoveIamPolicyRequest
+ */
+class RemoveIamPolicyRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the dataplane resource to remove
+ * IAM policy, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/databases/{database_id}`
+ * or
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/databases/{database_id}/tables/{table_id}`.
+ *
+ * Generated from protobuf field string resource = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $resource = '';
+ /**
+ * Optional. Removes IAM policy attached to database or table asynchronously
+ * when it is set. The default is false.
+ *
+ * Generated from protobuf field bool asynchronous = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $asynchronous = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $resource
+ * Required. The relative resource name of the dataplane resource to remove
+ * IAM policy, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/databases/{database_id}`
+ * or
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/databases/{database_id}/tables/{table_id}`.
+ * @type bool $asynchronous
+ * Optional. Removes IAM policy attached to database or table asynchronously
+ * when it is set. The default is false.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the dataplane resource to remove
+ * IAM policy, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/databases/{database_id}`
+ * or
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/databases/{database_id}/tables/{table_id}`.
+ *
+ * Generated from protobuf field string resource = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getResource()
+ {
+ return $this->resource;
+ }
+
+ /**
+ * Required. The relative resource name of the dataplane resource to remove
+ * IAM policy, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/databases/{database_id}`
+ * or
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/databases/{database_id}/tables/{table_id}`.
+ *
+ * Generated from protobuf field string resource = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setResource($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->resource = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Removes IAM policy attached to database or table asynchronously
+ * when it is set. The default is false.
+ *
+ * Generated from protobuf field bool asynchronous = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getAsynchronous()
+ {
+ return $this->asynchronous;
+ }
+
+ /**
+ * Optional. Removes IAM policy attached to database or table asynchronously
+ * when it is set. The default is false.
+ *
+ * Generated from protobuf field bool asynchronous = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setAsynchronous($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->asynchronous = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/RemoveIamPolicyResponse.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/RemoveIamPolicyResponse.php
new file mode 100644
index 000000000000..97cd799fd970
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/RemoveIamPolicyResponse.php
@@ -0,0 +1,68 @@
+google.cloud.metastore.v1beta.RemoveIamPolicyResponse
+ */
+class RemoveIamPolicyResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * True if the policy is successfully removed.
+ *
+ * Generated from protobuf field bool success = 1;
+ */
+ protected $success = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $success
+ * True if the policy is successfully removed.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * True if the policy is successfully removed.
+ *
+ * Generated from protobuf field bool success = 1;
+ * @return bool
+ */
+ public function getSuccess()
+ {
+ return $this->success;
+ }
+
+ /**
+ * True if the policy is successfully removed.
+ *
+ * Generated from protobuf field bool success = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setSuccess($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->success = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Restore.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Restore.php
new file mode 100644
index 000000000000..08b45e5feddb
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Restore.php
@@ -0,0 +1,269 @@
+google.cloud.metastore.v1beta.Restore
+ */
+class Restore extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The time when the restore started.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $start_time = null;
+ /**
+ * Output only. The time when the restore ended.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $end_time = null;
+ /**
+ * Output only. The current state of the restore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Restore.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * Generated from protobuf field string backup = 4 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ */
+ protected $backup = '';
+ /**
+ * Output only. The type of restore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Restore.RestoreType type = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $type = 0;
+ /**
+ * Output only. The restore details containing the revision of the service to
+ * be restored to, in format of JSON.
+ *
+ * Generated from protobuf field string details = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $details = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Timestamp $start_time
+ * Output only. The time when the restore started.
+ * @type \Google\Protobuf\Timestamp $end_time
+ * Output only. The time when the restore ended.
+ * @type int $state
+ * Output only. The current state of the restore.
+ * @type string $backup
+ * Output only. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ * @type int $type
+ * Output only. The type of restore.
+ * @type string $details
+ * Output only. The restore details containing the revision of the service to
+ * be restored to, in format of JSON.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The time when the restore started.
+ *
+ * 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 time when the restore started.
+ *
+ * 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 time when the restore ended.
+ *
+ * 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 when the restore ended.
+ *
+ * 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 current state of the restore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Restore.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The current state of the restore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Restore.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1beta\Restore\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * Generated from protobuf field string backup = 4 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getBackup()
+ {
+ return $this->backup;
+ }
+
+ /**
+ * Output only. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * Generated from protobuf field string backup = 4 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setBackup($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->backup = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The type of restore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Restore.RestoreType type = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * Output only. The type of restore.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Restore.RestoreType type = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1beta\Restore\RestoreType::class);
+ $this->type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The restore details containing the revision of the service to
+ * be restored to, in format of JSON.
+ *
+ * Generated from protobuf field string details = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getDetails()
+ {
+ return $this->details;
+ }
+
+ /**
+ * Output only. The restore details containing the revision of the service to
+ * be restored to, in format of JSON.
+ *
+ * Generated from protobuf field string details = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setDetails($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->details = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Restore/RestoreType.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Restore/RestoreType.php
new file mode 100644
index 000000000000..72d5ccd06ea4
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Restore/RestoreType.php
@@ -0,0 +1,64 @@
+google.cloud.metastore.v1beta.Restore.RestoreType
+ */
+class RestoreType
+{
+ /**
+ * The restore type is unknown.
+ *
+ * Generated from protobuf enum RESTORE_TYPE_UNSPECIFIED = 0;
+ */
+ const RESTORE_TYPE_UNSPECIFIED = 0;
+ /**
+ * The service's metadata and configuration are restored.
+ *
+ * Generated from protobuf enum FULL = 1;
+ */
+ const FULL = 1;
+ /**
+ * Only the service's metadata is restored.
+ *
+ * Generated from protobuf enum METADATA_ONLY = 2;
+ */
+ const METADATA_ONLY = 2;
+
+ private static $valueToName = [
+ self::RESTORE_TYPE_UNSPECIFIED => 'RESTORE_TYPE_UNSPECIFIED',
+ self::FULL => 'FULL',
+ self::METADATA_ONLY => 'METADATA_ONLY',
+ ];
+
+ 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(RestoreType::class, \Google\Cloud\Metastore\V1beta\Restore_RestoreType::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Restore/State.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Restore/State.php
new file mode 100644
index 000000000000..9d8d0bc75bfa
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Restore/State.php
@@ -0,0 +1,78 @@
+google.cloud.metastore.v1beta.Restore.State
+ */
+class State
+{
+ /**
+ * The state of the metadata restore is unknown.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The metadata restore is running.
+ *
+ * Generated from protobuf enum RUNNING = 1;
+ */
+ const RUNNING = 1;
+ /**
+ * The metadata restore completed successfully.
+ *
+ * Generated from protobuf enum SUCCEEDED = 2;
+ */
+ const SUCCEEDED = 2;
+ /**
+ * The metadata restore failed.
+ *
+ * Generated from protobuf enum FAILED = 3;
+ */
+ const FAILED = 3;
+ /**
+ * The metadata restore is cancelled.
+ *
+ * Generated from protobuf enum CANCELLED = 4;
+ */
+ const CANCELLED = 4;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::RUNNING => 'RUNNING',
+ self::SUCCEEDED => 'SUCCEEDED',
+ self::FAILED => 'FAILED',
+ self::CANCELLED => 'CANCELLED',
+ ];
+
+ 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\Metastore\V1beta\Restore_State::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/RestoreServiceRequest.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/RestoreServiceRequest.php
new file mode 100644
index 000000000000..9b2a11f70b4d
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/RestoreServiceRequest.php
@@ -0,0 +1,221 @@
+google.cloud.metastore.v1beta.RestoreServiceRequest
+ */
+class RestoreServiceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The relative resource name of the metastore service to run
+ * restore, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $service = '';
+ /**
+ * Required. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * Generated from protobuf field string backup = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $backup = '';
+ /**
+ * Optional. The type of restore. If unspecified, defaults to `METADATA_ONLY`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Restore.RestoreType restore_type = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $restore_type = 0;
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $service
+ * Required. The relative resource name of the metastore service to run
+ * restore, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ * @type string $backup
+ * Required. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ * @type int $restore_type
+ * Optional. The type of restore. If unspecified, defaults to `METADATA_ONLY`.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to run
+ * restore, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service to run
+ * restore, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * Generated from protobuf field string backup = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getBackup()
+ {
+ return $this->backup;
+ }
+
+ /**
+ * Required. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ *
+ * Generated from protobuf field string backup = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setBackup($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->backup = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The type of restore. If unspecified, defaults to `METADATA_ONLY`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Restore.RestoreType restore_type = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getRestoreType()
+ {
+ return $this->restore_type;
+ }
+
+ /**
+ * Optional. The type of restore. If unspecified, defaults to `METADATA_ONLY`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Restore.RestoreType restore_type = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setRestoreType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1beta\Restore\RestoreType::class);
+ $this->restore_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Restore_RestoreType.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Restore_RestoreType.php
new file mode 100644
index 000000000000..84ae8965aa18
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Restore_RestoreType.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1beta.ScalingConfig
+ */
+class ScalingConfig extends \Google\Protobuf\Internal\Message
+{
+ protected $scaling_model;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $instance_size
+ * An enum of readable instance sizes, with each instance size mapping to a
+ * float value (e.g. InstanceSize.EXTRA_SMALL = scaling_factor(0.1))
+ * @type float $scaling_factor
+ * Scaling factor, increments of 0.1 for values less than 1.0, and
+ * increments of 1.0 for values greater than 1.0.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * An enum of readable instance sizes, with each instance size mapping to a
+ * float value (e.g. InstanceSize.EXTRA_SMALL = scaling_factor(0.1))
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.ScalingConfig.InstanceSize instance_size = 1;
+ * @return int
+ */
+ public function getInstanceSize()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasInstanceSize()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * An enum of readable instance sizes, with each instance size mapping to a
+ * float value (e.g. InstanceSize.EXTRA_SMALL = scaling_factor(0.1))
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.ScalingConfig.InstanceSize instance_size = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setInstanceSize($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1beta\ScalingConfig\InstanceSize::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Scaling factor, increments of 0.1 for values less than 1.0, and
+ * increments of 1.0 for values greater than 1.0.
+ *
+ * Generated from protobuf field float scaling_factor = 2;
+ * @return float
+ */
+ public function getScalingFactor()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasScalingFactor()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Scaling factor, increments of 0.1 for values less than 1.0, and
+ * increments of 1.0 for values greater than 1.0.
+ *
+ * Generated from protobuf field float scaling_factor = 2;
+ * @param float $var
+ * @return $this
+ */
+ public function setScalingFactor($var)
+ {
+ GPBUtil::checkFloat($var);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getScalingModel()
+ {
+ return $this->whichOneof("scaling_model");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ScalingConfig/InstanceSize.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ScalingConfig/InstanceSize.php
new file mode 100644
index 000000000000..5b62c489ed94
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ScalingConfig/InstanceSize.php
@@ -0,0 +1,85 @@
+google.cloud.metastore.v1beta.ScalingConfig.InstanceSize
+ */
+class InstanceSize
+{
+ /**
+ * Unspecified instance size
+ *
+ * Generated from protobuf enum INSTANCE_SIZE_UNSPECIFIED = 0;
+ */
+ const INSTANCE_SIZE_UNSPECIFIED = 0;
+ /**
+ * Extra small instance size, maps to a scaling factor of 0.1.
+ *
+ * Generated from protobuf enum EXTRA_SMALL = 1;
+ */
+ const EXTRA_SMALL = 1;
+ /**
+ * Small instance size, maps to a scaling factor of 0.5.
+ *
+ * Generated from protobuf enum SMALL = 2;
+ */
+ const SMALL = 2;
+ /**
+ * Medium instance size, maps to a scaling factor of 1.0.
+ *
+ * Generated from protobuf enum MEDIUM = 3;
+ */
+ const MEDIUM = 3;
+ /**
+ * Large instance size, maps to a scaling factor of 3.0.
+ *
+ * Generated from protobuf enum LARGE = 4;
+ */
+ const LARGE = 4;
+ /**
+ * Extra large instance size, maps to a scaling factor of 6.0.
+ *
+ * Generated from protobuf enum EXTRA_LARGE = 5;
+ */
+ const EXTRA_LARGE = 5;
+
+ private static $valueToName = [
+ self::INSTANCE_SIZE_UNSPECIFIED => 'INSTANCE_SIZE_UNSPECIFIED',
+ self::EXTRA_SMALL => 'EXTRA_SMALL',
+ self::SMALL => 'SMALL',
+ self::MEDIUM => 'MEDIUM',
+ self::LARGE => 'LARGE',
+ self::EXTRA_LARGE => 'EXTRA_LARGE',
+ ];
+
+ 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(InstanceSize::class, \Google\Cloud\Metastore\V1beta\ScalingConfig_InstanceSize::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ScalingConfig_InstanceSize.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ScalingConfig_InstanceSize.php
new file mode 100644
index 000000000000..98f36a9a11ff
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/ScalingConfig_InstanceSize.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1beta.Secret
+ */
+class Secret extends \Google\Protobuf\Internal\Message
+{
+ protected $value;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $cloud_secret
+ * The relative resource name of a Secret Manager secret version, in the
+ * following form:
+ * `projects/{project_number}/secrets/{secret_id}/versions/{version_id}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The relative resource name of a Secret Manager secret version, in the
+ * following form:
+ * `projects/{project_number}/secrets/{secret_id}/versions/{version_id}`.
+ *
+ * Generated from protobuf field string cloud_secret = 2;
+ * @return string
+ */
+ public function getCloudSecret()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasCloudSecret()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * The relative resource name of a Secret Manager secret version, in the
+ * following form:
+ * `projects/{project_number}/secrets/{secret_id}/versions/{version_id}`.
+ *
+ * Generated from protobuf field string cloud_secret = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setCloudSecret($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getValue()
+ {
+ return $this->whichOneof("value");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Service.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Service.php
new file mode 100644
index 000000000000..5c9d221a90af
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Service.php
@@ -0,0 +1,942 @@
+google.cloud.metastore.v1beta.Service
+ */
+class Service extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Immutable. The relative resource name of the metastore service, in the
+ * following format:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $name = '';
+ /**
+ * Output only. The time when the metastore service 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 metastore service was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * User-defined labels for the metastore service.
+ *
+ * Generated from protobuf field map labels = 4;
+ */
+ private $labels;
+ /**
+ * Immutable. The relative resource name of the VPC network on which the
+ * instance can be accessed. It is specified in the following form:
+ * `projects/{project_number}/global/networks/{network_id}`.
+ *
+ * Generated from protobuf field string network = 7 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ */
+ protected $network = '';
+ /**
+ * Output only. The URI of the endpoint used to access the metastore service.
+ *
+ * Generated from protobuf field string endpoint_uri = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $endpoint_uri = '';
+ /**
+ * The TCP port at which the metastore service is reached. Default: 9083.
+ *
+ * Generated from protobuf field int32 port = 9;
+ */
+ protected $port = 0;
+ /**
+ * Output only. The current state of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Service.State state = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. Additional information about the current state of the
+ * metastore service, if available.
+ *
+ * Generated from protobuf field string state_message = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state_message = '';
+ /**
+ * Output only. A Cloud Storage URI (starting with `gs://`) that specifies
+ * where artifacts related to the metastore service are stored.
+ *
+ * Generated from protobuf field string artifact_gcs_uri = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $artifact_gcs_uri = '';
+ /**
+ * The tier of the service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Service.Tier tier = 13;
+ */
+ protected $tier = 0;
+ /**
+ * The setting that defines how metastore metadata should be integrated with
+ * external services and systems.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.MetadataIntegration metadata_integration = 14;
+ */
+ protected $metadata_integration = null;
+ /**
+ * The one hour maintenance window of the metastore service. This specifies
+ * when the service can be restarted for maintenance purposes in UTC time.
+ * Maintenance window is not needed for services with the SPANNER
+ * database type.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.MaintenanceWindow maintenance_window = 15;
+ */
+ protected $maintenance_window = null;
+ /**
+ * Output only. The globally unique resource identifier of the metastore
+ * service.
+ *
+ * Generated from protobuf field string uid = 16 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $uid = '';
+ /**
+ * Output only. The metadata management activities of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.MetadataManagementActivity metadata_management_activity = 17 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $metadata_management_activity = null;
+ /**
+ * Immutable. The release channel of the service.
+ * If unspecified, defaults to `STABLE`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Service.ReleaseChannel release_channel = 19 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $release_channel = 0;
+ /**
+ * Immutable. Information used to configure the Dataproc Metastore service to
+ * encrypt customer data at rest. Cannot be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.EncryptionConfig encryption_config = 20 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $encryption_config = null;
+ /**
+ * The configuration specifying the network settings for the
+ * Dataproc Metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.NetworkConfig network_config = 21;
+ */
+ protected $network_config = null;
+ /**
+ * Immutable. The database type that the Metastore service stores its data.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Service.DatabaseType database_type = 22 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $database_type = 0;
+ /**
+ * The configuration specifying telemetry settings for the Dataproc Metastore
+ * service. If unspecified defaults to `JSON`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.TelemetryConfig telemetry_config = 23;
+ */
+ protected $telemetry_config = null;
+ /**
+ * Scaling configuration of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.ScalingConfig scaling_config = 24;
+ */
+ protected $scaling_config = null;
+ protected $metastore_config;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Metastore\V1beta\HiveMetastoreConfig $hive_metastore_config
+ * Configuration information specific to running Hive metastore
+ * software as the metastore service.
+ * @type string $name
+ * Immutable. The relative resource name of the metastore service, in the
+ * following format:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time when the metastore service was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The time when the metastore service was last updated.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * User-defined labels for the metastore service.
+ * @type string $network
+ * Immutable. The relative resource name of the VPC network on which the
+ * instance can be accessed. It is specified in the following form:
+ * `projects/{project_number}/global/networks/{network_id}`.
+ * @type string $endpoint_uri
+ * Output only. The URI of the endpoint used to access the metastore service.
+ * @type int $port
+ * The TCP port at which the metastore service is reached. Default: 9083.
+ * @type int $state
+ * Output only. The current state of the metastore service.
+ * @type string $state_message
+ * Output only. Additional information about the current state of the
+ * metastore service, if available.
+ * @type string $artifact_gcs_uri
+ * Output only. A Cloud Storage URI (starting with `gs://`) that specifies
+ * where artifacts related to the metastore service are stored.
+ * @type int $tier
+ * The tier of the service.
+ * @type \Google\Cloud\Metastore\V1beta\MetadataIntegration $metadata_integration
+ * The setting that defines how metastore metadata should be integrated with
+ * external services and systems.
+ * @type \Google\Cloud\Metastore\V1beta\MaintenanceWindow $maintenance_window
+ * The one hour maintenance window of the metastore service. This specifies
+ * when the service can be restarted for maintenance purposes in UTC time.
+ * Maintenance window is not needed for services with the SPANNER
+ * database type.
+ * @type string $uid
+ * Output only. The globally unique resource identifier of the metastore
+ * service.
+ * @type \Google\Cloud\Metastore\V1beta\MetadataManagementActivity $metadata_management_activity
+ * Output only. The metadata management activities of the metastore service.
+ * @type int $release_channel
+ * Immutable. The release channel of the service.
+ * If unspecified, defaults to `STABLE`.
+ * @type \Google\Cloud\Metastore\V1beta\EncryptionConfig $encryption_config
+ * Immutable. Information used to configure the Dataproc Metastore service to
+ * encrypt customer data at rest. Cannot be updated.
+ * @type \Google\Cloud\Metastore\V1beta\NetworkConfig $network_config
+ * The configuration specifying the network settings for the
+ * Dataproc Metastore service.
+ * @type int $database_type
+ * Immutable. The database type that the Metastore service stores its data.
+ * @type \Google\Cloud\Metastore\V1beta\TelemetryConfig $telemetry_config
+ * The configuration specifying telemetry settings for the Dataproc Metastore
+ * service. If unspecified defaults to `JSON`.
+ * @type \Google\Cloud\Metastore\V1beta\ScalingConfig $scaling_config
+ * Scaling configuration of the metastore service.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Configuration information specific to running Hive metastore
+ * software as the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.HiveMetastoreConfig hive_metastore_config = 5;
+ * @return \Google\Cloud\Metastore\V1beta\HiveMetastoreConfig|null
+ */
+ public function getHiveMetastoreConfig()
+ {
+ return $this->readOneof(5);
+ }
+
+ public function hasHiveMetastoreConfig()
+ {
+ return $this->hasOneof(5);
+ }
+
+ /**
+ * Configuration information specific to running Hive metastore
+ * software as the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.HiveMetastoreConfig hive_metastore_config = 5;
+ * @param \Google\Cloud\Metastore\V1beta\HiveMetastoreConfig $var
+ * @return $this
+ */
+ public function setHiveMetastoreConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1beta\HiveMetastoreConfig::class);
+ $this->writeOneof(5, $var);
+
+ return $this;
+ }
+
+ /**
+ * Immutable. The relative resource name of the metastore service, in the
+ * following format:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Immutable. The relative resource name of the metastore service, in the
+ * following format:
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the metastore service 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 metastore service 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 metastore service 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 metastore service 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-defined labels for the metastore service.
+ *
+ * Generated from protobuf field map labels = 4;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * User-defined labels for the metastore service.
+ *
+ * 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;
+ }
+
+ /**
+ * Immutable. The relative resource name of the VPC network on which the
+ * instance can be accessed. It is specified in the following form:
+ * `projects/{project_number}/global/networks/{network_id}`.
+ *
+ * Generated from protobuf field string network = 7 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getNetwork()
+ {
+ return $this->network;
+ }
+
+ /**
+ * Immutable. The relative resource name of the VPC network on which the
+ * instance can be accessed. It is specified in the following form:
+ * `projects/{project_number}/global/networks/{network_id}`.
+ *
+ * Generated from protobuf field string network = 7 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setNetwork($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->network = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The URI of the endpoint used to access the metastore service.
+ *
+ * Generated from protobuf field string endpoint_uri = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getEndpointUri()
+ {
+ return $this->endpoint_uri;
+ }
+
+ /**
+ * Output only. The URI of the endpoint used to access the metastore service.
+ *
+ * Generated from protobuf field string endpoint_uri = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setEndpointUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->endpoint_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * The TCP port at which the metastore service is reached. Default: 9083.
+ *
+ * Generated from protobuf field int32 port = 9;
+ * @return int
+ */
+ public function getPort()
+ {
+ return $this->port;
+ }
+
+ /**
+ * The TCP port at which the metastore service is reached. Default: 9083.
+ *
+ * Generated from protobuf field int32 port = 9;
+ * @param int $var
+ * @return $this
+ */
+ public function setPort($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->port = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The current state of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Service.State state = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The current state of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Service.State state = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1beta\Service\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Additional information about the current state of the
+ * metastore service, if available.
+ *
+ * Generated from protobuf field string state_message = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getStateMessage()
+ {
+ return $this->state_message;
+ }
+
+ /**
+ * Output only. Additional information about the current state of the
+ * metastore service, if available.
+ *
+ * Generated from protobuf field string state_message = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setStateMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->state_message = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. A Cloud Storage URI (starting with `gs://`) that specifies
+ * where artifacts related to the metastore service are stored.
+ *
+ * Generated from protobuf field string artifact_gcs_uri = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getArtifactGcsUri()
+ {
+ return $this->artifact_gcs_uri;
+ }
+
+ /**
+ * Output only. A Cloud Storage URI (starting with `gs://`) that specifies
+ * where artifacts related to the metastore service are stored.
+ *
+ * Generated from protobuf field string artifact_gcs_uri = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setArtifactGcsUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->artifact_gcs_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * The tier of the service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Service.Tier tier = 13;
+ * @return int
+ */
+ public function getTier()
+ {
+ return $this->tier;
+ }
+
+ /**
+ * The tier of the service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Service.Tier tier = 13;
+ * @param int $var
+ * @return $this
+ */
+ public function setTier($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1beta\Service\Tier::class);
+ $this->tier = $var;
+
+ return $this;
+ }
+
+ /**
+ * The setting that defines how metastore metadata should be integrated with
+ * external services and systems.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.MetadataIntegration metadata_integration = 14;
+ * @return \Google\Cloud\Metastore\V1beta\MetadataIntegration|null
+ */
+ public function getMetadataIntegration()
+ {
+ return $this->metadata_integration;
+ }
+
+ public function hasMetadataIntegration()
+ {
+ return isset($this->metadata_integration);
+ }
+
+ public function clearMetadataIntegration()
+ {
+ unset($this->metadata_integration);
+ }
+
+ /**
+ * The setting that defines how metastore metadata should be integrated with
+ * external services and systems.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.MetadataIntegration metadata_integration = 14;
+ * @param \Google\Cloud\Metastore\V1beta\MetadataIntegration $var
+ * @return $this
+ */
+ public function setMetadataIntegration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1beta\MetadataIntegration::class);
+ $this->metadata_integration = $var;
+
+ return $this;
+ }
+
+ /**
+ * The one hour maintenance window of the metastore service. This specifies
+ * when the service can be restarted for maintenance purposes in UTC time.
+ * Maintenance window is not needed for services with the SPANNER
+ * database type.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.MaintenanceWindow maintenance_window = 15;
+ * @return \Google\Cloud\Metastore\V1beta\MaintenanceWindow|null
+ */
+ public function getMaintenanceWindow()
+ {
+ return $this->maintenance_window;
+ }
+
+ public function hasMaintenanceWindow()
+ {
+ return isset($this->maintenance_window);
+ }
+
+ public function clearMaintenanceWindow()
+ {
+ unset($this->maintenance_window);
+ }
+
+ /**
+ * The one hour maintenance window of the metastore service. This specifies
+ * when the service can be restarted for maintenance purposes in UTC time.
+ * Maintenance window is not needed for services with the SPANNER
+ * database type.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.MaintenanceWindow maintenance_window = 15;
+ * @param \Google\Cloud\Metastore\V1beta\MaintenanceWindow $var
+ * @return $this
+ */
+ public function setMaintenanceWindow($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1beta\MaintenanceWindow::class);
+ $this->maintenance_window = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The globally unique resource identifier of the metastore
+ * service.
+ *
+ * Generated from protobuf field string uid = 16 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getUid()
+ {
+ return $this->uid;
+ }
+
+ /**
+ * Output only. The globally unique resource identifier of the metastore
+ * service.
+ *
+ * Generated from protobuf field string uid = 16 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setUid($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uid = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The metadata management activities of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.MetadataManagementActivity metadata_management_activity = 17 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Metastore\V1beta\MetadataManagementActivity|null
+ */
+ public function getMetadataManagementActivity()
+ {
+ return $this->metadata_management_activity;
+ }
+
+ public function hasMetadataManagementActivity()
+ {
+ return isset($this->metadata_management_activity);
+ }
+
+ public function clearMetadataManagementActivity()
+ {
+ unset($this->metadata_management_activity);
+ }
+
+ /**
+ * Output only. The metadata management activities of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.MetadataManagementActivity metadata_management_activity = 17 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Metastore\V1beta\MetadataManagementActivity $var
+ * @return $this
+ */
+ public function setMetadataManagementActivity($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1beta\MetadataManagementActivity::class);
+ $this->metadata_management_activity = $var;
+
+ return $this;
+ }
+
+ /**
+ * Immutable. The release channel of the service.
+ * If unspecified, defaults to `STABLE`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Service.ReleaseChannel release_channel = 19 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return int
+ */
+ public function getReleaseChannel()
+ {
+ return $this->release_channel;
+ }
+
+ /**
+ * Immutable. The release channel of the service.
+ * If unspecified, defaults to `STABLE`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Service.ReleaseChannel release_channel = 19 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param int $var
+ * @return $this
+ */
+ public function setReleaseChannel($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1beta\Service\ReleaseChannel::class);
+ $this->release_channel = $var;
+
+ return $this;
+ }
+
+ /**
+ * Immutable. Information used to configure the Dataproc Metastore service to
+ * encrypt customer data at rest. Cannot be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.EncryptionConfig encryption_config = 20 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return \Google\Cloud\Metastore\V1beta\EncryptionConfig|null
+ */
+ public function getEncryptionConfig()
+ {
+ return $this->encryption_config;
+ }
+
+ public function hasEncryptionConfig()
+ {
+ return isset($this->encryption_config);
+ }
+
+ public function clearEncryptionConfig()
+ {
+ unset($this->encryption_config);
+ }
+
+ /**
+ * Immutable. Information used to configure the Dataproc Metastore service to
+ * encrypt customer data at rest. Cannot be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.EncryptionConfig encryption_config = 20 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param \Google\Cloud\Metastore\V1beta\EncryptionConfig $var
+ * @return $this
+ */
+ public function setEncryptionConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1beta\EncryptionConfig::class);
+ $this->encryption_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The configuration specifying the network settings for the
+ * Dataproc Metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.NetworkConfig network_config = 21;
+ * @return \Google\Cloud\Metastore\V1beta\NetworkConfig|null
+ */
+ public function getNetworkConfig()
+ {
+ return $this->network_config;
+ }
+
+ public function hasNetworkConfig()
+ {
+ return isset($this->network_config);
+ }
+
+ public function clearNetworkConfig()
+ {
+ unset($this->network_config);
+ }
+
+ /**
+ * The configuration specifying the network settings for the
+ * Dataproc Metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.NetworkConfig network_config = 21;
+ * @param \Google\Cloud\Metastore\V1beta\NetworkConfig $var
+ * @return $this
+ */
+ public function setNetworkConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1beta\NetworkConfig::class);
+ $this->network_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Immutable. The database type that the Metastore service stores its data.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Service.DatabaseType database_type = 22 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return int
+ */
+ public function getDatabaseType()
+ {
+ return $this->database_type;
+ }
+
+ /**
+ * Immutable. The database type that the Metastore service stores its data.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Service.DatabaseType database_type = 22 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param int $var
+ * @return $this
+ */
+ public function setDatabaseType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1beta\Service\DatabaseType::class);
+ $this->database_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * The configuration specifying telemetry settings for the Dataproc Metastore
+ * service. If unspecified defaults to `JSON`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.TelemetryConfig telemetry_config = 23;
+ * @return \Google\Cloud\Metastore\V1beta\TelemetryConfig|null
+ */
+ public function getTelemetryConfig()
+ {
+ return $this->telemetry_config;
+ }
+
+ public function hasTelemetryConfig()
+ {
+ return isset($this->telemetry_config);
+ }
+
+ public function clearTelemetryConfig()
+ {
+ unset($this->telemetry_config);
+ }
+
+ /**
+ * The configuration specifying telemetry settings for the Dataproc Metastore
+ * service. If unspecified defaults to `JSON`.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.TelemetryConfig telemetry_config = 23;
+ * @param \Google\Cloud\Metastore\V1beta\TelemetryConfig $var
+ * @return $this
+ */
+ public function setTelemetryConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1beta\TelemetryConfig::class);
+ $this->telemetry_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Scaling configuration of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.ScalingConfig scaling_config = 24;
+ * @return \Google\Cloud\Metastore\V1beta\ScalingConfig|null
+ */
+ public function getScalingConfig()
+ {
+ return $this->scaling_config;
+ }
+
+ public function hasScalingConfig()
+ {
+ return isset($this->scaling_config);
+ }
+
+ public function clearScalingConfig()
+ {
+ unset($this->scaling_config);
+ }
+
+ /**
+ * Scaling configuration of the metastore service.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.ScalingConfig scaling_config = 24;
+ * @param \Google\Cloud\Metastore\V1beta\ScalingConfig $var
+ * @return $this
+ */
+ public function setScalingConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1beta\ScalingConfig::class);
+ $this->scaling_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getMetastoreConfig()
+ {
+ return $this->whichOneof("metastore_config");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Service/DatabaseType.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Service/DatabaseType.php
new file mode 100644
index 000000000000..d4c91edc9267
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Service/DatabaseType.php
@@ -0,0 +1,64 @@
+google.cloud.metastore.v1beta.Service.DatabaseType
+ */
+class DatabaseType
+{
+ /**
+ * The DATABASE_TYPE is not set.
+ *
+ * Generated from protobuf enum DATABASE_TYPE_UNSPECIFIED = 0;
+ */
+ const DATABASE_TYPE_UNSPECIFIED = 0;
+ /**
+ * MySQL is used to persist the metastore data.
+ *
+ * Generated from protobuf enum MYSQL = 1;
+ */
+ const MYSQL = 1;
+ /**
+ * Spanner is used to persist the metastore data.
+ *
+ * Generated from protobuf enum SPANNER = 2;
+ */
+ const SPANNER = 2;
+
+ private static $valueToName = [
+ self::DATABASE_TYPE_UNSPECIFIED => 'DATABASE_TYPE_UNSPECIFIED',
+ self::MYSQL => 'MYSQL',
+ self::SPANNER => 'SPANNER',
+ ];
+
+ 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(DatabaseType::class, \Google\Cloud\Metastore\V1beta\Service_DatabaseType::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Service/ReleaseChannel.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Service/ReleaseChannel.php
new file mode 100644
index 000000000000..1faf78badb2d
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Service/ReleaseChannel.php
@@ -0,0 +1,69 @@
+google.cloud.metastore.v1beta.Service.ReleaseChannel
+ */
+class ReleaseChannel
+{
+ /**
+ * Release channel is not specified.
+ *
+ * Generated from protobuf enum RELEASE_CHANNEL_UNSPECIFIED = 0;
+ */
+ const RELEASE_CHANNEL_UNSPECIFIED = 0;
+ /**
+ * The `CANARY` release channel contains the newest features, which may be
+ * unstable and subject to unresolved issues with no known workarounds.
+ * Services using the `CANARY` release channel are not subject to any SLAs.
+ *
+ * Generated from protobuf enum CANARY = 1;
+ */
+ const CANARY = 1;
+ /**
+ * The `STABLE` release channel contains features that are considered stable
+ * and have been validated for production use.
+ *
+ * Generated from protobuf enum STABLE = 2;
+ */
+ const STABLE = 2;
+
+ private static $valueToName = [
+ self::RELEASE_CHANNEL_UNSPECIFIED => 'RELEASE_CHANNEL_UNSPECIFIED',
+ self::CANARY => 'CANARY',
+ self::STABLE => 'STABLE',
+ ];
+
+ 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(ReleaseChannel::class, \Google\Cloud\Metastore\V1beta\Service_ReleaseChannel::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Service/State.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Service/State.php
new file mode 100644
index 000000000000..fb8f23bdab4f
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Service/State.php
@@ -0,0 +1,102 @@
+google.cloud.metastore.v1beta.Service.State
+ */
+class State
+{
+ /**
+ * The state of the metastore service is unknown.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The metastore service is in the process of being created.
+ *
+ * Generated from protobuf enum CREATING = 1;
+ */
+ const CREATING = 1;
+ /**
+ * The metastore service is running and ready to serve queries.
+ *
+ * Generated from protobuf enum ACTIVE = 2;
+ */
+ const ACTIVE = 2;
+ /**
+ * The metastore service is entering suspension. Its query-serving
+ * availability may cease unexpectedly.
+ *
+ * Generated from protobuf enum SUSPENDING = 3;
+ */
+ const SUSPENDING = 3;
+ /**
+ * The metastore service is suspended and unable to serve queries.
+ *
+ * Generated from protobuf enum SUSPENDED = 4;
+ */
+ const SUSPENDED = 4;
+ /**
+ * The metastore service is being updated. It remains usable but cannot
+ * accept additional update requests or be deleted at this time.
+ *
+ * Generated from protobuf enum UPDATING = 5;
+ */
+ const UPDATING = 5;
+ /**
+ * The metastore service is undergoing deletion. It cannot be used.
+ *
+ * Generated from protobuf enum DELETING = 6;
+ */
+ const DELETING = 6;
+ /**
+ * The metastore service has encountered an error and cannot be used. The
+ * metastore service should be deleted.
+ *
+ * Generated from protobuf enum ERROR = 7;
+ */
+ const ERROR = 7;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::CREATING => 'CREATING',
+ self::ACTIVE => 'ACTIVE',
+ self::SUSPENDING => 'SUSPENDING',
+ self::SUSPENDED => 'SUSPENDED',
+ self::UPDATING => 'UPDATING',
+ self::DELETING => 'DELETING',
+ self::ERROR => 'ERROR',
+ ];
+
+ 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\Metastore\V1beta\Service_State::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Service/Tier.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Service/Tier.php
new file mode 100644
index 000000000000..efef7c59b6c1
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Service/Tier.php
@@ -0,0 +1,66 @@
+google.cloud.metastore.v1beta.Service.Tier
+ */
+class Tier
+{
+ /**
+ * The tier is not set.
+ *
+ * Generated from protobuf enum TIER_UNSPECIFIED = 0;
+ */
+ const TIER_UNSPECIFIED = 0;
+ /**
+ * The developer tier provides limited scalability and no fault tolerance.
+ * Good for low-cost proof-of-concept.
+ *
+ * Generated from protobuf enum DEVELOPER = 1;
+ */
+ const DEVELOPER = 1;
+ /**
+ * The enterprise tier provides multi-zone high availability, and sufficient
+ * scalability for enterprise-level Dataproc Metastore workloads.
+ *
+ * Generated from protobuf enum ENTERPRISE = 3;
+ */
+ const ENTERPRISE = 3;
+
+ private static $valueToName = [
+ self::TIER_UNSPECIFIED => 'TIER_UNSPECIFIED',
+ self::DEVELOPER => 'DEVELOPER',
+ self::ENTERPRISE => 'ENTERPRISE',
+ ];
+
+ 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(Tier::class, \Google\Cloud\Metastore\V1beta\Service_Tier::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Service_DatabaseType.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Service_DatabaseType.php
new file mode 100644
index 000000000000..d33433a81c8d
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/Service_DatabaseType.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1beta.TelemetryConfig
+ */
+class TelemetryConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The output format of the Dataproc Metastore service's logs.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.TelemetryConfig.LogFormat log_format = 1;
+ */
+ protected $log_format = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $log_format
+ * The output format of the Dataproc Metastore service's logs.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The output format of the Dataproc Metastore service's logs.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.TelemetryConfig.LogFormat log_format = 1;
+ * @return int
+ */
+ public function getLogFormat()
+ {
+ return $this->log_format;
+ }
+
+ /**
+ * The output format of the Dataproc Metastore service's logs.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.TelemetryConfig.LogFormat log_format = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setLogFormat($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Metastore\V1beta\TelemetryConfig\LogFormat::class);
+ $this->log_format = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/TelemetryConfig/LogFormat.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/TelemetryConfig/LogFormat.php
new file mode 100644
index 000000000000..31a5ac103767
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/TelemetryConfig/LogFormat.php
@@ -0,0 +1,62 @@
+google.cloud.metastore.v1beta.TelemetryConfig.LogFormat
+ */
+class LogFormat
+{
+ /**
+ * The LOG_FORMAT is not set.
+ *
+ * Generated from protobuf enum LOG_FORMAT_UNSPECIFIED = 0;
+ */
+ const LOG_FORMAT_UNSPECIFIED = 0;
+ /**
+ * Logging output uses the legacy `textPayload` format.
+ *
+ * Generated from protobuf enum LEGACY = 1;
+ */
+ const LEGACY = 1;
+ /**
+ * Logging output uses the `jsonPayload` format.
+ *
+ * Generated from protobuf enum JSON = 2;
+ */
+ const JSON = 2;
+
+ private static $valueToName = [
+ self::LOG_FORMAT_UNSPECIFIED => 'LOG_FORMAT_UNSPECIFIED',
+ self::LEGACY => 'LEGACY',
+ self::JSON => 'JSON',
+ ];
+
+ 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(LogFormat::class, \Google\Cloud\Metastore\V1beta\TelemetryConfig_LogFormat::class);
+
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/TelemetryConfig_LogFormat.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/TelemetryConfig_LogFormat.php
new file mode 100644
index 000000000000..006ce0549bcc
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/TelemetryConfig_LogFormat.php
@@ -0,0 +1,16 @@
+google.cloud.metastore.v1beta.UpdateFederationRequest
+ */
+class UpdateFederationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metastore federation resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. The metastore federation to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ * The metastore federation's `name` field is used to identify the
+ * metastore service to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Federation federation = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $federation = null;
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metastore federation resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ * @type \Google\Cloud\Metastore\V1beta\Federation $federation
+ * Required. The metastore federation to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ * The metastore federation's `name` field is used to identify the
+ * metastore service to be updated.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\MetastoreFederation::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metastore federation resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * 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. A field mask used to specify the fields to be overwritten in the
+ * metastore federation resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * 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 metastore federation to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ * The metastore federation's `name` field is used to identify the
+ * metastore service to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Federation federation = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Metastore\V1beta\Federation|null
+ */
+ public function getFederation()
+ {
+ return $this->federation;
+ }
+
+ public function hasFederation()
+ {
+ return isset($this->federation);
+ }
+
+ public function clearFederation()
+ {
+ unset($this->federation);
+ }
+
+ /**
+ * Required. The metastore federation to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ * The metastore federation's `name` field is used to identify the
+ * metastore service to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Federation federation = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Metastore\V1beta\Federation $var
+ * @return $this
+ */
+ public function setFederation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1beta\Federation::class);
+ $this->federation = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/UpdateMetadataImportRequest.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/UpdateMetadataImportRequest.php
new file mode 100644
index 000000000000..35e60aa3db85
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/UpdateMetadataImportRequest.php
@@ -0,0 +1,216 @@
+google.cloud.metastore.v1beta.UpdateMetadataImportRequest
+ */
+class UpdateMetadataImportRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metadata import resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. The metadata import to update. The server only merges fields
+ * in the import if they are specified in `update_mask`.
+ * The metadata import's `name` field is used to identify the metastore
+ * import to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.MetadataImport metadata_import = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $metadata_import = null;
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metadata import resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ * @type \Google\Cloud\Metastore\V1beta\MetadataImport $metadata_import
+ * Required. The metadata import to update. The server only merges fields
+ * in the import if they are specified in `update_mask`.
+ * The metadata import's `name` field is used to identify the metastore
+ * import to be updated.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metadata import resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * 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. A field mask used to specify the fields to be overwritten in the
+ * metadata import resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * 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 metadata import to update. The server only merges fields
+ * in the import if they are specified in `update_mask`.
+ * The metadata import's `name` field is used to identify the metastore
+ * import to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.MetadataImport metadata_import = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Metastore\V1beta\MetadataImport|null
+ */
+ public function getMetadataImport()
+ {
+ return $this->metadata_import;
+ }
+
+ public function hasMetadataImport()
+ {
+ return isset($this->metadata_import);
+ }
+
+ public function clearMetadataImport()
+ {
+ unset($this->metadata_import);
+ }
+
+ /**
+ * Required. The metadata import to update. The server only merges fields
+ * in the import if they are specified in `update_mask`.
+ * The metadata import's `name` field is used to identify the metastore
+ * import to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.MetadataImport metadata_import = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Metastore\V1beta\MetadataImport $var
+ * @return $this
+ */
+ public function setMetadataImport($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1beta\MetadataImport::class);
+ $this->metadata_import = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/UpdateServiceRequest.php b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/UpdateServiceRequest.php
new file mode 100644
index 000000000000..9be41ddacfb9
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/proto/src/Google/Cloud/Metastore/V1beta/UpdateServiceRequest.php
@@ -0,0 +1,216 @@
+google.cloud.metastore.v1beta.UpdateServiceRequest
+ */
+class UpdateServiceRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metastore service resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. The metastore service to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ * The metastore service's `name` field is used to identify the metastore
+ * service to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Service service = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $service = null;
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metastore service resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ * @type \Google\Cloud\Metastore\V1beta\Service $service
+ * Required. The metastore service to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ * The metastore service's `name` field is used to identify the metastore
+ * service to be updated.
+ * @type string $request_id
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Metastore\V1Beta\Metastore::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. A field mask used to specify the fields to be overwritten in the
+ * metastore service resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * 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. A field mask used to specify the fields to be overwritten in the
+ * metastore service resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ *
+ * 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 metastore service to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ * The metastore service's `name` field is used to identify the metastore
+ * service to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Service service = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Metastore\V1beta\Service|null
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ public function hasService()
+ {
+ return isset($this->service);
+ }
+
+ public function clearService()
+ {
+ unset($this->service);
+ }
+
+ /**
+ * Required. The metastore service to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ * The metastore service's `name` field is used to identify the metastore
+ * service to be updated.
+ *
+ * Generated from protobuf field .google.cloud.metastore.v1beta.Service service = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Metastore\V1beta\Service $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Metastore\V1beta\Service::class);
+ $this->service = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * Generated from protobuf field string request_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getRequestId()
+ {
+ return $this->request_id;
+ }
+
+ /**
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ *
+ * 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/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/alter_metadata_resource_location.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/alter_metadata_resource_location.php
new file mode 100644
index 000000000000..b5d37b845685
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/alter_metadata_resource_location.php
@@ -0,0 +1,101 @@
+alterMetadataResourceLocation(
+ $formattedService,
+ $resourceName,
+ $locationUri
+ );
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var AlterMetadataResourceLocationResponse $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
+{
+ $formattedService = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $resourceName = '[RESOURCE_NAME]';
+ $locationUri = '[LOCATION_URI]';
+
+ alter_metadata_resource_location_sample($formattedService, $resourceName, $locationUri);
+}
+// [END metastore_v1beta_generated_DataprocMetastore_AlterMetadataResourceLocation_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/create_backup.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/create_backup.php
new file mode 100644
index 000000000000..a603526cb3c6
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/create_backup.php
@@ -0,0 +1,91 @@
+createBackup($formattedParent, $backupId, $backup);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Backup $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 = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $backupId = '[BACKUP_ID]';
+
+ create_backup_sample($formattedParent, $backupId);
+}
+// [END metastore_v1beta_generated_DataprocMetastore_CreateBackup_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/create_metadata_import.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/create_metadata_import.php
new file mode 100644
index 000000000000..ae0f345e42db
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/create_metadata_import.php
@@ -0,0 +1,95 @@
+createMetadataImport(
+ $formattedParent,
+ $metadataImportId,
+ $metadataImport
+ );
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var MetadataImport $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 = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $metadataImportId = '[METADATA_IMPORT_ID]';
+
+ create_metadata_import_sample($formattedParent, $metadataImportId);
+}
+// [END metastore_v1beta_generated_DataprocMetastore_CreateMetadataImport_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/create_service.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/create_service.php
new file mode 100644
index 000000000000..7d019284e7ef
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/create_service.php
@@ -0,0 +1,91 @@
+createService($formattedParent, $serviceId, $service);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Service $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 = DataprocMetastoreClient::locationName('[PROJECT]', '[LOCATION]');
+ $serviceId = '[SERVICE_ID]';
+
+ create_service_sample($formattedParent, $serviceId);
+}
+// [END metastore_v1beta_generated_DataprocMetastore_CreateService_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/delete_backup.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/delete_backup.php
new file mode 100644
index 000000000000..a92842b6ec7f
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/delete_backup.php
@@ -0,0 +1,83 @@
+deleteBackup($formattedName);
+ $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 = DataprocMetastoreClient::backupName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[SERVICE]',
+ '[BACKUP]'
+ );
+
+ delete_backup_sample($formattedName);
+}
+// [END metastore_v1beta_generated_DataprocMetastore_DeleteBackup_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/delete_service.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/delete_service.php
new file mode 100644
index 000000000000..397bd3744e6c
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/delete_service.php
@@ -0,0 +1,78 @@
+deleteService($formattedName);
+ $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 = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+
+ delete_service_sample($formattedName);
+}
+// [END metastore_v1beta_generated_DataprocMetastore_DeleteService_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/export_metadata.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/export_metadata.php
new file mode 100644
index 000000000000..29c1a7fd9fd3
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/export_metadata.php
@@ -0,0 +1,81 @@
+exportMetadata($formattedService);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var MetadataExport $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
+{
+ $formattedService = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+
+ export_metadata_sample($formattedService);
+}
+// [END metastore_v1beta_generated_DataprocMetastore_ExportMetadata_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/get_backup.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/get_backup.php
new file mode 100644
index 000000000000..6b86bbd01528
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/get_backup.php
@@ -0,0 +1,74 @@
+getBackup($formattedName);
+ 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 = DataprocMetastoreClient::backupName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[SERVICE]',
+ '[BACKUP]'
+ );
+
+ get_backup_sample($formattedName);
+}
+// [END metastore_v1beta_generated_DataprocMetastore_GetBackup_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/get_iam_policy.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/get_iam_policy.php
new file mode 100644
index 000000000000..96ac7aab167b
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/get_iam_policy.php
@@ -0,0 +1,67 @@
+getIamPolicy($resource);
+ 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
+{
+ $resource = '[RESOURCE]';
+
+ get_iam_policy_sample($resource);
+}
+// [END metastore_v1beta_generated_DataprocMetastore_GetIamPolicy_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/get_location.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/get_location.php
new file mode 100644
index 000000000000..ea7b5b2d9cf1
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/get_location.php
@@ -0,0 +1,53 @@
+getLocation();
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END metastore_v1beta_generated_DataprocMetastore_GetLocation_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/get_metadata_import.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/get_metadata_import.php
new file mode 100644
index 000000000000..13624d63072b
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/get_metadata_import.php
@@ -0,0 +1,74 @@
+getMetadataImport($formattedName);
+ 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 = DataprocMetastoreClient::metadataImportName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[SERVICE]',
+ '[METADATA_IMPORT]'
+ );
+
+ get_metadata_import_sample($formattedName);
+}
+// [END metastore_v1beta_generated_DataprocMetastore_GetMetadataImport_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/get_service.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/get_service.php
new file mode 100644
index 000000000000..d233092a4e6e
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/get_service.php
@@ -0,0 +1,69 @@
+getService($formattedName);
+ 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 = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+
+ get_service_sample($formattedName);
+}
+// [END metastore_v1beta_generated_DataprocMetastore_GetService_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/list_backups.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/list_backups.php
new file mode 100644
index 000000000000..d6aaacb05085
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/list_backups.php
@@ -0,0 +1,74 @@
+listBackups($formattedParent);
+
+ /** @var Backup $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 = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+
+ list_backups_sample($formattedParent);
+}
+// [END metastore_v1beta_generated_DataprocMetastore_ListBackups_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/list_locations.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/list_locations.php
new file mode 100644
index 000000000000..dd923fcfc359
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/list_locations.php
@@ -0,0 +1,58 @@
+listLocations();
+
+ /** @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 metastore_v1beta_generated_DataprocMetastore_ListLocations_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/list_metadata_imports.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/list_metadata_imports.php
new file mode 100644
index 000000000000..f80ae9e84e58
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/list_metadata_imports.php
@@ -0,0 +1,74 @@
+listMetadataImports($formattedParent);
+
+ /** @var MetadataImport $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 = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+
+ list_metadata_imports_sample($formattedParent);
+}
+// [END metastore_v1beta_generated_DataprocMetastore_ListMetadataImports_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/list_services.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/list_services.php
new file mode 100644
index 000000000000..0c72d222ef52
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/list_services.php
@@ -0,0 +1,74 @@
+listServices($formattedParent);
+
+ /** @var Service $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 = DataprocMetastoreClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_services_sample($formattedParent);
+}
+// [END metastore_v1beta_generated_DataprocMetastore_ListServices_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/move_table_to_database.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/move_table_to_database.php
new file mode 100644
index 000000000000..6bfc3fd33233
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/move_table_to_database.php
@@ -0,0 +1,96 @@
+moveTableToDatabase(
+ $formattedService,
+ $tableName,
+ $dbName,
+ $destinationDbName
+ );
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var MoveTableToDatabaseResponse $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
+{
+ $formattedService = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $tableName = '[TABLE_NAME]';
+ $dbName = '[DB_NAME]';
+ $destinationDbName = '[DESTINATION_DB_NAME]';
+
+ move_table_to_database_sample($formattedService, $tableName, $dbName, $destinationDbName);
+}
+// [END metastore_v1beta_generated_DataprocMetastore_MoveTableToDatabase_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/query_metadata.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/query_metadata.php
new file mode 100644
index 000000000000..9fb4b916e4e2
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/query_metadata.php
@@ -0,0 +1,84 @@
+queryMetadata($formattedService, $query);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var QueryMetadataResponse $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
+{
+ $formattedService = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $query = '[QUERY]';
+
+ query_metadata_sample($formattedService, $query);
+}
+// [END metastore_v1beta_generated_DataprocMetastore_QueryMetadata_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/remove_iam_policy.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/remove_iam_policy.php
new file mode 100644
index 000000000000..c8e4271237da
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/remove_iam_policy.php
@@ -0,0 +1,70 @@
+removeIamPolicy($resource);
+ 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
+{
+ $resource = '[RESOURCE]';
+
+ remove_iam_policy_sample($resource);
+}
+// [END metastore_v1beta_generated_DataprocMetastore_RemoveIamPolicy_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/restore_service.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/restore_service.php
new file mode 100644
index 000000000000..e886ef6ca1a2
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/restore_service.php
@@ -0,0 +1,92 @@
+restoreService($formattedService, $formattedBackup);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Restore $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
+{
+ $formattedService = DataprocMetastoreClient::serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $formattedBackup = DataprocMetastoreClient::backupName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[SERVICE]',
+ '[BACKUP]'
+ );
+
+ restore_service_sample($formattedService, $formattedBackup);
+}
+// [END metastore_v1beta_generated_DataprocMetastore_RestoreService_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/set_iam_policy.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/set_iam_policy.php
new file mode 100644
index 000000000000..cd590a2f3518
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/set_iam_policy.php
@@ -0,0 +1,73 @@
+setIamPolicy($resource, $policy);
+ 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
+{
+ $resource = '[RESOURCE]';
+
+ set_iam_policy_sample($resource);
+}
+// [END metastore_v1beta_generated_DataprocMetastore_SetIamPolicy_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/test_iam_permissions.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/test_iam_permissions.php
new file mode 100644
index 000000000000..83fe208c22d3
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/test_iam_permissions.php
@@ -0,0 +1,80 @@
+testIamPermissions($resource, $permissions);
+ 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
+{
+ $resource = '[RESOURCE]';
+ $permissionsElement = '[PERMISSIONS]';
+
+ test_iam_permissions_sample($resource, $permissionsElement);
+}
+// [END metastore_v1beta_generated_DataprocMetastore_TestIamPermissions_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/update_metadata_import.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/update_metadata_import.php
new file mode 100644
index 000000000000..2f99663b4568
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/update_metadata_import.php
@@ -0,0 +1,71 @@
+updateMetadataImport($updateMask, $metadataImport);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var MetadataImport $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 metastore_v1beta_generated_DataprocMetastore_UpdateMetadataImport_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/update_service.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/update_service.php
new file mode 100644
index 000000000000..ee17c466e535
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreClient/update_service.php
@@ -0,0 +1,70 @@
+updateService($updateMask, $service);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Service $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 metastore_v1beta_generated_DataprocMetastore_UpdateService_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/create_federation.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/create_federation.php
new file mode 100644
index 000000000000..b5c8953a0cd7
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/create_federation.php
@@ -0,0 +1,95 @@
+createFederation(
+ $formattedParent,
+ $federationId,
+ $federation
+ );
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Federation $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 = DataprocMetastoreFederationClient::locationName('[PROJECT]', '[LOCATION]');
+ $federationId = '[FEDERATION_ID]';
+
+ create_federation_sample($formattedParent, $federationId);
+}
+// [END metastore_v1beta_generated_DataprocMetastoreFederation_CreateFederation_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/delete_federation.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/delete_federation.php
new file mode 100644
index 000000000000..9b337b917717
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/delete_federation.php
@@ -0,0 +1,82 @@
+deleteFederation($formattedName);
+ $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 = DataprocMetastoreFederationClient::federationName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[FEDERATION]'
+ );
+
+ delete_federation_sample($formattedName);
+}
+// [END metastore_v1beta_generated_DataprocMetastoreFederation_DeleteFederation_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/get_federation.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/get_federation.php
new file mode 100644
index 000000000000..51fe7862e41c
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/get_federation.php
@@ -0,0 +1,73 @@
+getFederation($formattedName);
+ 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 = DataprocMetastoreFederationClient::federationName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[FEDERATION]'
+ );
+
+ get_federation_sample($formattedName);
+}
+// [END metastore_v1beta_generated_DataprocMetastoreFederation_GetFederation_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/get_iam_policy.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/get_iam_policy.php
new file mode 100644
index 000000000000..30777f6fbd2f
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/get_iam_policy.php
@@ -0,0 +1,67 @@
+getIamPolicy($resource);
+ 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
+{
+ $resource = '[RESOURCE]';
+
+ get_iam_policy_sample($resource);
+}
+// [END metastore_v1beta_generated_DataprocMetastoreFederation_GetIamPolicy_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/get_location.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/get_location.php
new file mode 100644
index 000000000000..a157404a1576
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/get_location.php
@@ -0,0 +1,53 @@
+getLocation();
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END metastore_v1beta_generated_DataprocMetastoreFederation_GetLocation_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/list_federations.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/list_federations.php
new file mode 100644
index 000000000000..e79a851f2c43
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/list_federations.php
@@ -0,0 +1,73 @@
+listFederations($formattedParent);
+
+ /** @var Federation $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 = DataprocMetastoreFederationClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_federations_sample($formattedParent);
+}
+// [END metastore_v1beta_generated_DataprocMetastoreFederation_ListFederations_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/list_locations.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/list_locations.php
new file mode 100644
index 000000000000..2311820512b7
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/list_locations.php
@@ -0,0 +1,58 @@
+listLocations();
+
+ /** @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 metastore_v1beta_generated_DataprocMetastoreFederation_ListLocations_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/set_iam_policy.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/set_iam_policy.php
new file mode 100644
index 000000000000..8366028a71c5
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/set_iam_policy.php
@@ -0,0 +1,73 @@
+setIamPolicy($resource, $policy);
+ 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
+{
+ $resource = '[RESOURCE]';
+
+ set_iam_policy_sample($resource);
+}
+// [END metastore_v1beta_generated_DataprocMetastoreFederation_SetIamPolicy_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/test_iam_permissions.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/test_iam_permissions.php
new file mode 100644
index 000000000000..e6521f6b3015
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/test_iam_permissions.php
@@ -0,0 +1,80 @@
+testIamPermissions($resource, $permissions);
+ 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
+{
+ $resource = '[RESOURCE]';
+ $permissionsElement = '[PERMISSIONS]';
+
+ test_iam_permissions_sample($resource, $permissionsElement);
+}
+// [END metastore_v1beta_generated_DataprocMetastoreFederation_TestIamPermissions_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/update_federation.php b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/update_federation.php
new file mode 100644
index 000000000000..4135f83f171b
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/samples/V1beta/DataprocMetastoreFederationClient/update_federation.php
@@ -0,0 +1,70 @@
+updateFederation($updateMask, $federation);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Federation $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 metastore_v1beta_generated_DataprocMetastoreFederation_UpdateFederation_sync]
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/DataprocMetastoreClient.php b/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/DataprocMetastoreClient.php
new file mode 100644
index 000000000000..f5039e8600ed
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/DataprocMetastoreClient.php
@@ -0,0 +1,36 @@
+locationName('[PROJECT]', '[LOCATION]');
+ * $federationId = 'federation_id';
+ * $federation = new Federation();
+ * $operationResponse = $dataprocMetastoreFederationClient->createFederation($formattedParent, $federationId, $federation);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreFederationClient->createFederation($formattedParent, $federationId, $federation);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreFederationClient->resumeOperation($operationName, 'createFederation');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * Many parameters require resource names to be formatted in a particular way. To
+ * assist with these names, this class includes a format method for each type of
+ * name, and additionally a parseName method to extract the individual identifiers
+ * contained within formatted names that are returned by the API.
+ *
+ * @experimental
+ */
+class DataprocMetastoreFederationGapicClient
+{
+ use GapicClientTrait;
+
+ /** The name of the service. */
+ const SERVICE_NAME = 'google.cloud.metastore.v1beta.DataprocMetastoreFederation';
+
+ /** The default address of the service. */
+ const SERVICE_ADDRESS = 'metastore.googleapis.com';
+
+ /** 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 $federationNameTemplate;
+
+ private static $locationNameTemplate;
+
+ private static $pathTemplateMap;
+
+ private $operationsClient;
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/dataproc_metastore_federation_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/dataproc_metastore_federation_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/dataproc_metastore_federation_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/dataproc_metastore_federation_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ private static function getFederationNameTemplate()
+ {
+ if (self::$federationNameTemplate == null) {
+ self::$federationNameTemplate = new PathTemplate('projects/{project}/locations/{location}/federations/{federation}');
+ }
+
+ return self::$federationNameTemplate;
+ }
+
+ private static function getLocationNameTemplate()
+ {
+ if (self::$locationNameTemplate == null) {
+ self::$locationNameTemplate = new PathTemplate('projects/{project}/locations/{location}');
+ }
+
+ return self::$locationNameTemplate;
+ }
+
+ private static function getPathTemplateMap()
+ {
+ if (self::$pathTemplateMap == null) {
+ self::$pathTemplateMap = [
+ 'federation' => self::getFederationNameTemplate(),
+ 'location' => self::getLocationNameTemplate(),
+ ];
+ }
+
+ return self::$pathTemplateMap;
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a federation
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $federation
+ *
+ * @return string The formatted federation resource.
+ *
+ * @experimental
+ */
+ public static function federationName($project, $location, $federation)
+ {
+ return self::getFederationNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'federation' => $federation,
+ ]);
+ }
+
+ /**
+ * 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.
+ *
+ * @experimental
+ */
+ public static function locationName($project, $location)
+ {
+ return self::getLocationNameTemplate()->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
+ * - federation: projects/{project}/locations/{location}/federations/{federation}
+ * - 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.
+ *
+ * @experimental
+ */
+ public static function parseName($formattedName, $template = null)
+ {
+ $templateMap = self::getPathTemplateMap();
+ if ($template) {
+ if (!isset($templateMap[$template])) {
+ throw new ValidationException("Template name $template does not exist");
+ }
+
+ return $templateMap[$template]->match($formattedName);
+ }
+
+ foreach ($templateMap as $templateName => $pathTemplate) {
+ try {
+ return $pathTemplate->match($formattedName);
+ } catch (ValidationException $ex) {
+ // Swallow the exception to continue trying other path templates
+ }
+ }
+
+ throw new ValidationException("Input did not match any known format. Input: $formattedName");
+ }
+
+ /**
+ * Return an OperationsClient object with the same endpoint as $this.
+ *
+ * @return OperationsClient
+ *
+ * @experimental
+ */
+ 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
+ *
+ * @experimental
+ */
+ 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;
+ }
+
+ /**
+ * 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 'metastore.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);
+ $this->operationsClient = $this->createOperationsClient($clientOptions);
+ }
+
+ /**
+ * Creates a metastore federation in a project and location.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $formattedParent = $dataprocMetastoreFederationClient->locationName('[PROJECT]', '[LOCATION]');
+ * $federationId = 'federation_id';
+ * $federation = new Federation();
+ * $operationResponse = $dataprocMetastoreFederationClient->createFederation($formattedParent, $federationId, $federation);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreFederationClient->createFederation($formattedParent, $federationId, $federation);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreFederationClient->resumeOperation($operationName, 'createFederation');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The relative resource name of the location in which to create a
+ * federation service, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}`.
+ * @param string $federationId Required. The ID of the metastore federation, which is used as the final
+ * component of the metastore federation's name.
+ *
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ * @param Federation $federation Required. The Metastore Federation to create. The `name` field is
+ * ignored. The ID of the created metastore federation must be
+ * provided in the request's `federation_id` field.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function createFederation($parent, $federationId, $federation, array $optionalArgs = [])
+ {
+ $request = new CreateFederationRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setFederationId($federationId);
+ $request->setFederation($federation);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('CreateFederation', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Deletes a single federation.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $formattedName = $dataprocMetastoreFederationClient->federationName('[PROJECT]', '[LOCATION]', '[FEDERATION]');
+ * $operationResponse = $dataprocMetastoreFederationClient->deleteFederation($formattedName);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * // operation succeeded and returns no value
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreFederationClient->deleteFederation($formattedName);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreFederationClient->resumeOperation($operationName, 'deleteFederation');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * // operation succeeded and returns no value
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The relative resource name of the metastore federation to delete,
+ * in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function deleteFederation($name, array $optionalArgs = [])
+ {
+ $request = new DeleteFederationRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('DeleteFederation', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Gets the details of a single federation.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $formattedName = $dataprocMetastoreFederationClient->federationName('[PROJECT]', '[LOCATION]', '[FEDERATION]');
+ * $response = $dataprocMetastoreFederationClient->getFederation($formattedName);
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The relative resource name of the metastore federation to
+ * retrieve, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/federations/{federation_id}`.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Metastore\V1beta\Federation
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function getFederation($name, array $optionalArgs = [])
+ {
+ $request = new GetFederationRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetFederation', Federation::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Lists federations in a project and location.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $formattedParent = $dataprocMetastoreFederationClient->locationName('[PROJECT]', '[LOCATION]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataprocMetastoreFederationClient->listFederations($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataprocMetastoreFederationClient->listFederations($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The relative resource name of the location of metastore
+ * federations to list, in the following form:
+ * `projects/{project_number}/locations/{location_id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @type string $filter
+ * Optional. The filter to apply to list results.
+ * @type string $orderBy
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function listFederations($parent, array $optionalArgs = [])
+ {
+ $request = new ListFederationsRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['orderBy'])) {
+ $request->setOrderBy($optionalArgs['orderBy']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListFederations', $optionalArgs, ListFederationsResponse::class, $request);
+ }
+
+ /**
+ * Updates the fields of a federation.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $updateMask = new FieldMask();
+ * $federation = new Federation();
+ * $operationResponse = $dataprocMetastoreFederationClient->updateFederation($updateMask, $federation);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreFederationClient->updateFederation($updateMask, $federation);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreFederationClient->resumeOperation($operationName, 'updateFederation');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param FieldMask $updateMask Required. A field mask used to specify the fields to be overwritten in the
+ * metastore federation resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ * @param Federation $federation Required. The metastore federation to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ *
+ * The metastore federation's `name` field is used to identify the
+ * metastore service to be updated.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function updateFederation($updateMask, $federation, array $optionalArgs = [])
+ {
+ $request = new UpdateFederationRequest();
+ $requestParamHeaders = [];
+ $request->setUpdateMask($updateMask);
+ $request->setFederation($federation);
+ $requestParamHeaders['federation.name'] = $federation->getName();
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('UpdateFederation', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Gets information about a location.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $response = $dataprocMetastoreFederationClient->getLocation();
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $name
+ * Resource name for the location.
+ * @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 \Google\Cloud\Location\Location
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function getLocation(array $optionalArgs = [])
+ {
+ $request = new GetLocationRequest();
+ $requestParamHeaders = [];
+ if (isset($optionalArgs['name'])) {
+ $request->setName($optionalArgs['name']);
+ $requestParamHeaders['name'] = $optionalArgs['name'];
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetLocation', Location::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.cloud.location.Locations')->wait();
+ }
+
+ /**
+ * Lists information about the supported locations for this service.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataprocMetastoreFederationClient->listLocations();
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataprocMetastoreFederationClient->listLocations();
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $name
+ * The resource that owns the locations collection, if applicable.
+ * @type string $filter
+ * The standard list filter.
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function listLocations(array $optionalArgs = [])
+ {
+ $request = new ListLocationsRequest();
+ $requestParamHeaders = [];
+ if (isset($optionalArgs['name'])) {
+ $request->setName($optionalArgs['name']);
+ $requestParamHeaders['name'] = $optionalArgs['name'];
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListLocations', $optionalArgs, ListLocationsResponse::class, $request, 'google.cloud.location.Locations');
+ }
+
+ /**
+ * Gets the access control policy for a resource. Returns an empty policy
+ if the resource exists and does not have a policy set.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $resource = 'resource';
+ * $response = $dataprocMetastoreFederationClient->getIamPolicy($resource);
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param string $resource REQUIRED: The resource for which the policy is being requested.
+ * See the operation documentation for the appropriate value for this field.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type GetPolicyOptions $options
+ * OPTIONAL: A `GetPolicyOptions` object for specifying options to
+ * `GetIamPolicy`.
+ * @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 \Google\Cloud\Iam\V1\Policy
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function getIamPolicy($resource, array $optionalArgs = [])
+ {
+ $request = new GetIamPolicyRequest();
+ $requestParamHeaders = [];
+ $request->setResource($resource);
+ $requestParamHeaders['resource'] = $resource;
+ if (isset($optionalArgs['options'])) {
+ $request->setOptions($optionalArgs['options']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetIamPolicy', Policy::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.iam.v1.IAMPolicy')->wait();
+ }
+
+ /**
+ * Sets the access control policy on the specified resource. Replaces
+ any existing policy.
+
+ Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
+ errors.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $resource = 'resource';
+ * $policy = new Policy();
+ * $response = $dataprocMetastoreFederationClient->setIamPolicy($resource, $policy);
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param string $resource REQUIRED: The resource for which the policy is being specified.
+ * See the operation documentation for the appropriate value for this field.
+ * @param Policy $policy REQUIRED: The complete policy to be applied to the `resource`. The size of
+ * the policy is limited to a few 10s of KB. An empty policy is a
+ * valid policy but certain Cloud Platform services (such as Projects)
+ * might reject them.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type FieldMask $updateMask
+ * OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
+ * the fields in the mask will be modified. If no mask is provided, the
+ * following default mask is used:
+ *
+ * `paths: "bindings, etag"`
+ * @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 \Google\Cloud\Iam\V1\Policy
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function setIamPolicy($resource, $policy, array $optionalArgs = [])
+ {
+ $request = new SetIamPolicyRequest();
+ $requestParamHeaders = [];
+ $request->setResource($resource);
+ $request->setPolicy($policy);
+ $requestParamHeaders['resource'] = $resource;
+ if (isset($optionalArgs['updateMask'])) {
+ $request->setUpdateMask($optionalArgs['updateMask']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('SetIamPolicy', Policy::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.iam.v1.IAMPolicy')->wait();
+ }
+
+ /**
+ * Returns permissions that a caller has on the specified resource. If the
+ resource does not exist, this will return an empty set of
+ permissions, not a `NOT_FOUND` error.
+
+ Note: This operation is designed to be used for building
+ permission-aware UIs and command-line tools, not for authorization
+ checking. This operation may "fail open" without warning.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreFederationClient = new DataprocMetastoreFederationClient();
+ * try {
+ * $resource = 'resource';
+ * $permissions = [];
+ * $response = $dataprocMetastoreFederationClient->testIamPermissions($resource, $permissions);
+ * } finally {
+ * $dataprocMetastoreFederationClient->close();
+ * }
+ * ```
+ *
+ * @param string $resource REQUIRED: The resource for which the policy detail is being requested.
+ * See the operation documentation for the appropriate value for this field.
+ * @param string[] $permissions The set of permissions to check for the `resource`. Permissions with
+ * wildcards (such as '*' or 'storage.*') are not allowed. For more
+ * information see
+ * [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Iam\V1\TestIamPermissionsResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function testIamPermissions($resource, $permissions, array $optionalArgs = [])
+ {
+ $request = new TestIamPermissionsRequest();
+ $requestParamHeaders = [];
+ $request->setResource($resource);
+ $request->setPermissions($permissions);
+ $requestParamHeaders['resource'] = $resource;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('TestIamPermissions', TestIamPermissionsResponse::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.iam.v1.IAMPolicy')->wait();
+ }
+}
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/Gapic/DataprocMetastoreGapicClient.php b/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/Gapic/DataprocMetastoreGapicClient.php
new file mode 100644
index 000000000000..9758ccf67a8b
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/Gapic/DataprocMetastoreGapicClient.php
@@ -0,0 +1,2399 @@
+serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $resourceName = 'resource_name';
+ * $locationUri = 'location_uri';
+ * $operationResponse = $dataprocMetastoreClient->alterMetadataResourceLocation($formattedService, $resourceName, $locationUri);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->alterMetadataResourceLocation($formattedService, $resourceName, $locationUri);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'alterMetadataResourceLocation');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * Many parameters require resource names to be formatted in a particular way. To
+ * assist with these names, this class includes a format method for each type of
+ * name, and additionally a parseName method to extract the individual identifiers
+ * contained within formatted names that are returned by the API.
+ *
+ * @experimental
+ */
+class DataprocMetastoreGapicClient
+{
+ use GapicClientTrait;
+
+ /** The name of the service. */
+ const SERVICE_NAME = 'google.cloud.metastore.v1beta.DataprocMetastore';
+
+ /** The default address of the service. */
+ const SERVICE_ADDRESS = 'metastore.googleapis.com';
+
+ /** 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 $backupNameTemplate;
+
+ private static $lakeNameTemplate;
+
+ private static $locationNameTemplate;
+
+ private static $metadataImportNameTemplate;
+
+ private static $networkNameTemplate;
+
+ private static $serviceNameTemplate;
+
+ private static $subnetworkNameTemplate;
+
+ private static $pathTemplateMap;
+
+ private $operationsClient;
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/dataproc_metastore_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/dataproc_metastore_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/dataproc_metastore_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/dataproc_metastore_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ private static function getBackupNameTemplate()
+ {
+ if (self::$backupNameTemplate == null) {
+ self::$backupNameTemplate = new PathTemplate('projects/{project}/locations/{location}/services/{service}/backups/{backup}');
+ }
+
+ return self::$backupNameTemplate;
+ }
+
+ private static function getLakeNameTemplate()
+ {
+ if (self::$lakeNameTemplate == null) {
+ self::$lakeNameTemplate = new PathTemplate('projects/{project}/locations/{location}/lakes/{lake}');
+ }
+
+ return self::$lakeNameTemplate;
+ }
+
+ private static function getLocationNameTemplate()
+ {
+ if (self::$locationNameTemplate == null) {
+ self::$locationNameTemplate = new PathTemplate('projects/{project}/locations/{location}');
+ }
+
+ return self::$locationNameTemplate;
+ }
+
+ private static function getMetadataImportNameTemplate()
+ {
+ if (self::$metadataImportNameTemplate == null) {
+ self::$metadataImportNameTemplate = new PathTemplate('projects/{project}/locations/{location}/services/{service}/metadataImports/{metadata_import}');
+ }
+
+ return self::$metadataImportNameTemplate;
+ }
+
+ private static function getNetworkNameTemplate()
+ {
+ if (self::$networkNameTemplate == null) {
+ self::$networkNameTemplate = new PathTemplate('projects/{project}/global/networks/{network}');
+ }
+
+ return self::$networkNameTemplate;
+ }
+
+ private static function getServiceNameTemplate()
+ {
+ if (self::$serviceNameTemplate == null) {
+ self::$serviceNameTemplate = new PathTemplate('projects/{project}/locations/{location}/services/{service}');
+ }
+
+ return self::$serviceNameTemplate;
+ }
+
+ private static function getSubnetworkNameTemplate()
+ {
+ if (self::$subnetworkNameTemplate == null) {
+ self::$subnetworkNameTemplate = new PathTemplate('projects/{project}/regions/{region}/subnetworks/{subnetwork}');
+ }
+
+ return self::$subnetworkNameTemplate;
+ }
+
+ private static function getPathTemplateMap()
+ {
+ if (self::$pathTemplateMap == null) {
+ self::$pathTemplateMap = [
+ 'backup' => self::getBackupNameTemplate(),
+ 'lake' => self::getLakeNameTemplate(),
+ 'location' => self::getLocationNameTemplate(),
+ 'metadataImport' => self::getMetadataImportNameTemplate(),
+ 'network' => self::getNetworkNameTemplate(),
+ 'service' => self::getServiceNameTemplate(),
+ 'subnetwork' => self::getSubnetworkNameTemplate(),
+ ];
+ }
+
+ return self::$pathTemplateMap;
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a backup
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $service
+ * @param string $backup
+ *
+ * @return string The formatted backup resource.
+ *
+ * @experimental
+ */
+ public static function backupName($project, $location, $service, $backup)
+ {
+ return self::getBackupNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'service' => $service,
+ 'backup' => $backup,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a lake
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $lake
+ *
+ * @return string The formatted lake resource.
+ *
+ * @experimental
+ */
+ public static function lakeName($project, $location, $lake)
+ {
+ return self::getLakeNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'lake' => $lake,
+ ]);
+ }
+
+ /**
+ * 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.
+ *
+ * @experimental
+ */
+ public static function locationName($project, $location)
+ {
+ return self::getLocationNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * metadata_import resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $service
+ * @param string $metadataImport
+ *
+ * @return string The formatted metadata_import resource.
+ *
+ * @experimental
+ */
+ public static function metadataImportName($project, $location, $service, $metadataImport)
+ {
+ return self::getMetadataImportNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'service' => $service,
+ 'metadata_import' => $metadataImport,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a network
+ * resource.
+ *
+ * @param string $project
+ * @param string $network
+ *
+ * @return string The formatted network resource.
+ *
+ * @experimental
+ */
+ public static function networkName($project, $network)
+ {
+ return self::getNetworkNameTemplate()->render([
+ 'project' => $project,
+ 'network' => $network,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a service
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $service
+ *
+ * @return string The formatted service resource.
+ *
+ * @experimental
+ */
+ public static function serviceName($project, $location, $service)
+ {
+ return self::getServiceNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'service' => $service,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a subnetwork
+ * resource.
+ *
+ * @param string $project
+ * @param string $region
+ * @param string $subnetwork
+ *
+ * @return string The formatted subnetwork resource.
+ *
+ * @experimental
+ */
+ public static function subnetworkName($project, $region, $subnetwork)
+ {
+ return self::getSubnetworkNameTemplate()->render([
+ 'project' => $project,
+ 'region' => $region,
+ 'subnetwork' => $subnetwork,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - backup: projects/{project}/locations/{location}/services/{service}/backups/{backup}
+ * - lake: projects/{project}/locations/{location}/lakes/{lake}
+ * - location: projects/{project}/locations/{location}
+ * - metadataImport: projects/{project}/locations/{location}/services/{service}/metadataImports/{metadata_import}
+ * - network: projects/{project}/global/networks/{network}
+ * - service: projects/{project}/locations/{location}/services/{service}
+ * - subnetwork: projects/{project}/regions/{region}/subnetworks/{subnetwork}
+ *
+ * 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.
+ *
+ * @experimental
+ */
+ public static function parseName($formattedName, $template = null)
+ {
+ $templateMap = self::getPathTemplateMap();
+ if ($template) {
+ if (!isset($templateMap[$template])) {
+ throw new ValidationException("Template name $template does not exist");
+ }
+
+ return $templateMap[$template]->match($formattedName);
+ }
+
+ foreach ($templateMap as $templateName => $pathTemplate) {
+ try {
+ return $pathTemplate->match($formattedName);
+ } catch (ValidationException $ex) {
+ // Swallow the exception to continue trying other path templates
+ }
+ }
+
+ throw new ValidationException("Input did not match any known format. Input: $formattedName");
+ }
+
+ /**
+ * Return an OperationsClient object with the same endpoint as $this.
+ *
+ * @return OperationsClient
+ *
+ * @experimental
+ */
+ 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
+ *
+ * @experimental
+ */
+ 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;
+ }
+
+ /**
+ * 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 'metastore.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);
+ $this->operationsClient = $this->createOperationsClient($clientOptions);
+ }
+
+ /**
+ * Alter metadata resource location. The metadata resource can be a database,
+ * table, or partition. This functionality only updates the parent directory
+ * for the respective metadata resource and does not transfer any existing
+ * data to the new location.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedService = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $resourceName = 'resource_name';
+ * $locationUri = 'location_uri';
+ * $operationResponse = $dataprocMetastoreClient->alterMetadataResourceLocation($formattedService, $resourceName, $locationUri);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->alterMetadataResourceLocation($formattedService, $resourceName, $locationUri);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'alterMetadataResourceLocation');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $service Required. The relative resource name of the metastore service to mutate
+ * metadata, in the following format:
+ *
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ * @param string $resourceName Required. The relative metadata resource name in the following format.
+ *
+ * `databases/{database_id}`
+ * or
+ * `databases/{database_id}/tables/{table_id}`
+ * or
+ * `databases/{database_id}/tables/{table_id}/partitions/{partition_id}`
+ * @param string $locationUri Required. The new location URI for the metadata resource.
+ * @param array $optionalArgs {
+ * 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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function alterMetadataResourceLocation($service, $resourceName, $locationUri, array $optionalArgs = [])
+ {
+ $request = new AlterMetadataResourceLocationRequest();
+ $requestParamHeaders = [];
+ $request->setService($service);
+ $request->setResourceName($resourceName);
+ $request->setLocationUri($locationUri);
+ $requestParamHeaders['service'] = $service;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('AlterMetadataResourceLocation', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Creates a new backup in a given project and location.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedParent = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $backupId = 'backup_id';
+ * $backup = new Backup();
+ * $operationResponse = $dataprocMetastoreClient->createBackup($formattedParent, $backupId, $backup);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->createBackup($formattedParent, $backupId, $backup);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'createBackup');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The relative resource name of the service in which to create a
+ * backup of the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * @param string $backupId Required. The ID of the backup, which is used as the final component of the
+ * backup's name.
+ *
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ * @param Backup $backup Required. The backup to create. The `name` field is ignored. The ID of the
+ * created backup must be provided in the request's `backup_id` field.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function createBackup($parent, $backupId, $backup, array $optionalArgs = [])
+ {
+ $request = new CreateBackupRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setBackupId($backupId);
+ $request->setBackup($backup);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('CreateBackup', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Creates a new MetadataImport in a given project and location.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedParent = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $metadataImportId = 'metadata_import_id';
+ * $metadataImport = new MetadataImport();
+ * $operationResponse = $dataprocMetastoreClient->createMetadataImport($formattedParent, $metadataImportId, $metadataImport);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->createMetadataImport($formattedParent, $metadataImportId, $metadataImport);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'createMetadataImport');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The relative resource name of the service in which to create a
+ * metastore import, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * @param string $metadataImportId Required. The ID of the metadata import, which is used as the final
+ * component of the metadata import's name.
+ *
+ * This value must be between 1 and 64 characters long, begin with a letter,
+ * end with a letter or number, and consist of alpha-numeric ASCII characters
+ * or hyphens.
+ * @param MetadataImport $metadataImport Required. The metadata import to create. The `name` field is ignored. The
+ * ID of the created metadata import must be provided in the request's
+ * `metadata_import_id` field.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function createMetadataImport($parent, $metadataImportId, $metadataImport, array $optionalArgs = [])
+ {
+ $request = new CreateMetadataImportRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setMetadataImportId($metadataImportId);
+ $request->setMetadataImport($metadataImport);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('CreateMetadataImport', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Creates a metastore service in a project and location.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedParent = $dataprocMetastoreClient->locationName('[PROJECT]', '[LOCATION]');
+ * $serviceId = 'service_id';
+ * $service = new Service();
+ * $operationResponse = $dataprocMetastoreClient->createService($formattedParent, $serviceId, $service);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->createService($formattedParent, $serviceId, $service);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'createService');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The relative resource name of the location in which to create a
+ * metastore service, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}`.
+ * @param string $serviceId Required. The ID of the metastore service, which is used as the final
+ * component of the metastore service's name.
+ *
+ * This value must be between 2 and 63 characters long inclusive, begin with a
+ * letter, end with a letter or number, and consist of alpha-numeric
+ * ASCII characters or hyphens.
+ * @param Service $service Required. The Metastore service to create. The `name` field is
+ * ignored. The ID of the created metastore service must be provided in
+ * the request's `service_id` field.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function createService($parent, $serviceId, $service, array $optionalArgs = [])
+ {
+ $request = new CreateServiceRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setServiceId($serviceId);
+ $request->setService($service);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('CreateService', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Deletes a single backup.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedName = $dataprocMetastoreClient->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ * $operationResponse = $dataprocMetastoreClient->deleteBackup($formattedName);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * // operation succeeded and returns no value
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->deleteBackup($formattedName);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'deleteBackup');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * // operation succeeded and returns no value
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The relative resource name of the backup to delete, in the
+ * following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function deleteBackup($name, array $optionalArgs = [])
+ {
+ $request = new DeleteBackupRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('DeleteBackup', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Deletes a single service.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedName = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $operationResponse = $dataprocMetastoreClient->deleteService($formattedName);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * // operation succeeded and returns no value
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->deleteService($formattedName);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'deleteService');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * // operation succeeded and returns no value
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The relative resource name of the metastore service to delete, in
+ * the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function deleteService($name, array $optionalArgs = [])
+ {
+ $request = new DeleteServiceRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('DeleteService', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Exports metadata from a service.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedService = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $operationResponse = $dataprocMetastoreClient->exportMetadata($formattedService);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->exportMetadata($formattedService);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'exportMetadata');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $service Required. The relative resource name of the metastore service to run
+ * export, in the following form:
+ *
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $destinationGcsFolder
+ * A Cloud Storage URI of a folder, in the format
+ * `gs:///`. A sub-folder
+ * `` containing exported files will be created below it.
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @type int $databaseDumpType
+ * Optional. The type of the database dump. If unspecified, defaults to
+ * `MYSQL`.
+ * For allowed values, use constants defined on {@see \Google\Cloud\Metastore\V1beta\DatabaseDumpSpec\Type}
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function exportMetadata($service, array $optionalArgs = [])
+ {
+ $request = new ExportMetadataRequest();
+ $requestParamHeaders = [];
+ $request->setService($service);
+ $requestParamHeaders['service'] = $service;
+ if (isset($optionalArgs['destinationGcsFolder'])) {
+ $request->setDestinationGcsFolder($optionalArgs['destinationGcsFolder']);
+ }
+
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ if (isset($optionalArgs['databaseDumpType'])) {
+ $request->setDatabaseDumpType($optionalArgs['databaseDumpType']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('ExportMetadata', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Gets details of a single backup.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedName = $dataprocMetastoreClient->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ * $response = $dataprocMetastoreClient->getBackup($formattedName);
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The relative resource name of the backup to retrieve, in the
+ * following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Metastore\V1beta\Backup
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function getBackup($name, array $optionalArgs = [])
+ {
+ $request = new GetBackupRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetBackup', Backup::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Gets details of a single import.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedName = $dataprocMetastoreClient->metadataImportName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[METADATA_IMPORT]');
+ * $response = $dataprocMetastoreClient->getMetadataImport($formattedName);
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The relative resource name of the metadata import to retrieve, in
+ * the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{import_id}`.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Metastore\V1beta\MetadataImport
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function getMetadataImport($name, array $optionalArgs = [])
+ {
+ $request = new GetMetadataImportRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetMetadataImport', MetadataImport::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Gets the details of a single service.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedName = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $response = $dataprocMetastoreClient->getService($formattedName);
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The relative resource name of the metastore service to retrieve,
+ * in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}`.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Metastore\V1beta\Service
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function getService($name, array $optionalArgs = [])
+ {
+ $request = new GetServiceRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetService', Service::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Lists backups in a service.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedParent = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataprocMetastoreClient->listBackups($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataprocMetastoreClient->listBackups($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The relative resource name of the service whose backups to
+ * list, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/backups`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @type string $filter
+ * Optional. The filter to apply to list results.
+ * @type string $orderBy
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function listBackups($parent, array $optionalArgs = [])
+ {
+ $request = new ListBackupsRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['orderBy'])) {
+ $request->setOrderBy($optionalArgs['orderBy']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListBackups', $optionalArgs, ListBackupsResponse::class, $request);
+ }
+
+ /**
+ * Lists imports in a service.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedParent = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataprocMetastoreClient->listMetadataImports($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataprocMetastoreClient->listMetadataImports($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The relative resource name of the service whose metadata imports
+ * to list, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @type string $filter
+ * Optional. The filter to apply to list results.
+ * @type string $orderBy
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function listMetadataImports($parent, array $optionalArgs = [])
+ {
+ $request = new ListMetadataImportsRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['orderBy'])) {
+ $request->setOrderBy($optionalArgs['orderBy']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListMetadataImports', $optionalArgs, ListMetadataImportsResponse::class, $request);
+ }
+
+ /**
+ * Lists services in a project and location.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedParent = $dataprocMetastoreClient->locationName('[PROJECT]', '[LOCATION]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataprocMetastoreClient->listServices($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataprocMetastoreClient->listServices($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The relative resource name of the location of metastore services
+ * to list, in the following form:
+ *
+ * `projects/{project_number}/locations/{location_id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @type string $filter
+ * Optional. The filter to apply to list results.
+ * @type string $orderBy
+ * Optional. Specify the ordering of results as described in [Sorting
+ * Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
+ * If not specified, the results will be sorted in the default order.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function listServices($parent, array $optionalArgs = [])
+ {
+ $request = new ListServicesRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['orderBy'])) {
+ $request->setOrderBy($optionalArgs['orderBy']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListServices', $optionalArgs, ListServicesResponse::class, $request);
+ }
+
+ /**
+ * Move a table to another database.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedService = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $tableName = 'table_name';
+ * $dbName = 'db_name';
+ * $destinationDbName = 'destination_db_name';
+ * $operationResponse = $dataprocMetastoreClient->moveTableToDatabase($formattedService, $tableName, $dbName, $destinationDbName);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->moveTableToDatabase($formattedService, $tableName, $dbName, $destinationDbName);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'moveTableToDatabase');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $service Required. The relative resource name of the metastore service to mutate
+ * metadata, in the following format:
+ *
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ * @param string $tableName Required. The name of the table to be moved.
+ * @param string $dbName Required. The name of the database where the table resides.
+ * @param string $destinationDbName Required. The name of the database where the table should be moved.
+ * @param array $optionalArgs {
+ * 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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function moveTableToDatabase($service, $tableName, $dbName, $destinationDbName, array $optionalArgs = [])
+ {
+ $request = new MoveTableToDatabaseRequest();
+ $requestParamHeaders = [];
+ $request->setService($service);
+ $request->setTableName($tableName);
+ $request->setDbName($dbName);
+ $request->setDestinationDbName($destinationDbName);
+ $requestParamHeaders['service'] = $service;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('MoveTableToDatabase', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Query DPMS metadata.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedService = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $query = 'query';
+ * $operationResponse = $dataprocMetastoreClient->queryMetadata($formattedService, $query);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->queryMetadata($formattedService, $query);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'queryMetadata');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $service Required. The relative resource name of the metastore service to query
+ * metadata, in the following format:
+ *
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ * @param string $query Required. A read-only SQL query to execute against the metadata database.
+ * The query cannot change or mutate the data.
+ * @param array $optionalArgs {
+ * 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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function queryMetadata($service, $query, array $optionalArgs = [])
+ {
+ $request = new QueryMetadataRequest();
+ $requestParamHeaders = [];
+ $request->setService($service);
+ $request->setQuery($query);
+ $requestParamHeaders['service'] = $service;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('QueryMetadata', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Removes the attached IAM policies for a resource
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $resource = 'resource';
+ * $response = $dataprocMetastoreClient->removeIamPolicy($resource);
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $resource Required. The relative resource name of the dataplane resource to remove
+ * IAM policy, in the following form:
+ *
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/databases/{database_id}`
+ * or
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/databases/{database_id}/tables/{table_id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type bool $asynchronous
+ * Optional. Removes IAM policy attached to database or table asynchronously
+ * when it is set. The default is false.
+ * @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 \Google\Cloud\Metastore\V1beta\RemoveIamPolicyResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function removeIamPolicy($resource, array $optionalArgs = [])
+ {
+ $request = new RemoveIamPolicyRequest();
+ $requestParamHeaders = [];
+ $request->setResource($resource);
+ $requestParamHeaders['resource'] = $resource;
+ if (isset($optionalArgs['asynchronous'])) {
+ $request->setAsynchronous($optionalArgs['asynchronous']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('RemoveIamPolicy', RemoveIamPolicyResponse::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Restores a service from a backup.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $formattedService = $dataprocMetastoreClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ * $formattedBackup = $dataprocMetastoreClient->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ * $operationResponse = $dataprocMetastoreClient->restoreService($formattedService, $formattedBackup);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->restoreService($formattedService, $formattedBackup);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'restoreService');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $service Required. The relative resource name of the metastore service to run
+ * restore, in the following form:
+ *
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}`.
+ * @param string $backup Required. The relative resource name of the metastore service backup to
+ * restore from, in the following form:
+ *
+ * `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $restoreType
+ * Optional. The type of restore. If unspecified, defaults to `METADATA_ONLY`.
+ * For allowed values, use constants defined on {@see \Google\Cloud\Metastore\V1beta\Restore\RestoreType}
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function restoreService($service, $backup, array $optionalArgs = [])
+ {
+ $request = new RestoreServiceRequest();
+ $requestParamHeaders = [];
+ $request->setService($service);
+ $request->setBackup($backup);
+ $requestParamHeaders['service'] = $service;
+ if (isset($optionalArgs['restoreType'])) {
+ $request->setRestoreType($optionalArgs['restoreType']);
+ }
+
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('RestoreService', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Updates a single import.
+ * Only the description field of MetadataImport is supported to be updated.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $updateMask = new FieldMask();
+ * $metadataImport = new MetadataImport();
+ * $operationResponse = $dataprocMetastoreClient->updateMetadataImport($updateMask, $metadataImport);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->updateMetadataImport($updateMask, $metadataImport);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'updateMetadataImport');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param FieldMask $updateMask Required. A field mask used to specify the fields to be overwritten in the
+ * metadata import resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ * @param MetadataImport $metadataImport Required. The metadata import to update. The server only merges fields
+ * in the import if they are specified in `update_mask`.
+ *
+ * The metadata import's `name` field is used to identify the metastore
+ * import to be updated.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function updateMetadataImport($updateMask, $metadataImport, array $optionalArgs = [])
+ {
+ $request = new UpdateMetadataImportRequest();
+ $requestParamHeaders = [];
+ $request->setUpdateMask($updateMask);
+ $request->setMetadataImport($metadataImport);
+ $requestParamHeaders['metadata_import.name'] = $metadataImport->getName();
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('UpdateMetadataImport', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Updates the parameters of a single service.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $updateMask = new FieldMask();
+ * $service = new Service();
+ * $operationResponse = $dataprocMetastoreClient->updateService($updateMask, $service);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $dataprocMetastoreClient->updateService($updateMask, $service);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataprocMetastoreClient->resumeOperation($operationName, 'updateService');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param FieldMask $updateMask Required. A field mask used to specify the fields to be overwritten in the
+ * metastore service resource by the update.
+ * Fields specified in the `update_mask` are relative to the resource (not
+ * to the full request). A field is overwritten if it is in the mask.
+ * @param Service $service Required. The metastore service to update. The server only merges fields
+ * in the service if they are specified in `update_mask`.
+ *
+ * The metastore service's `name` field is used to identify the metastore
+ * service to be updated.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A request ID. Specify a unique request ID to allow the server to
+ * ignore the request if it has completed. The server will ignore subsequent
+ * requests that provide a duplicate request ID for at least 60 minutes after
+ * the first request.
+ *
+ * For example, if an initial request times out, followed by another request
+ * with the same request ID, the server ignores the second request to prevent
+ * the creation of duplicate commitments.
+ *
+ * The request ID must be a valid
+ * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
+ * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function updateService($updateMask, $service, array $optionalArgs = [])
+ {
+ $request = new UpdateServiceRequest();
+ $requestParamHeaders = [];
+ $request->setUpdateMask($updateMask);
+ $request->setService($service);
+ $requestParamHeaders['service.name'] = $service->getName();
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('UpdateService', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Gets information about a location.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $response = $dataprocMetastoreClient->getLocation();
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $name
+ * Resource name for the location.
+ * @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 \Google\Cloud\Location\Location
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function getLocation(array $optionalArgs = [])
+ {
+ $request = new GetLocationRequest();
+ $requestParamHeaders = [];
+ if (isset($optionalArgs['name'])) {
+ $request->setName($optionalArgs['name']);
+ $requestParamHeaders['name'] = $optionalArgs['name'];
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetLocation', Location::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.cloud.location.Locations')->wait();
+ }
+
+ /**
+ * Lists information about the supported locations for this service.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataprocMetastoreClient->listLocations();
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataprocMetastoreClient->listLocations();
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $name
+ * The resource that owns the locations collection, if applicable.
+ * @type string $filter
+ * The standard list filter.
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function listLocations(array $optionalArgs = [])
+ {
+ $request = new ListLocationsRequest();
+ $requestParamHeaders = [];
+ if (isset($optionalArgs['name'])) {
+ $request->setName($optionalArgs['name']);
+ $requestParamHeaders['name'] = $optionalArgs['name'];
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListLocations', $optionalArgs, ListLocationsResponse::class, $request, 'google.cloud.location.Locations');
+ }
+
+ /**
+ * Gets the access control policy for a resource. Returns an empty policy
+ if the resource exists and does not have a policy set.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $resource = 'resource';
+ * $response = $dataprocMetastoreClient->getIamPolicy($resource);
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $resource REQUIRED: The resource for which the policy is being requested.
+ * See the operation documentation for the appropriate value for this field.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type GetPolicyOptions $options
+ * OPTIONAL: A `GetPolicyOptions` object for specifying options to
+ * `GetIamPolicy`.
+ * @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 \Google\Cloud\Iam\V1\Policy
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function getIamPolicy($resource, array $optionalArgs = [])
+ {
+ $request = new GetIamPolicyRequest();
+ $requestParamHeaders = [];
+ $request->setResource($resource);
+ $requestParamHeaders['resource'] = $resource;
+ if (isset($optionalArgs['options'])) {
+ $request->setOptions($optionalArgs['options']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetIamPolicy', Policy::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.iam.v1.IAMPolicy')->wait();
+ }
+
+ /**
+ * Sets the access control policy on the specified resource. Replaces
+ any existing policy.
+
+ Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
+ errors.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $resource = 'resource';
+ * $policy = new Policy();
+ * $response = $dataprocMetastoreClient->setIamPolicy($resource, $policy);
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $resource REQUIRED: The resource for which the policy is being specified.
+ * See the operation documentation for the appropriate value for this field.
+ * @param Policy $policy REQUIRED: The complete policy to be applied to the `resource`. The size of
+ * the policy is limited to a few 10s of KB. An empty policy is a
+ * valid policy but certain Cloud Platform services (such as Projects)
+ * might reject them.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type FieldMask $updateMask
+ * OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
+ * the fields in the mask will be modified. If no mask is provided, the
+ * following default mask is used:
+ *
+ * `paths: "bindings, etag"`
+ * @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 \Google\Cloud\Iam\V1\Policy
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function setIamPolicy($resource, $policy, array $optionalArgs = [])
+ {
+ $request = new SetIamPolicyRequest();
+ $requestParamHeaders = [];
+ $request->setResource($resource);
+ $request->setPolicy($policy);
+ $requestParamHeaders['resource'] = $resource;
+ if (isset($optionalArgs['updateMask'])) {
+ $request->setUpdateMask($optionalArgs['updateMask']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('SetIamPolicy', Policy::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.iam.v1.IAMPolicy')->wait();
+ }
+
+ /**
+ * Returns permissions that a caller has on the specified resource. If the
+ resource does not exist, this will return an empty set of
+ permissions, not a `NOT_FOUND` error.
+
+ Note: This operation is designed to be used for building
+ permission-aware UIs and command-line tools, not for authorization
+ checking. This operation may "fail open" without warning.
+ *
+ * Sample code:
+ * ```
+ * $dataprocMetastoreClient = new DataprocMetastoreClient();
+ * try {
+ * $resource = 'resource';
+ * $permissions = [];
+ * $response = $dataprocMetastoreClient->testIamPermissions($resource, $permissions);
+ * } finally {
+ * $dataprocMetastoreClient->close();
+ * }
+ * ```
+ *
+ * @param string $resource REQUIRED: The resource for which the policy detail is being requested.
+ * See the operation documentation for the appropriate value for this field.
+ * @param string[] $permissions The set of permissions to check for the `resource`. Permissions with
+ * wildcards (such as '*' or 'storage.*') are not allowed. For more
+ * information see
+ * [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Iam\V1\TestIamPermissionsResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function testIamPermissions($resource, $permissions, array $optionalArgs = [])
+ {
+ $request = new TestIamPermissionsRequest();
+ $requestParamHeaders = [];
+ $request->setResource($resource);
+ $request->setPermissions($permissions);
+ $requestParamHeaders['resource'] = $resource;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('TestIamPermissions', TestIamPermissionsResponse::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.iam.v1.IAMPolicy')->wait();
+ }
+}
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/gapic_metadata.json b/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/gapic_metadata.json
new file mode 100644
index 000000000000..1e01d02ccb35
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/gapic_metadata.json
@@ -0,0 +1,197 @@
+{
+ "schema": "1.0",
+ "comment": "This file maps proto services\/RPCs to the corresponding library clients\/methods",
+ "language": "php",
+ "protoPackage": "google.cloud.metastore.v1beta",
+ "libraryPackage": "Google\\Cloud\\Metastore\\V1beta",
+ "services": {
+ "DataprocMetastore": {
+ "clients": {
+ "grpc": {
+ "libraryClient": "DataprocMetastoreGapicClient",
+ "rpcs": {
+ "AlterMetadataResourceLocation": {
+ "methods": [
+ "alterMetadataResourceLocation"
+ ]
+ },
+ "CreateBackup": {
+ "methods": [
+ "createBackup"
+ ]
+ },
+ "CreateMetadataImport": {
+ "methods": [
+ "createMetadataImport"
+ ]
+ },
+ "CreateService": {
+ "methods": [
+ "createService"
+ ]
+ },
+ "DeleteBackup": {
+ "methods": [
+ "deleteBackup"
+ ]
+ },
+ "DeleteService": {
+ "methods": [
+ "deleteService"
+ ]
+ },
+ "ExportMetadata": {
+ "methods": [
+ "exportMetadata"
+ ]
+ },
+ "GetBackup": {
+ "methods": [
+ "getBackup"
+ ]
+ },
+ "GetMetadataImport": {
+ "methods": [
+ "getMetadataImport"
+ ]
+ },
+ "GetService": {
+ "methods": [
+ "getService"
+ ]
+ },
+ "ListBackups": {
+ "methods": [
+ "listBackups"
+ ]
+ },
+ "ListMetadataImports": {
+ "methods": [
+ "listMetadataImports"
+ ]
+ },
+ "ListServices": {
+ "methods": [
+ "listServices"
+ ]
+ },
+ "MoveTableToDatabase": {
+ "methods": [
+ "moveTableToDatabase"
+ ]
+ },
+ "QueryMetadata": {
+ "methods": [
+ "queryMetadata"
+ ]
+ },
+ "RemoveIamPolicy": {
+ "methods": [
+ "removeIamPolicy"
+ ]
+ },
+ "RestoreService": {
+ "methods": [
+ "restoreService"
+ ]
+ },
+ "UpdateMetadataImport": {
+ "methods": [
+ "updateMetadataImport"
+ ]
+ },
+ "UpdateService": {
+ "methods": [
+ "updateService"
+ ]
+ },
+ "GetLocation": {
+ "methods": [
+ "getLocation"
+ ]
+ },
+ "ListLocations": {
+ "methods": [
+ "listLocations"
+ ]
+ },
+ "GetIamPolicy": {
+ "methods": [
+ "getIamPolicy"
+ ]
+ },
+ "SetIamPolicy": {
+ "methods": [
+ "setIamPolicy"
+ ]
+ },
+ "TestIamPermissions": {
+ "methods": [
+ "testIamPermissions"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "DataprocMetastoreFederation": {
+ "clients": {
+ "grpc": {
+ "libraryClient": "DataprocMetastoreFederationGapicClient",
+ "rpcs": {
+ "CreateFederation": {
+ "methods": [
+ "createFederation"
+ ]
+ },
+ "DeleteFederation": {
+ "methods": [
+ "deleteFederation"
+ ]
+ },
+ "GetFederation": {
+ "methods": [
+ "getFederation"
+ ]
+ },
+ "ListFederations": {
+ "methods": [
+ "listFederations"
+ ]
+ },
+ "UpdateFederation": {
+ "methods": [
+ "updateFederation"
+ ]
+ },
+ "GetLocation": {
+ "methods": [
+ "getLocation"
+ ]
+ },
+ "ListLocations": {
+ "methods": [
+ "listLocations"
+ ]
+ },
+ "GetIamPolicy": {
+ "methods": [
+ "getIamPolicy"
+ ]
+ },
+ "SetIamPolicy": {
+ "methods": [
+ "setIamPolicy"
+ ]
+ },
+ "TestIamPermissions": {
+ "methods": [
+ "testIamPermissions"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/resources/dataproc_metastore_client_config.json b/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/resources/dataproc_metastore_client_config.json
new file mode 100644
index 000000000000..f641af0265f2
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/resources/dataproc_metastore_client_config.json
@@ -0,0 +1,164 @@
+{
+ "interfaces": {
+ "google.cloud.metastore.v1beta.DataprocMetastore": {
+ "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": {
+ "AlterMetadataResourceLocation": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "CreateBackup": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateMetadataImport": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateService": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteBackup": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteService": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ExportMetadata": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetBackup": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetMetadataImport": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetService": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListBackups": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListMetadataImports": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListServices": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "MoveTableToDatabase": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "QueryMetadata": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "RemoveIamPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "RestoreService": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateMetadataImport": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateService": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetLocation": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListLocations": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetIamPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "SetIamPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "TestIamPermissions": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ }
+ }
+ }
+ }
+}
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/resources/dataproc_metastore_descriptor_config.php b/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/resources/dataproc_metastore_descriptor_config.php
new file mode 100644
index 000000000000..dda1e9b12646
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/resources/dataproc_metastore_descriptor_config.php
@@ -0,0 +1,181 @@
+ [
+ 'google.cloud.metastore.v1beta.DataprocMetastore' => [
+ 'AlterMetadataResourceLocation' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1beta\AlterMetadataResourceLocationResponse',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1beta\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'CreateBackup' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1beta\Backup',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1beta\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'CreateMetadataImport' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1beta\MetadataImport',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1beta\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'CreateService' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1beta\Service',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1beta\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'DeleteBackup' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1beta\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'DeleteService' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1beta\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'ExportMetadata' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1beta\MetadataExport',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1beta\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'MoveTableToDatabase' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1beta\MoveTableToDatabaseResponse',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1beta\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'QueryMetadata' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1beta\QueryMetadataResponse',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1beta\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'RestoreService' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1beta\Restore',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1beta\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'UpdateMetadataImport' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1beta\MetadataImport',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1beta\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'UpdateService' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1beta\Service',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1beta\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'ListBackups' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getBackups',
+ ],
+ ],
+ 'ListMetadataImports' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getMetadataImports',
+ ],
+ ],
+ 'ListServices' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getServices',
+ ],
+ ],
+ 'GetLocation' => [
+ 'interfaceOverride' => 'google.cloud.location.Locations',
+ ],
+ 'ListLocations' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getLocations',
+ ],
+ 'interfaceOverride' => 'google.cloud.location.Locations',
+ ],
+ 'GetIamPolicy' => [
+ 'interfaceOverride' => 'google.iam.v1.IAMPolicy',
+ ],
+ 'SetIamPolicy' => [
+ 'interfaceOverride' => 'google.iam.v1.IAMPolicy',
+ ],
+ 'TestIamPermissions' => [
+ 'interfaceOverride' => 'google.iam.v1.IAMPolicy',
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/resources/dataproc_metastore_federation_client_config.json b/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/resources/dataproc_metastore_federation_client_config.json
new file mode 100644
index 000000000000..79bcf744ef44
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/resources/dataproc_metastore_federation_client_config.json
@@ -0,0 +1,72 @@
+{
+ "interfaces": {
+ "google.cloud.metastore.v1beta.DataprocMetastoreFederation": {
+ "retry_codes": {
+ "no_retry_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
+ }
+ },
+ "methods": {
+ "CreateFederation": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "DeleteFederation": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "GetFederation": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "ListFederations": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "UpdateFederation": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_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"
+ },
+ "GetIamPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "SetIamPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "TestIamPermissions": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ }
+ }
+ }
+ }
+}
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/resources/dataproc_metastore_federation_descriptor_config.php b/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/resources/dataproc_metastore_federation_descriptor_config.php
new file mode 100644
index 000000000000..97796f6e3c5e
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/resources/dataproc_metastore_federation_descriptor_config.php
@@ -0,0 +1,71 @@
+ [
+ 'google.cloud.metastore.v1beta.DataprocMetastoreFederation' => [
+ 'CreateFederation' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1beta\Federation',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1beta\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'DeleteFederation' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1beta\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'UpdateFederation' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Metastore\V1beta\Federation',
+ 'metadataReturnType' => '\Google\Cloud\Metastore\V1beta\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ ],
+ 'ListFederations' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getFederations',
+ ],
+ ],
+ 'GetLocation' => [
+ 'interfaceOverride' => 'google.cloud.location.Locations',
+ ],
+ 'ListLocations' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getLocations',
+ ],
+ 'interfaceOverride' => 'google.cloud.location.Locations',
+ ],
+ 'GetIamPolicy' => [
+ 'interfaceOverride' => 'google.iam.v1.IAMPolicy',
+ ],
+ 'SetIamPolicy' => [
+ 'interfaceOverride' => 'google.iam.v1.IAMPolicy',
+ ],
+ 'TestIamPermissions' => [
+ 'interfaceOverride' => 'google.iam.v1.IAMPolicy',
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/resources/dataproc_metastore_federation_rest_client_config.php b/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/resources/dataproc_metastore_federation_rest_client_config.php
new file mode 100644
index 000000000000..8a7cd63d635b
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/resources/dataproc_metastore_federation_rest_client_config.php
@@ -0,0 +1,243 @@
+ [
+ 'google.cloud.location.Locations' => [
+ 'GetLocation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListLocations' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{name=projects/*}/locations',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.cloud.metastore.v1beta.DataprocMetastoreFederation' => [
+ 'CreateFederation' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{parent=projects/*/locations/*}/federations',
+ 'body' => 'federation',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'federation_id',
+ ],
+ ],
+ 'DeleteFederation' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*/federations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetFederation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*/federations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListFederations' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{parent=projects/*/locations/*}/federations',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateFederation' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1beta/{federation.name=projects/*/locations/*/federations/*}',
+ 'body' => 'federation',
+ 'placeholders' => [
+ 'federation.name' => [
+ 'getters' => [
+ 'getFederation',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ ],
+ 'google.iam.v1.IAMPolicy' => [
+ 'GetIamPolicy' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/services/*}:getIamPolicy',
+ 'additionalBindings' => [
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/services/*/backups/*}:getIamPolicy',
+ ],
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/services/*/databases/*}:getIamPolicy',
+ ],
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/services/*/databases/*/tables/*}:getIamPolicy',
+ ],
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/federations/*}:getIamPolicy',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'SetIamPolicy' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/services/*}:setIamPolicy',
+ 'body' => '*',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/services/*/backups/*}:setIamPolicy',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/services/*/databases/*}:setIamPolicy',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/services/*/databases/*/tables/*}:setIamPolicy',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/federations/*}:setIamPolicy',
+ 'body' => '*',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'TestIamPermissions' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/services/*}:testIamPermissions',
+ 'body' => '*',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/services/*/backups/*}:testIamPermissions',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/services/*/databases/*}:testIamPermissions',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/services/*/databases/*/tables/*}:testIamPermissions',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/federations/*}:testIamPermissions',
+ 'body' => '*',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.longrunning.Operations' => [
+ 'CancelOperation' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*/operations/*}:cancel',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteOperation' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*/operations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetOperation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*/operations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListOperations' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*}/operations',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'numericEnums' => true,
+];
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/resources/dataproc_metastore_rest_client_config.php b/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/resources/dataproc_metastore_rest_client_config.php
new file mode 100644
index 000000000000..b199ccc74cfc
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/src/V1beta/resources/dataproc_metastore_rest_client_config.php
@@ -0,0 +1,416 @@
+ [
+ 'google.cloud.location.Locations' => [
+ 'GetLocation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListLocations' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{name=projects/*}/locations',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.cloud.metastore.v1beta.DataprocMetastore' => [
+ 'AlterMetadataResourceLocation' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{service=projects/*/locations/*/services/*}:alterLocation',
+ 'body' => '*',
+ 'placeholders' => [
+ 'service' => [
+ 'getters' => [
+ 'getService',
+ ],
+ ],
+ ],
+ ],
+ 'CreateBackup' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{parent=projects/*/locations/*/services/*}/backups',
+ 'body' => 'backup',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'backup_id',
+ ],
+ ],
+ 'CreateMetadataImport' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{parent=projects/*/locations/*/services/*}/metadataImports',
+ 'body' => 'metadata_import',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'metadata_import_id',
+ ],
+ ],
+ 'CreateService' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{parent=projects/*/locations/*}/services',
+ 'body' => 'service',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'service_id',
+ ],
+ ],
+ 'DeleteBackup' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*/services/*/backups/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteService' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*/services/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ExportMetadata' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{service=projects/*/locations/*/services/*}:exportMetadata',
+ 'body' => '*',
+ 'placeholders' => [
+ 'service' => [
+ 'getters' => [
+ 'getService',
+ ],
+ ],
+ ],
+ ],
+ 'GetBackup' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*/services/*/backups/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetMetadataImport' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*/services/*/metadataImports/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetService' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*/services/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListBackups' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{parent=projects/*/locations/*/services/*}/backups',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListMetadataImports' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{parent=projects/*/locations/*/services/*}/metadataImports',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListServices' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{parent=projects/*/locations/*}/services',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'MoveTableToDatabase' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{service=projects/*/locations/*/services/*}:moveTableToDatabase',
+ 'body' => '*',
+ 'placeholders' => [
+ 'service' => [
+ 'getters' => [
+ 'getService',
+ ],
+ ],
+ ],
+ ],
+ 'QueryMetadata' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{service=projects/*/locations/*/services/*}:queryMetadata',
+ 'body' => '*',
+ 'placeholders' => [
+ 'service' => [
+ 'getters' => [
+ 'getService',
+ ],
+ ],
+ ],
+ ],
+ 'RemoveIamPolicy' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/services/*/**}:removeIamPolicy',
+ 'body' => '*',
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'RestoreService' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{service=projects/*/locations/*/services/*}:restore',
+ 'body' => '*',
+ 'placeholders' => [
+ 'service' => [
+ 'getters' => [
+ 'getService',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateMetadataImport' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1beta/{metadata_import.name=projects/*/locations/*/services/*/metadataImports/*}',
+ 'body' => 'metadata_import',
+ 'placeholders' => [
+ 'metadata_import.name' => [
+ 'getters' => [
+ 'getMetadataImport',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ 'UpdateService' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1beta/{service.name=projects/*/locations/*/services/*}',
+ 'body' => 'service',
+ 'placeholders' => [
+ 'service.name' => [
+ 'getters' => [
+ 'getService',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ ],
+ 'google.iam.v1.IAMPolicy' => [
+ 'GetIamPolicy' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/services/*}:getIamPolicy',
+ 'additionalBindings' => [
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/services/*/backups/*}:getIamPolicy',
+ ],
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/services/*/databases/*}:getIamPolicy',
+ ],
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/services/*/databases/*/tables/*}:getIamPolicy',
+ ],
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/federations/*}:getIamPolicy',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'SetIamPolicy' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/services/*}:setIamPolicy',
+ 'body' => '*',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/services/*/backups/*}:setIamPolicy',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/services/*/databases/*}:setIamPolicy',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/services/*/databases/*/tables/*}:setIamPolicy',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/federations/*}:setIamPolicy',
+ 'body' => '*',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'TestIamPermissions' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/services/*}:testIamPermissions',
+ 'body' => '*',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/services/*/backups/*}:testIamPermissions',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/services/*/databases/*}:testIamPermissions',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/services/*/databases/*/tables/*}:testIamPermissions',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{resource=projects/*/locations/*/federations/*}:testIamPermissions',
+ 'body' => '*',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.longrunning.Operations' => [
+ 'CancelOperation' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*/operations/*}:cancel',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteOperation' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*/operations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetOperation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*/operations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListOperations' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta/{name=projects/*/locations/*}/operations',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'numericEnums' => true,
+];
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/tests/Unit/V1beta/DataprocMetastoreClientTest.php b/owl-bot-staging/DataprocMetastore/v1beta/tests/Unit/V1beta/DataprocMetastoreClientTest.php
new file mode 100644
index 000000000000..adcb52fb1c30
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/tests/Unit/V1beta/DataprocMetastoreClientTest.php
@@ -0,0 +1,2364 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return DataprocMetastoreClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new DataprocMetastoreClient($options);
+ }
+
+ /** @test */
+ public function alterMetadataResourceLocationTest()
+ {
+ $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/alterMetadataResourceLocationTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new AlterMetadataResourceLocationResponse();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/alterMetadataResourceLocationTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $resourceName = 'resourceName979421212';
+ $locationUri = 'locationUri-57953822';
+ $response = $gapicClient->alterMetadataResourceLocation($formattedService, $resourceName, $locationUri);
+ $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.metastore.v1beta.DataprocMetastore/AlterMetadataResourceLocation', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getService();
+ $this->assertProtobufEquals($formattedService, $actualValue);
+ $actualValue = $actualApiRequestObject->getResourceName();
+ $this->assertProtobufEquals($resourceName, $actualValue);
+ $actualValue = $actualApiRequestObject->getLocationUri();
+ $this->assertProtobufEquals($locationUri, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/alterMetadataResourceLocationTest');
+ $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 alterMetadataResourceLocationExceptionTest()
+ {
+ $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/alterMetadataResourceLocationTest');
+ $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
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $resourceName = 'resourceName979421212';
+ $locationUri = 'locationUri-57953822';
+ $response = $gapicClient->alterMetadataResourceLocation($formattedService, $resourceName, $locationUri);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/alterMetadataResourceLocationTest');
+ 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 createBackupTest()
+ {
+ $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/createBackupTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $description = 'description-1724546052';
+ $expectedResponse = new Backup();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDescription($description);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createBackupTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $backupId = 'backupId1355353272';
+ $backup = new Backup();
+ $response = $gapicClient->createBackup($formattedParent, $backupId, $backup);
+ $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.metastore.v1beta.DataprocMetastore/CreateBackup', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getBackupId();
+ $this->assertProtobufEquals($backupId, $actualValue);
+ $actualValue = $actualApiRequestObject->getBackup();
+ $this->assertProtobufEquals($backup, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createBackupTest');
+ $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 createBackupExceptionTest()
+ {
+ $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/createBackupTest');
+ $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->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $backupId = 'backupId1355353272';
+ $backup = new Backup();
+ $response = $gapicClient->createBackup($formattedParent, $backupId, $backup);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createBackupTest');
+ 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 createMetadataImportTest()
+ {
+ $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/createMetadataImportTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $description = 'description-1724546052';
+ $expectedResponse = new MetadataImport();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDescription($description);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createMetadataImportTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $metadataImportId = 'metadataImportId-476076315';
+ $metadataImport = new MetadataImport();
+ $response = $gapicClient->createMetadataImport($formattedParent, $metadataImportId, $metadataImport);
+ $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.metastore.v1beta.DataprocMetastore/CreateMetadataImport', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getMetadataImportId();
+ $this->assertProtobufEquals($metadataImportId, $actualValue);
+ $actualValue = $actualApiRequestObject->getMetadataImport();
+ $this->assertProtobufEquals($metadataImport, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createMetadataImportTest');
+ $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 createMetadataImportExceptionTest()
+ {
+ $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/createMetadataImportTest');
+ $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->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $metadataImportId = 'metadataImportId-476076315';
+ $metadataImport = new MetadataImport();
+ $response = $gapicClient->createMetadataImport($formattedParent, $metadataImportId, $metadataImport);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createMetadataImportTest');
+ 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 createServiceTest()
+ {
+ $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/createServiceTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $network = 'network1843485230';
+ $endpointUri = 'endpointUri-850313278';
+ $port = 3446913;
+ $stateMessage = 'stateMessage29641305';
+ $artifactGcsUri = 'artifactGcsUri1337121495';
+ $uid = 'uid115792';
+ $expectedResponse = new Service();
+ $expectedResponse->setName($name);
+ $expectedResponse->setNetwork($network);
+ $expectedResponse->setEndpointUri($endpointUri);
+ $expectedResponse->setPort($port);
+ $expectedResponse->setStateMessage($stateMessage);
+ $expectedResponse->setArtifactGcsUri($artifactGcsUri);
+ $expectedResponse->setUid($uid);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createServiceTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $serviceId = 'serviceId-1724763419';
+ $service = new Service();
+ $response = $gapicClient->createService($formattedParent, $serviceId, $service);
+ $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.metastore.v1beta.DataprocMetastore/CreateService', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getServiceId();
+ $this->assertProtobufEquals($serviceId, $actualValue);
+ $actualValue = $actualApiRequestObject->getService();
+ $this->assertProtobufEquals($service, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createServiceTest');
+ $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 createServiceExceptionTest()
+ {
+ $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/createServiceTest');
+ $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]');
+ $serviceId = 'serviceId-1724763419';
+ $service = new Service();
+ $response = $gapicClient->createService($formattedParent, $serviceId, $service);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createServiceTest');
+ 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 deleteBackupTest()
+ {
+ $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/deleteBackupTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteBackupTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ $response = $gapicClient->deleteBackup($formattedName);
+ $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.metastore.v1beta.DataprocMetastore/DeleteBackup', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteBackupTest');
+ $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 deleteBackupExceptionTest()
+ {
+ $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/deleteBackupTest');
+ $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->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ $response = $gapicClient->deleteBackup($formattedName);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteBackupTest');
+ 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 deleteServiceTest()
+ {
+ $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/deleteServiceTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteServiceTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $response = $gapicClient->deleteService($formattedName);
+ $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.metastore.v1beta.DataprocMetastore/DeleteService', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteServiceTest');
+ $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 deleteServiceExceptionTest()
+ {
+ $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/deleteServiceTest');
+ $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->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $response = $gapicClient->deleteService($formattedName);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteServiceTest');
+ 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 exportMetadataTest()
+ {
+ $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/exportMetadataTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $destinationGcsUri = 'destinationGcsUri1386421523';
+ $expectedResponse = new MetadataExport();
+ $expectedResponse->setDestinationGcsUri($destinationGcsUri);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/exportMetadataTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $response = $gapicClient->exportMetadata($formattedService);
+ $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.metastore.v1beta.DataprocMetastore/ExportMetadata', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getService();
+ $this->assertProtobufEquals($formattedService, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/exportMetadataTest');
+ $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 exportMetadataExceptionTest()
+ {
+ $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/exportMetadataTest');
+ $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
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $response = $gapicClient->exportMetadata($formattedService);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/exportMetadataTest');
+ 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 getBackupTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $description = 'description-1724546052';
+ $expectedResponse = new Backup();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ $response = $gapicClient->getBackup($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1beta.DataprocMetastore/GetBackup', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getBackupExceptionTest()
+ {
+ $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->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ try {
+ $gapicClient->getBackup($formattedName);
+ // 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 getMetadataImportTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $description = 'description-1724546052';
+ $expectedResponse = new MetadataImport();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->metadataImportName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[METADATA_IMPORT]');
+ $response = $gapicClient->getMetadataImport($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1beta.DataprocMetastore/GetMetadataImport', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getMetadataImportExceptionTest()
+ {
+ $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->metadataImportName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[METADATA_IMPORT]');
+ try {
+ $gapicClient->getMetadataImport($formattedName);
+ // 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 getServiceTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $network = 'network1843485230';
+ $endpointUri = 'endpointUri-850313278';
+ $port = 3446913;
+ $stateMessage = 'stateMessage29641305';
+ $artifactGcsUri = 'artifactGcsUri1337121495';
+ $uid = 'uid115792';
+ $expectedResponse = new Service();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setNetwork($network);
+ $expectedResponse->setEndpointUri($endpointUri);
+ $expectedResponse->setPort($port);
+ $expectedResponse->setStateMessage($stateMessage);
+ $expectedResponse->setArtifactGcsUri($artifactGcsUri);
+ $expectedResponse->setUid($uid);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $response = $gapicClient->getService($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1beta.DataprocMetastore/GetService', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getServiceExceptionTest()
+ {
+ $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->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ try {
+ $gapicClient->getService($formattedName);
+ // 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 listBackupsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $backupsElement = new Backup();
+ $backups = [
+ $backupsElement,
+ ];
+ $expectedResponse = new ListBackupsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setBackups($backups);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $response = $gapicClient->listBackups($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getBackups()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1beta.DataprocMetastore/ListBackups', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listBackupsExceptionTest()
+ {
+ $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->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ try {
+ $gapicClient->listBackups($formattedParent);
+ // 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 listMetadataImportsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $metadataImportsElement = new MetadataImport();
+ $metadataImports = [
+ $metadataImportsElement,
+ ];
+ $expectedResponse = new ListMetadataImportsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setMetadataImports($metadataImports);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $response = $gapicClient->listMetadataImports($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getMetadataImports()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1beta.DataprocMetastore/ListMetadataImports', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listMetadataImportsExceptionTest()
+ {
+ $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->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ try {
+ $gapicClient->listMetadataImports($formattedParent);
+ // 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 listServicesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $servicesElement = new Service();
+ $services = [
+ $servicesElement,
+ ];
+ $expectedResponse = new ListServicesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setServices($services);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $response = $gapicClient->listServices($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getServices()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1beta.DataprocMetastore/ListServices', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listServicesExceptionTest()
+ {
+ $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]');
+ try {
+ $gapicClient->listServices($formattedParent);
+ // 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 moveTableToDatabaseTest()
+ {
+ $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/moveTableToDatabaseTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new MoveTableToDatabaseResponse();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/moveTableToDatabaseTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $tableName = 'tableName-1504630692';
+ $dbName = 'dbName1452819884';
+ $destinationDbName = 'destinationDbName-1322761605';
+ $response = $gapicClient->moveTableToDatabase($formattedService, $tableName, $dbName, $destinationDbName);
+ $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.metastore.v1beta.DataprocMetastore/MoveTableToDatabase', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getService();
+ $this->assertProtobufEquals($formattedService, $actualValue);
+ $actualValue = $actualApiRequestObject->getTableName();
+ $this->assertProtobufEquals($tableName, $actualValue);
+ $actualValue = $actualApiRequestObject->getDbName();
+ $this->assertProtobufEquals($dbName, $actualValue);
+ $actualValue = $actualApiRequestObject->getDestinationDbName();
+ $this->assertProtobufEquals($destinationDbName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/moveTableToDatabaseTest');
+ $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 moveTableToDatabaseExceptionTest()
+ {
+ $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/moveTableToDatabaseTest');
+ $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
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $tableName = 'tableName-1504630692';
+ $dbName = 'dbName1452819884';
+ $destinationDbName = 'destinationDbName-1322761605';
+ $response = $gapicClient->moveTableToDatabase($formattedService, $tableName, $dbName, $destinationDbName);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/moveTableToDatabaseTest');
+ 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 queryMetadataTest()
+ {
+ $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/queryMetadataTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $resultManifestUri = 'resultManifestUri-1050940354';
+ $expectedResponse = new QueryMetadataResponse();
+ $expectedResponse->setResultManifestUri($resultManifestUri);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/queryMetadataTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $query = 'query107944136';
+ $response = $gapicClient->queryMetadata($formattedService, $query);
+ $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.metastore.v1beta.DataprocMetastore/QueryMetadata', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getService();
+ $this->assertProtobufEquals($formattedService, $actualValue);
+ $actualValue = $actualApiRequestObject->getQuery();
+ $this->assertProtobufEquals($query, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/queryMetadataTest');
+ $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 queryMetadataExceptionTest()
+ {
+ $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/queryMetadataTest');
+ $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
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $query = 'query107944136';
+ $response = $gapicClient->queryMetadata($formattedService, $query);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/queryMetadataTest');
+ 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 removeIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $success = false;
+ $expectedResponse = new RemoveIamPolicyResponse();
+ $expectedResponse->setSuccess($success);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $response = $gapicClient->removeIamPolicy($resource);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1beta.DataprocMetastore/RemoveIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function removeIamPolicyExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ try {
+ $gapicClient->removeIamPolicy($resource);
+ // 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 restoreServiceTest()
+ {
+ $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/restoreServiceTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $backup2 = 'backup22121930997';
+ $details = 'details1557721666';
+ $expectedResponse = new Restore();
+ $expectedResponse->setBackup($backup2);
+ $expectedResponse->setDetails($details);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/restoreServiceTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $formattedBackup = $gapicClient->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ $response = $gapicClient->restoreService($formattedService, $formattedBackup);
+ $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.metastore.v1beta.DataprocMetastore/RestoreService', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getService();
+ $this->assertProtobufEquals($formattedService, $actualValue);
+ $actualValue = $actualApiRequestObject->getBackup();
+ $this->assertProtobufEquals($formattedBackup, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/restoreServiceTest');
+ $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 restoreServiceExceptionTest()
+ {
+ $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/restoreServiceTest');
+ $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
+ $formattedService = $gapicClient->serviceName('[PROJECT]', '[LOCATION]', '[SERVICE]');
+ $formattedBackup = $gapicClient->backupName('[PROJECT]', '[LOCATION]', '[SERVICE]', '[BACKUP]');
+ $response = $gapicClient->restoreService($formattedService, $formattedBackup);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/restoreServiceTest');
+ 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 updateMetadataImportTest()
+ {
+ $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/updateMetadataImportTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $description = 'description-1724546052';
+ $expectedResponse = new MetadataImport();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDescription($description);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateMetadataImportTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $updateMask = new FieldMask();
+ $metadataImport = new MetadataImport();
+ $response = $gapicClient->updateMetadataImport($updateMask, $metadataImport);
+ $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.metastore.v1beta.DataprocMetastore/UpdateMetadataImport', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualApiRequestObject->getMetadataImport();
+ $this->assertProtobufEquals($metadataImport, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateMetadataImportTest');
+ $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 updateMetadataImportExceptionTest()
+ {
+ $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/updateMetadataImportTest');
+ $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();
+ $metadataImport = new MetadataImport();
+ $response = $gapicClient->updateMetadataImport($updateMask, $metadataImport);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateMetadataImportTest');
+ 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 updateServiceTest()
+ {
+ $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/updateServiceTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $network = 'network1843485230';
+ $endpointUri = 'endpointUri-850313278';
+ $port = 3446913;
+ $stateMessage = 'stateMessage29641305';
+ $artifactGcsUri = 'artifactGcsUri1337121495';
+ $uid = 'uid115792';
+ $expectedResponse = new Service();
+ $expectedResponse->setName($name);
+ $expectedResponse->setNetwork($network);
+ $expectedResponse->setEndpointUri($endpointUri);
+ $expectedResponse->setPort($port);
+ $expectedResponse->setStateMessage($stateMessage);
+ $expectedResponse->setArtifactGcsUri($artifactGcsUri);
+ $expectedResponse->setUid($uid);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateServiceTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $updateMask = new FieldMask();
+ $service = new Service();
+ $response = $gapicClient->updateService($updateMask, $service);
+ $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.metastore.v1beta.DataprocMetastore/UpdateService', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualApiRequestObject->getService();
+ $this->assertProtobufEquals($service, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateServiceTest');
+ $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 updateServiceExceptionTest()
+ {
+ $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/updateServiceTest');
+ $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();
+ $service = new Service();
+ $response = $gapicClient->updateService($updateMask, $service);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateServiceTest');
+ 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);
+ $response = $gapicClient->getLocation();
+ $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);
+ try {
+ $gapicClient->getLocation();
+ // 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);
+ $response = $gapicClient->listLocations();
+ $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);
+ try {
+ $gapicClient->listLocations();
+ // 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 getIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $version = 351608024;
+ $etag = '21';
+ $expectedResponse = new Policy();
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $response = $gapicClient->getIamPolicy($resource);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/GetIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getIamPolicyExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ try {
+ $gapicClient->getIamPolicy($resource);
+ // 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 setIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $version = 351608024;
+ $etag = '21';
+ $expectedResponse = new Policy();
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $policy = new Policy();
+ $response = $gapicClient->setIamPolicy($resource, $policy);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/SetIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $actualValue = $actualRequestObject->getPolicy();
+ $this->assertProtobufEquals($policy, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function setIamPolicyExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ $policy = new Policy();
+ try {
+ $gapicClient->setIamPolicy($resource, $policy);
+ // 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 testIamPermissionsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new TestIamPermissionsResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $permissions = [];
+ $response = $gapicClient->testIamPermissions($resource, $permissions);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/TestIamPermissions', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $actualValue = $actualRequestObject->getPermissions();
+ $this->assertProtobufEquals($permissions, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function testIamPermissionsExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ $permissions = [];
+ try {
+ $gapicClient->testIamPermissions($resource, $permissions);
+ // 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());
+ }
+}
diff --git a/owl-bot-staging/DataprocMetastore/v1beta/tests/Unit/V1beta/DataprocMetastoreFederationClientTest.php b/owl-bot-staging/DataprocMetastore/v1beta/tests/Unit/V1beta/DataprocMetastoreFederationClientTest.php
new file mode 100644
index 000000000000..3554dd56c728
--- /dev/null
+++ b/owl-bot-staging/DataprocMetastore/v1beta/tests/Unit/V1beta/DataprocMetastoreFederationClientTest.php
@@ -0,0 +1,901 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return DataprocMetastoreFederationClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new DataprocMetastoreFederationClient($options);
+ }
+
+ /** @test */
+ public function createFederationTest()
+ {
+ $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/createFederationTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $version = 'version351608024';
+ $endpointUri = 'endpointUri-850313278';
+ $stateMessage = 'stateMessage29641305';
+ $uid = 'uid115792';
+ $expectedResponse = new Federation();
+ $expectedResponse->setName($name);
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEndpointUri($endpointUri);
+ $expectedResponse->setStateMessage($stateMessage);
+ $expectedResponse->setUid($uid);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createFederationTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $federationId = 'federationId-1338699881';
+ $federation = new Federation();
+ $response = $gapicClient->createFederation($formattedParent, $federationId, $federation);
+ $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.metastore.v1beta.DataprocMetastoreFederation/CreateFederation', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getFederationId();
+ $this->assertProtobufEquals($federationId, $actualValue);
+ $actualValue = $actualApiRequestObject->getFederation();
+ $this->assertProtobufEquals($federation, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createFederationTest');
+ $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 createFederationExceptionTest()
+ {
+ $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/createFederationTest');
+ $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]');
+ $federationId = 'federationId-1338699881';
+ $federation = new Federation();
+ $response = $gapicClient->createFederation($formattedParent, $federationId, $federation);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createFederationTest');
+ 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 deleteFederationTest()
+ {
+ $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/deleteFederationTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteFederationTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->federationName('[PROJECT]', '[LOCATION]', '[FEDERATION]');
+ $response = $gapicClient->deleteFederation($formattedName);
+ $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.metastore.v1beta.DataprocMetastoreFederation/DeleteFederation', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteFederationTest');
+ $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 deleteFederationExceptionTest()
+ {
+ $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/deleteFederationTest');
+ $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->federationName('[PROJECT]', '[LOCATION]', '[FEDERATION]');
+ $response = $gapicClient->deleteFederation($formattedName);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteFederationTest');
+ 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 getFederationTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $version = 'version351608024';
+ $endpointUri = 'endpointUri-850313278';
+ $stateMessage = 'stateMessage29641305';
+ $uid = 'uid115792';
+ $expectedResponse = new Federation();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEndpointUri($endpointUri);
+ $expectedResponse->setStateMessage($stateMessage);
+ $expectedResponse->setUid($uid);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->federationName('[PROJECT]', '[LOCATION]', '[FEDERATION]');
+ $response = $gapicClient->getFederation($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1beta.DataprocMetastoreFederation/GetFederation', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getFederationExceptionTest()
+ {
+ $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->federationName('[PROJECT]', '[LOCATION]', '[FEDERATION]');
+ try {
+ $gapicClient->getFederation($formattedName);
+ // 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 listFederationsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $federationsElement = new Federation();
+ $federations = [
+ $federationsElement,
+ ];
+ $expectedResponse = new ListFederationsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setFederations($federations);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $response = $gapicClient->listFederations($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getFederations()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.metastore.v1beta.DataprocMetastoreFederation/ListFederations', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listFederationsExceptionTest()
+ {
+ $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]');
+ try {
+ $gapicClient->listFederations($formattedParent);
+ // 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 updateFederationTest()
+ {
+ $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/updateFederationTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $version = 'version351608024';
+ $endpointUri = 'endpointUri-850313278';
+ $stateMessage = 'stateMessage29641305';
+ $uid = 'uid115792';
+ $expectedResponse = new Federation();
+ $expectedResponse->setName($name);
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEndpointUri($endpointUri);
+ $expectedResponse->setStateMessage($stateMessage);
+ $expectedResponse->setUid($uid);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateFederationTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $updateMask = new FieldMask();
+ $federation = new Federation();
+ $response = $gapicClient->updateFederation($updateMask, $federation);
+ $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.metastore.v1beta.DataprocMetastoreFederation/UpdateFederation', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualApiRequestObject->getFederation();
+ $this->assertProtobufEquals($federation, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateFederationTest');
+ $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 updateFederationExceptionTest()
+ {
+ $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/updateFederationTest');
+ $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();
+ $federation = new Federation();
+ $response = $gapicClient->updateFederation($updateMask, $federation);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateFederationTest');
+ 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);
+ $response = $gapicClient->getLocation();
+ $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);
+ try {
+ $gapicClient->getLocation();
+ // 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);
+ $response = $gapicClient->listLocations();
+ $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);
+ try {
+ $gapicClient->listLocations();
+ // 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 getIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $version = 351608024;
+ $etag = '21';
+ $expectedResponse = new Policy();
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $response = $gapicClient->getIamPolicy($resource);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/GetIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getIamPolicyExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ try {
+ $gapicClient->getIamPolicy($resource);
+ // 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 setIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $version = 351608024;
+ $etag = '21';
+ $expectedResponse = new Policy();
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $policy = new Policy();
+ $response = $gapicClient->setIamPolicy($resource, $policy);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/SetIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $actualValue = $actualRequestObject->getPolicy();
+ $this->assertProtobufEquals($policy, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function setIamPolicyExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ $policy = new Policy();
+ try {
+ $gapicClient->setIamPolicy($resource, $policy);
+ // 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 testIamPermissionsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new TestIamPermissionsResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $permissions = [];
+ $response = $gapicClient->testIamPermissions($resource, $permissions);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/TestIamPermissions', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $actualValue = $actualRequestObject->getPermissions();
+ $this->assertProtobufEquals($permissions, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function testIamPermissionsExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ $permissions = [];
+ try {
+ $gapicClient->testIamPermissions($resource, $permissions);
+ // 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());
+ }
+}
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/GPBMetadata/Google/Datastore/Admin/V1/DatastoreAdmin.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/GPBMetadata/Google/Datastore/Admin/V1/DatastoreAdmin.php
new file mode 100644
index 000000000000..b83cde9487af
Binary files /dev/null and b/owl-bot-staging/DatastoreAdmin/v1/proto/src/GPBMetadata/Google/Datastore/Admin/V1/DatastoreAdmin.php differ
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/GPBMetadata/Google/Datastore/Admin/V1/Index.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/GPBMetadata/Google/Datastore/Admin/V1/Index.php
new file mode 100644
index 000000000000..b0ddf381e8df
Binary files /dev/null and b/owl-bot-staging/DatastoreAdmin/v1/proto/src/GPBMetadata/Google/Datastore/Admin/V1/Index.php differ
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/GPBMetadata/Google/Datastore/Admin/V1/Migration.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/GPBMetadata/Google/Datastore/Admin/V1/Migration.php
new file mode 100644
index 000000000000..53596831cf26
Binary files /dev/null and b/owl-bot-staging/DatastoreAdmin/v1/proto/src/GPBMetadata/Google/Datastore/Admin/V1/Migration.php differ
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/CommonMetadata.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/CommonMetadata.php
new file mode 100644
index 000000000000..dcfe0430c233
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/CommonMetadata.php
@@ -0,0 +1,231 @@
+google.datastore.admin.v1.CommonMetadata
+ */
+class CommonMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The time that work began on the operation.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 1;
+ */
+ protected $start_time = null;
+ /**
+ * The time the operation ended, either successfully or otherwise.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2;
+ */
+ protected $end_time = null;
+ /**
+ * The type of the operation. Can be used as a filter in
+ * ListOperationsRequest.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.OperationType operation_type = 3;
+ */
+ protected $operation_type = 0;
+ /**
+ * The client-assigned labels which were provided when the operation was
+ * created. May also include additional labels.
+ *
+ * Generated from protobuf field map labels = 4;
+ */
+ private $labels;
+ /**
+ * The current state of the Operation.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.CommonMetadata.State state = 5;
+ */
+ protected $state = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Timestamp $start_time
+ * The time that work began on the operation.
+ * @type \Google\Protobuf\Timestamp $end_time
+ * The time the operation ended, either successfully or otherwise.
+ * @type int $operation_type
+ * The type of the operation. Can be used as a filter in
+ * ListOperationsRequest.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * The client-assigned labels which were provided when the operation was
+ * created. May also include additional labels.
+ * @type int $state
+ * The current state of the Operation.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Datastore\Admin\V1\DatastoreAdmin::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The time that work began on the operation.
+ *
+ * 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 time that work began on the operation.
+ *
+ * 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 time the operation ended, either successfully or otherwise.
+ *
+ * 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 time the operation ended, either successfully or otherwise.
+ *
+ * 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 type of the operation. Can be used as a filter in
+ * ListOperationsRequest.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.OperationType operation_type = 3;
+ * @return int
+ */
+ public function getOperationType()
+ {
+ return $this->operation_type;
+ }
+
+ /**
+ * The type of the operation. Can be used as a filter in
+ * ListOperationsRequest.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.OperationType operation_type = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setOperationType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Datastore\Admin\V1\OperationType::class);
+ $this->operation_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * The client-assigned labels which were provided when the operation was
+ * created. May also include additional labels.
+ *
+ * Generated from protobuf field map labels = 4;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * The client-assigned labels which were provided when the operation was
+ * created. May also include additional labels.
+ *
+ * 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;
+ }
+
+ /**
+ * The current state of the Operation.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.CommonMetadata.State state = 5;
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * The current state of the Operation.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.CommonMetadata.State state = 5;
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Datastore\Admin\V1\CommonMetadata\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/CommonMetadata/State.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/CommonMetadata/State.php
new file mode 100644
index 000000000000..d4285dea144b
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/CommonMetadata/State.php
@@ -0,0 +1,101 @@
+google.datastore.admin.v1.CommonMetadata.State
+ */
+class State
+{
+ /**
+ * Unspecified.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * Request is being prepared for processing.
+ *
+ * Generated from protobuf enum INITIALIZING = 1;
+ */
+ const INITIALIZING = 1;
+ /**
+ * Request is actively being processed.
+ *
+ * Generated from protobuf enum PROCESSING = 2;
+ */
+ const PROCESSING = 2;
+ /**
+ * Request is in the process of being cancelled after user called
+ * google.longrunning.Operations.CancelOperation on the operation.
+ *
+ * Generated from protobuf enum CANCELLING = 3;
+ */
+ const CANCELLING = 3;
+ /**
+ * Request has been processed and is in its finalization stage.
+ *
+ * Generated from protobuf enum FINALIZING = 4;
+ */
+ const FINALIZING = 4;
+ /**
+ * Request has completed successfully.
+ *
+ * Generated from protobuf enum SUCCESSFUL = 5;
+ */
+ const SUCCESSFUL = 5;
+ /**
+ * Request has finished being processed, but encountered an error.
+ *
+ * Generated from protobuf enum FAILED = 6;
+ */
+ const FAILED = 6;
+ /**
+ * Request has finished being cancelled after user called
+ * google.longrunning.Operations.CancelOperation.
+ *
+ * Generated from protobuf enum CANCELLED = 7;
+ */
+ const CANCELLED = 7;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::INITIALIZING => 'INITIALIZING',
+ self::PROCESSING => 'PROCESSING',
+ self::CANCELLING => 'CANCELLING',
+ self::FINALIZING => 'FINALIZING',
+ self::SUCCESSFUL => 'SUCCESSFUL',
+ self::FAILED => 'FAILED',
+ self::CANCELLED => 'CANCELLED',
+ ];
+
+ 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\Datastore\Admin\V1\CommonMetadata_State::class);
+
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/CommonMetadata_State.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/CommonMetadata_State.php
new file mode 100644
index 000000000000..a45f91e926fb
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/CommonMetadata_State.php
@@ -0,0 +1,16 @@
+google.datastore.admin.v1.CreateIndexRequest
+ */
+class CreateIndexRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Project ID against which to make the request.
+ *
+ * Generated from protobuf field string project_id = 1;
+ */
+ protected $project_id = '';
+ /**
+ * The index to create. The name and state fields are output only and will be
+ * ignored. Single property indexes cannot be created or deleted.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Index index = 3;
+ */
+ protected $index = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $project_id
+ * Project ID against which to make the request.
+ * @type \Google\Cloud\Datastore\Admin\V1\Index $index
+ * The index to create. The name and state fields are output only and will be
+ * ignored. Single property indexes cannot be created or deleted.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Datastore\Admin\V1\DatastoreAdmin::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Project ID against which to make the request.
+ *
+ * Generated from protobuf field string project_id = 1;
+ * @return string
+ */
+ public function getProjectId()
+ {
+ return $this->project_id;
+ }
+
+ /**
+ * Project ID against which to make the request.
+ *
+ * Generated from protobuf field string project_id = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setProjectId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->project_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The index to create. The name and state fields are output only and will be
+ * ignored. Single property indexes cannot be created or deleted.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Index index = 3;
+ * @return \Google\Cloud\Datastore\Admin\V1\Index|null
+ */
+ public function getIndex()
+ {
+ return $this->index;
+ }
+
+ public function hasIndex()
+ {
+ return isset($this->index);
+ }
+
+ public function clearIndex()
+ {
+ unset($this->index);
+ }
+
+ /**
+ * The index to create. The name and state fields are output only and will be
+ * ignored. Single property indexes cannot be created or deleted.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Index index = 3;
+ * @param \Google\Cloud\Datastore\Admin\V1\Index $var
+ * @return $this
+ */
+ public function setIndex($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Datastore\Admin\V1\Index::class);
+ $this->index = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/DatastoreAdminGrpcClient.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/DatastoreAdminGrpcClient.php
new file mode 100644
index 000000000000..caa6f90837da
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/DatastoreAdminGrpcClient.php
@@ -0,0 +1,220 @@
+_simpleRequest('/google.datastore.admin.v1.DatastoreAdmin/ExportEntities',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Imports entities into Google Cloud Datastore. Existing entities with the
+ * same key are overwritten. The import occurs in the background and its
+ * progress can be monitored and managed via the Operation resource that is
+ * created. If an ImportEntities operation is cancelled, it is possible
+ * that a subset of the data has already been imported to Cloud Datastore.
+ * @param \Google\Cloud\Datastore\Admin\V1\ImportEntitiesRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ImportEntities(\Google\Cloud\Datastore\Admin\V1\ImportEntitiesRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.datastore.admin.v1.DatastoreAdmin/ImportEntities',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Creates the specified index.
+ * A newly created index's initial state is `CREATING`. On completion of the
+ * returned [google.longrunning.Operation][google.longrunning.Operation], the state will be `READY`.
+ * If the index already exists, the call will return an `ALREADY_EXISTS`
+ * status.
+ *
+ * During index creation, the process could result in an error, in which
+ * case the index will move to the `ERROR` state. The process can be recovered
+ * by fixing the data that caused the error, removing the index with
+ * [delete][google.datastore.admin.v1.DatastoreAdmin.DeleteIndex], then
+ * re-creating the index with [create]
+ * [google.datastore.admin.v1.DatastoreAdmin.CreateIndex].
+ *
+ * Indexes with a single property cannot be created.
+ * @param \Google\Cloud\Datastore\Admin\V1\CreateIndexRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CreateIndex(\Google\Cloud\Datastore\Admin\V1\CreateIndexRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.datastore.admin.v1.DatastoreAdmin/CreateIndex',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Deletes an existing index.
+ * An index can only be deleted if it is in a `READY` or `ERROR` state. On
+ * successful execution of the request, the index will be in a `DELETING`
+ * [state][google.datastore.admin.v1.Index.State]. And on completion of the
+ * returned [google.longrunning.Operation][google.longrunning.Operation], the index will be removed.
+ *
+ * During index deletion, the process could result in an error, in which
+ * case the index will move to the `ERROR` state. The process can be recovered
+ * by fixing the data that caused the error, followed by calling
+ * [delete][google.datastore.admin.v1.DatastoreAdmin.DeleteIndex] again.
+ * @param \Google\Cloud\Datastore\Admin\V1\DeleteIndexRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function DeleteIndex(\Google\Cloud\Datastore\Admin\V1\DeleteIndexRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.datastore.admin.v1.DatastoreAdmin/DeleteIndex',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Gets an index.
+ * @param \Google\Cloud\Datastore\Admin\V1\GetIndexRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetIndex(\Google\Cloud\Datastore\Admin\V1\GetIndexRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.datastore.admin.v1.DatastoreAdmin/GetIndex',
+ $argument,
+ ['\Google\Cloud\Datastore\Admin\V1\Index', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Lists the indexes that match the specified filters. Datastore uses an
+ * eventually consistent query to fetch the list of indexes and may
+ * occasionally return stale results.
+ * @param \Google\Cloud\Datastore\Admin\V1\ListIndexesRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ListIndexes(\Google\Cloud\Datastore\Admin\V1\ListIndexesRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.datastore.admin.v1.DatastoreAdmin/ListIndexes',
+ $argument,
+ ['\Google\Cloud\Datastore\Admin\V1\ListIndexesResponse', 'decode'],
+ $metadata, $options);
+ }
+
+}
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/DatastoreFirestoreMigrationMetadata.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/DatastoreFirestoreMigrationMetadata.php
new file mode 100644
index 000000000000..eac72af58463
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/DatastoreFirestoreMigrationMetadata.php
@@ -0,0 +1,114 @@
+google.datastore.admin.v1.DatastoreFirestoreMigrationMetadata
+ */
+class DatastoreFirestoreMigrationMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The current state of migration from Cloud Datastore to Cloud Firestore in
+ * Datastore mode.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.MigrationState migration_state = 1;
+ */
+ protected $migration_state = 0;
+ /**
+ * The current step of migration from Cloud Datastore to Cloud Firestore in
+ * Datastore mode.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.MigrationStep migration_step = 2;
+ */
+ protected $migration_step = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $migration_state
+ * The current state of migration from Cloud Datastore to Cloud Firestore in
+ * Datastore mode.
+ * @type int $migration_step
+ * The current step of migration from Cloud Datastore to Cloud Firestore in
+ * Datastore mode.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Datastore\Admin\V1\DatastoreAdmin::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The current state of migration from Cloud Datastore to Cloud Firestore in
+ * Datastore mode.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.MigrationState migration_state = 1;
+ * @return int
+ */
+ public function getMigrationState()
+ {
+ return $this->migration_state;
+ }
+
+ /**
+ * The current state of migration from Cloud Datastore to Cloud Firestore in
+ * Datastore mode.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.MigrationState migration_state = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setMigrationState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Datastore\Admin\V1\MigrationState::class);
+ $this->migration_state = $var;
+
+ return $this;
+ }
+
+ /**
+ * The current step of migration from Cloud Datastore to Cloud Firestore in
+ * Datastore mode.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.MigrationStep migration_step = 2;
+ * @return int
+ */
+ public function getMigrationStep()
+ {
+ return $this->migration_step;
+ }
+
+ /**
+ * The current step of migration from Cloud Datastore to Cloud Firestore in
+ * Datastore mode.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.MigrationStep migration_step = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setMigrationStep($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Datastore\Admin\V1\MigrationStep::class);
+ $this->migration_step = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/DeleteIndexRequest.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/DeleteIndexRequest.php
new file mode 100644
index 000000000000..330322229f48
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/DeleteIndexRequest.php
@@ -0,0 +1,102 @@
+google.datastore.admin.v1.DeleteIndexRequest
+ */
+class DeleteIndexRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Project ID against which to make the request.
+ *
+ * Generated from protobuf field string project_id = 1;
+ */
+ protected $project_id = '';
+ /**
+ * The resource ID of the index to delete.
+ *
+ * Generated from protobuf field string index_id = 3;
+ */
+ protected $index_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $project_id
+ * Project ID against which to make the request.
+ * @type string $index_id
+ * The resource ID of the index to delete.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Datastore\Admin\V1\DatastoreAdmin::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Project ID against which to make the request.
+ *
+ * Generated from protobuf field string project_id = 1;
+ * @return string
+ */
+ public function getProjectId()
+ {
+ return $this->project_id;
+ }
+
+ /**
+ * Project ID against which to make the request.
+ *
+ * Generated from protobuf field string project_id = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setProjectId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->project_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The resource ID of the index to delete.
+ *
+ * Generated from protobuf field string index_id = 3;
+ * @return string
+ */
+ public function getIndexId()
+ {
+ return $this->index_id;
+ }
+
+ /**
+ * The resource ID of the index to delete.
+ *
+ * Generated from protobuf field string index_id = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setIndexId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->index_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/EntityFilter.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/EntityFilter.php
new file mode 100644
index 000000000000..c03b62ee37e7
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/EntityFilter.php
@@ -0,0 +1,134 @@
+google.datastore.admin.v1.EntityFilter
+ */
+class EntityFilter extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * If empty, then this represents all kinds.
+ *
+ * Generated from protobuf field repeated string kinds = 1;
+ */
+ private $kinds;
+ /**
+ * An empty list represents all namespaces. This is the preferred
+ * usage for projects that don't use namespaces.
+ * An empty string element represents the default namespace. This should be
+ * used if the project has data in non-default namespaces, but doesn't want to
+ * include them.
+ * Each namespace in this list must be unique.
+ *
+ * Generated from protobuf field repeated string namespace_ids = 2;
+ */
+ private $namespace_ids;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $kinds
+ * If empty, then this represents all kinds.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $namespace_ids
+ * An empty list represents all namespaces. This is the preferred
+ * usage for projects that don't use namespaces.
+ * An empty string element represents the default namespace. This should be
+ * used if the project has data in non-default namespaces, but doesn't want to
+ * include them.
+ * Each namespace in this list must be unique.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Datastore\Admin\V1\DatastoreAdmin::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * If empty, then this represents all kinds.
+ *
+ * Generated from protobuf field repeated string kinds = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getKinds()
+ {
+ return $this->kinds;
+ }
+
+ /**
+ * If empty, then this represents all kinds.
+ *
+ * Generated from protobuf field repeated string kinds = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setKinds($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->kinds = $arr;
+
+ return $this;
+ }
+
+ /**
+ * An empty list represents all namespaces. This is the preferred
+ * usage for projects that don't use namespaces.
+ * An empty string element represents the default namespace. This should be
+ * used if the project has data in non-default namespaces, but doesn't want to
+ * include them.
+ * Each namespace in this list must be unique.
+ *
+ * Generated from protobuf field repeated string namespace_ids = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getNamespaceIds()
+ {
+ return $this->namespace_ids;
+ }
+
+ /**
+ * An empty list represents all namespaces. This is the preferred
+ * usage for projects that don't use namespaces.
+ * An empty string element represents the default namespace. This should be
+ * used if the project has data in non-default namespaces, but doesn't want to
+ * include them.
+ * Each namespace in this list must be unique.
+ *
+ * Generated from protobuf field repeated string namespace_ids = 2;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setNamespaceIds($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->namespace_ids = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/ExportEntitiesMetadata.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/ExportEntitiesMetadata.php
new file mode 100644
index 000000000000..72554a9ea05e
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/ExportEntitiesMetadata.php
@@ -0,0 +1,259 @@
+google.datastore.admin.v1.ExportEntitiesMetadata
+ */
+class ExportEntitiesMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Metadata common to all Datastore Admin operations.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.CommonMetadata common = 1;
+ */
+ protected $common = null;
+ /**
+ * An estimate of the number of entities processed.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Progress progress_entities = 2;
+ */
+ protected $progress_entities = null;
+ /**
+ * An estimate of the number of bytes processed.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Progress progress_bytes = 3;
+ */
+ protected $progress_bytes = null;
+ /**
+ * Description of which entities are being exported.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.EntityFilter entity_filter = 4;
+ */
+ protected $entity_filter = null;
+ /**
+ * Location for the export metadata and data files. This will be the same
+ * value as the
+ * [google.datastore.admin.v1.ExportEntitiesRequest.output_url_prefix][google.datastore.admin.v1.ExportEntitiesRequest.output_url_prefix]
+ * field. The final output location is provided in
+ * [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url].
+ *
+ * Generated from protobuf field string output_url_prefix = 5;
+ */
+ protected $output_url_prefix = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Datastore\Admin\V1\CommonMetadata $common
+ * Metadata common to all Datastore Admin operations.
+ * @type \Google\Cloud\Datastore\Admin\V1\Progress $progress_entities
+ * An estimate of the number of entities processed.
+ * @type \Google\Cloud\Datastore\Admin\V1\Progress $progress_bytes
+ * An estimate of the number of bytes processed.
+ * @type \Google\Cloud\Datastore\Admin\V1\EntityFilter $entity_filter
+ * Description of which entities are being exported.
+ * @type string $output_url_prefix
+ * Location for the export metadata and data files. This will be the same
+ * value as the
+ * [google.datastore.admin.v1.ExportEntitiesRequest.output_url_prefix][google.datastore.admin.v1.ExportEntitiesRequest.output_url_prefix]
+ * field. The final output location is provided in
+ * [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url].
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Datastore\Admin\V1\DatastoreAdmin::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Metadata common to all Datastore Admin operations.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.CommonMetadata common = 1;
+ * @return \Google\Cloud\Datastore\Admin\V1\CommonMetadata|null
+ */
+ public function getCommon()
+ {
+ return $this->common;
+ }
+
+ public function hasCommon()
+ {
+ return isset($this->common);
+ }
+
+ public function clearCommon()
+ {
+ unset($this->common);
+ }
+
+ /**
+ * Metadata common to all Datastore Admin operations.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.CommonMetadata common = 1;
+ * @param \Google\Cloud\Datastore\Admin\V1\CommonMetadata $var
+ * @return $this
+ */
+ public function setCommon($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Datastore\Admin\V1\CommonMetadata::class);
+ $this->common = $var;
+
+ return $this;
+ }
+
+ /**
+ * An estimate of the number of entities processed.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Progress progress_entities = 2;
+ * @return \Google\Cloud\Datastore\Admin\V1\Progress|null
+ */
+ public function getProgressEntities()
+ {
+ return $this->progress_entities;
+ }
+
+ public function hasProgressEntities()
+ {
+ return isset($this->progress_entities);
+ }
+
+ public function clearProgressEntities()
+ {
+ unset($this->progress_entities);
+ }
+
+ /**
+ * An estimate of the number of entities processed.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Progress progress_entities = 2;
+ * @param \Google\Cloud\Datastore\Admin\V1\Progress $var
+ * @return $this
+ */
+ public function setProgressEntities($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Datastore\Admin\V1\Progress::class);
+ $this->progress_entities = $var;
+
+ return $this;
+ }
+
+ /**
+ * An estimate of the number of bytes processed.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Progress progress_bytes = 3;
+ * @return \Google\Cloud\Datastore\Admin\V1\Progress|null
+ */
+ public function getProgressBytes()
+ {
+ return $this->progress_bytes;
+ }
+
+ public function hasProgressBytes()
+ {
+ return isset($this->progress_bytes);
+ }
+
+ public function clearProgressBytes()
+ {
+ unset($this->progress_bytes);
+ }
+
+ /**
+ * An estimate of the number of bytes processed.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Progress progress_bytes = 3;
+ * @param \Google\Cloud\Datastore\Admin\V1\Progress $var
+ * @return $this
+ */
+ public function setProgressBytes($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Datastore\Admin\V1\Progress::class);
+ $this->progress_bytes = $var;
+
+ return $this;
+ }
+
+ /**
+ * Description of which entities are being exported.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.EntityFilter entity_filter = 4;
+ * @return \Google\Cloud\Datastore\Admin\V1\EntityFilter|null
+ */
+ public function getEntityFilter()
+ {
+ return $this->entity_filter;
+ }
+
+ public function hasEntityFilter()
+ {
+ return isset($this->entity_filter);
+ }
+
+ public function clearEntityFilter()
+ {
+ unset($this->entity_filter);
+ }
+
+ /**
+ * Description of which entities are being exported.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.EntityFilter entity_filter = 4;
+ * @param \Google\Cloud\Datastore\Admin\V1\EntityFilter $var
+ * @return $this
+ */
+ public function setEntityFilter($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Datastore\Admin\V1\EntityFilter::class);
+ $this->entity_filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * Location for the export metadata and data files. This will be the same
+ * value as the
+ * [google.datastore.admin.v1.ExportEntitiesRequest.output_url_prefix][google.datastore.admin.v1.ExportEntitiesRequest.output_url_prefix]
+ * field. The final output location is provided in
+ * [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url].
+ *
+ * Generated from protobuf field string output_url_prefix = 5;
+ * @return string
+ */
+ public function getOutputUrlPrefix()
+ {
+ return $this->output_url_prefix;
+ }
+
+ /**
+ * Location for the export metadata and data files. This will be the same
+ * value as the
+ * [google.datastore.admin.v1.ExportEntitiesRequest.output_url_prefix][google.datastore.admin.v1.ExportEntitiesRequest.output_url_prefix]
+ * field. The final output location is provided in
+ * [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url].
+ *
+ * Generated from protobuf field string output_url_prefix = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setOutputUrlPrefix($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->output_url_prefix = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/ExportEntitiesRequest.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/ExportEntitiesRequest.php
new file mode 100644
index 000000000000..6101ab0fd7a9
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/ExportEntitiesRequest.php
@@ -0,0 +1,272 @@
+google.datastore.admin.v1.ExportEntitiesRequest
+ */
+class ExportEntitiesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Project ID against which to make the request.
+ *
+ * Generated from protobuf field string project_id = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $project_id = '';
+ /**
+ * Client-assigned labels.
+ *
+ * Generated from protobuf field map labels = 2;
+ */
+ private $labels;
+ /**
+ * Description of what data from the project is included in the export.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.EntityFilter entity_filter = 3;
+ */
+ protected $entity_filter = null;
+ /**
+ * Required. Location for the export metadata and data files.
+ * The full resource URL of the external storage location. Currently, only
+ * Google Cloud Storage is supported. So output_url_prefix should be of the
+ * form: `gs://BUCKET_NAME[/NAMESPACE_PATH]`, where `BUCKET_NAME` is the
+ * name of the Cloud Storage bucket and `NAMESPACE_PATH` is an optional Cloud
+ * Storage namespace path (this is not a Cloud Datastore namespace). For more
+ * information about Cloud Storage namespace paths, see
+ * [Object name
+ * considerations](https://cloud.google.com/storage/docs/naming#object-considerations).
+ * The resulting files will be nested deeper than the specified URL prefix.
+ * The final output URL will be provided in the
+ * [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url] field. That
+ * value should be used for subsequent ImportEntities operations.
+ * By nesting the data files deeper, the same Cloud Storage bucket can be used
+ * in multiple ExportEntities operations without conflict.
+ *
+ * Generated from protobuf field string output_url_prefix = 4 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $output_url_prefix = '';
+
+ /**
+ * @param string $projectId Required. Project ID against which to make the request.
+ * @param array $labels Client-assigned labels.
+ * @param \Google\Cloud\Datastore\Admin\V1\EntityFilter $entityFilter Description of what data from the project is included in the export.
+ * @param string $outputUrlPrefix Required. Location for the export metadata and data files.
+ *
+ * The full resource URL of the external storage location. Currently, only
+ * Google Cloud Storage is supported. So output_url_prefix should be of the
+ * form: `gs://BUCKET_NAME[/NAMESPACE_PATH]`, where `BUCKET_NAME` is the
+ * name of the Cloud Storage bucket and `NAMESPACE_PATH` is an optional Cloud
+ * Storage namespace path (this is not a Cloud Datastore namespace). For more
+ * information about Cloud Storage namespace paths, see
+ * [Object name
+ * considerations](https://cloud.google.com/storage/docs/naming#object-considerations).
+ *
+ * The resulting files will be nested deeper than the specified URL prefix.
+ * The final output URL will be provided in the
+ * [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url] field. That
+ * value should be used for subsequent ImportEntities operations.
+ *
+ * By nesting the data files deeper, the same Cloud Storage bucket can be used
+ * in multiple ExportEntities operations without conflict.
+ *
+ * @return \Google\Cloud\Datastore\Admin\V1\ExportEntitiesRequest
+ *
+ * @experimental
+ */
+ public static function build(string $projectId, array $labels, \Google\Cloud\Datastore\Admin\V1\EntityFilter $entityFilter, string $outputUrlPrefix): self
+ {
+ return (new self())
+ ->setProjectId($projectId)
+ ->setLabels($labels)
+ ->setEntityFilter($entityFilter)
+ ->setOutputUrlPrefix($outputUrlPrefix);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $project_id
+ * Required. Project ID against which to make the request.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * Client-assigned labels.
+ * @type \Google\Cloud\Datastore\Admin\V1\EntityFilter $entity_filter
+ * Description of what data from the project is included in the export.
+ * @type string $output_url_prefix
+ * Required. Location for the export metadata and data files.
+ * The full resource URL of the external storage location. Currently, only
+ * Google Cloud Storage is supported. So output_url_prefix should be of the
+ * form: `gs://BUCKET_NAME[/NAMESPACE_PATH]`, where `BUCKET_NAME` is the
+ * name of the Cloud Storage bucket and `NAMESPACE_PATH` is an optional Cloud
+ * Storage namespace path (this is not a Cloud Datastore namespace). For more
+ * information about Cloud Storage namespace paths, see
+ * [Object name
+ * considerations](https://cloud.google.com/storage/docs/naming#object-considerations).
+ * The resulting files will be nested deeper than the specified URL prefix.
+ * The final output URL will be provided in the
+ * [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url] field. That
+ * value should be used for subsequent ImportEntities operations.
+ * By nesting the data files deeper, the same Cloud Storage bucket can be used
+ * in multiple ExportEntities operations without conflict.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Datastore\Admin\V1\DatastoreAdmin::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Project ID against which to make the request.
+ *
+ * Generated from protobuf field string project_id = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getProjectId()
+ {
+ return $this->project_id;
+ }
+
+ /**
+ * Required. Project ID against which to make the request.
+ *
+ * Generated from protobuf field string project_id = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setProjectId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->project_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Client-assigned labels.
+ *
+ * Generated from protobuf field map labels = 2;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * Client-assigned labels.
+ *
+ * Generated from protobuf field map labels = 2;
+ * @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;
+ }
+
+ /**
+ * Description of what data from the project is included in the export.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.EntityFilter entity_filter = 3;
+ * @return \Google\Cloud\Datastore\Admin\V1\EntityFilter|null
+ */
+ public function getEntityFilter()
+ {
+ return $this->entity_filter;
+ }
+
+ public function hasEntityFilter()
+ {
+ return isset($this->entity_filter);
+ }
+
+ public function clearEntityFilter()
+ {
+ unset($this->entity_filter);
+ }
+
+ /**
+ * Description of what data from the project is included in the export.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.EntityFilter entity_filter = 3;
+ * @param \Google\Cloud\Datastore\Admin\V1\EntityFilter $var
+ * @return $this
+ */
+ public function setEntityFilter($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Datastore\Admin\V1\EntityFilter::class);
+ $this->entity_filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Location for the export metadata and data files.
+ * The full resource URL of the external storage location. Currently, only
+ * Google Cloud Storage is supported. So output_url_prefix should be of the
+ * form: `gs://BUCKET_NAME[/NAMESPACE_PATH]`, where `BUCKET_NAME` is the
+ * name of the Cloud Storage bucket and `NAMESPACE_PATH` is an optional Cloud
+ * Storage namespace path (this is not a Cloud Datastore namespace). For more
+ * information about Cloud Storage namespace paths, see
+ * [Object name
+ * considerations](https://cloud.google.com/storage/docs/naming#object-considerations).
+ * The resulting files will be nested deeper than the specified URL prefix.
+ * The final output URL will be provided in the
+ * [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url] field. That
+ * value should be used for subsequent ImportEntities operations.
+ * By nesting the data files deeper, the same Cloud Storage bucket can be used
+ * in multiple ExportEntities operations without conflict.
+ *
+ * Generated from protobuf field string output_url_prefix = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getOutputUrlPrefix()
+ {
+ return $this->output_url_prefix;
+ }
+
+ /**
+ * Required. Location for the export metadata and data files.
+ * The full resource URL of the external storage location. Currently, only
+ * Google Cloud Storage is supported. So output_url_prefix should be of the
+ * form: `gs://BUCKET_NAME[/NAMESPACE_PATH]`, where `BUCKET_NAME` is the
+ * name of the Cloud Storage bucket and `NAMESPACE_PATH` is an optional Cloud
+ * Storage namespace path (this is not a Cloud Datastore namespace). For more
+ * information about Cloud Storage namespace paths, see
+ * [Object name
+ * considerations](https://cloud.google.com/storage/docs/naming#object-considerations).
+ * The resulting files will be nested deeper than the specified URL prefix.
+ * The final output URL will be provided in the
+ * [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url] field. That
+ * value should be used for subsequent ImportEntities operations.
+ * By nesting the data files deeper, the same Cloud Storage bucket can be used
+ * in multiple ExportEntities operations without conflict.
+ *
+ * Generated from protobuf field string output_url_prefix = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setOutputUrlPrefix($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->output_url_prefix = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/ExportEntitiesResponse.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/ExportEntitiesResponse.php
new file mode 100644
index 000000000000..f7e9ac101543
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/ExportEntitiesResponse.php
@@ -0,0 +1,80 @@
+google.datastore.admin.v1.ExportEntitiesResponse
+ */
+class ExportEntitiesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Location of the output metadata file. This can be used to begin an import
+ * into Cloud Datastore (this project or another project). See
+ * [google.datastore.admin.v1.ImportEntitiesRequest.input_url][google.datastore.admin.v1.ImportEntitiesRequest.input_url].
+ * Only present if the operation completed successfully.
+ *
+ * Generated from protobuf field string output_url = 1;
+ */
+ protected $output_url = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $output_url
+ * Location of the output metadata file. This can be used to begin an import
+ * into Cloud Datastore (this project or another project). See
+ * [google.datastore.admin.v1.ImportEntitiesRequest.input_url][google.datastore.admin.v1.ImportEntitiesRequest.input_url].
+ * Only present if the operation completed successfully.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Datastore\Admin\V1\DatastoreAdmin::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Location of the output metadata file. This can be used to begin an import
+ * into Cloud Datastore (this project or another project). See
+ * [google.datastore.admin.v1.ImportEntitiesRequest.input_url][google.datastore.admin.v1.ImportEntitiesRequest.input_url].
+ * Only present if the operation completed successfully.
+ *
+ * Generated from protobuf field string output_url = 1;
+ * @return string
+ */
+ public function getOutputUrl()
+ {
+ return $this->output_url;
+ }
+
+ /**
+ * Location of the output metadata file. This can be used to begin an import
+ * into Cloud Datastore (this project or another project). See
+ * [google.datastore.admin.v1.ImportEntitiesRequest.input_url][google.datastore.admin.v1.ImportEntitiesRequest.input_url].
+ * Only present if the operation completed successfully.
+ *
+ * Generated from protobuf field string output_url = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setOutputUrl($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->output_url = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/GetIndexRequest.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/GetIndexRequest.php
new file mode 100644
index 000000000000..0f73f4cafac2
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/GetIndexRequest.php
@@ -0,0 +1,101 @@
+google.datastore.admin.v1.GetIndexRequest
+ */
+class GetIndexRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Project ID against which to make the request.
+ *
+ * Generated from protobuf field string project_id = 1;
+ */
+ protected $project_id = '';
+ /**
+ * The resource ID of the index to get.
+ *
+ * Generated from protobuf field string index_id = 3;
+ */
+ protected $index_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $project_id
+ * Project ID against which to make the request.
+ * @type string $index_id
+ * The resource ID of the index to get.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Datastore\Admin\V1\DatastoreAdmin::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Project ID against which to make the request.
+ *
+ * Generated from protobuf field string project_id = 1;
+ * @return string
+ */
+ public function getProjectId()
+ {
+ return $this->project_id;
+ }
+
+ /**
+ * Project ID against which to make the request.
+ *
+ * Generated from protobuf field string project_id = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setProjectId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->project_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The resource ID of the index to get.
+ *
+ * Generated from protobuf field string index_id = 3;
+ * @return string
+ */
+ public function getIndexId()
+ {
+ return $this->index_id;
+ }
+
+ /**
+ * The resource ID of the index to get.
+ *
+ * Generated from protobuf field string index_id = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setIndexId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->index_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/ImportEntitiesMetadata.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/ImportEntitiesMetadata.php
new file mode 100644
index 000000000000..9a6983928986
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/ImportEntitiesMetadata.php
@@ -0,0 +1,247 @@
+google.datastore.admin.v1.ImportEntitiesMetadata
+ */
+class ImportEntitiesMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Metadata common to all Datastore Admin operations.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.CommonMetadata common = 1;
+ */
+ protected $common = null;
+ /**
+ * An estimate of the number of entities processed.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Progress progress_entities = 2;
+ */
+ protected $progress_entities = null;
+ /**
+ * An estimate of the number of bytes processed.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Progress progress_bytes = 3;
+ */
+ protected $progress_bytes = null;
+ /**
+ * Description of which entities are being imported.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.EntityFilter entity_filter = 4;
+ */
+ protected $entity_filter = null;
+ /**
+ * The location of the import metadata file. This will be the same value as
+ * the [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url] field.
+ *
+ * Generated from protobuf field string input_url = 5;
+ */
+ protected $input_url = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Datastore\Admin\V1\CommonMetadata $common
+ * Metadata common to all Datastore Admin operations.
+ * @type \Google\Cloud\Datastore\Admin\V1\Progress $progress_entities
+ * An estimate of the number of entities processed.
+ * @type \Google\Cloud\Datastore\Admin\V1\Progress $progress_bytes
+ * An estimate of the number of bytes processed.
+ * @type \Google\Cloud\Datastore\Admin\V1\EntityFilter $entity_filter
+ * Description of which entities are being imported.
+ * @type string $input_url
+ * The location of the import metadata file. This will be the same value as
+ * the [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url] field.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Datastore\Admin\V1\DatastoreAdmin::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Metadata common to all Datastore Admin operations.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.CommonMetadata common = 1;
+ * @return \Google\Cloud\Datastore\Admin\V1\CommonMetadata|null
+ */
+ public function getCommon()
+ {
+ return $this->common;
+ }
+
+ public function hasCommon()
+ {
+ return isset($this->common);
+ }
+
+ public function clearCommon()
+ {
+ unset($this->common);
+ }
+
+ /**
+ * Metadata common to all Datastore Admin operations.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.CommonMetadata common = 1;
+ * @param \Google\Cloud\Datastore\Admin\V1\CommonMetadata $var
+ * @return $this
+ */
+ public function setCommon($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Datastore\Admin\V1\CommonMetadata::class);
+ $this->common = $var;
+
+ return $this;
+ }
+
+ /**
+ * An estimate of the number of entities processed.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Progress progress_entities = 2;
+ * @return \Google\Cloud\Datastore\Admin\V1\Progress|null
+ */
+ public function getProgressEntities()
+ {
+ return $this->progress_entities;
+ }
+
+ public function hasProgressEntities()
+ {
+ return isset($this->progress_entities);
+ }
+
+ public function clearProgressEntities()
+ {
+ unset($this->progress_entities);
+ }
+
+ /**
+ * An estimate of the number of entities processed.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Progress progress_entities = 2;
+ * @param \Google\Cloud\Datastore\Admin\V1\Progress $var
+ * @return $this
+ */
+ public function setProgressEntities($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Datastore\Admin\V1\Progress::class);
+ $this->progress_entities = $var;
+
+ return $this;
+ }
+
+ /**
+ * An estimate of the number of bytes processed.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Progress progress_bytes = 3;
+ * @return \Google\Cloud\Datastore\Admin\V1\Progress|null
+ */
+ public function getProgressBytes()
+ {
+ return $this->progress_bytes;
+ }
+
+ public function hasProgressBytes()
+ {
+ return isset($this->progress_bytes);
+ }
+
+ public function clearProgressBytes()
+ {
+ unset($this->progress_bytes);
+ }
+
+ /**
+ * An estimate of the number of bytes processed.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Progress progress_bytes = 3;
+ * @param \Google\Cloud\Datastore\Admin\V1\Progress $var
+ * @return $this
+ */
+ public function setProgressBytes($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Datastore\Admin\V1\Progress::class);
+ $this->progress_bytes = $var;
+
+ return $this;
+ }
+
+ /**
+ * Description of which entities are being imported.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.EntityFilter entity_filter = 4;
+ * @return \Google\Cloud\Datastore\Admin\V1\EntityFilter|null
+ */
+ public function getEntityFilter()
+ {
+ return $this->entity_filter;
+ }
+
+ public function hasEntityFilter()
+ {
+ return isset($this->entity_filter);
+ }
+
+ public function clearEntityFilter()
+ {
+ unset($this->entity_filter);
+ }
+
+ /**
+ * Description of which entities are being imported.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.EntityFilter entity_filter = 4;
+ * @param \Google\Cloud\Datastore\Admin\V1\EntityFilter $var
+ * @return $this
+ */
+ public function setEntityFilter($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Datastore\Admin\V1\EntityFilter::class);
+ $this->entity_filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * The location of the import metadata file. This will be the same value as
+ * the [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url] field.
+ *
+ * Generated from protobuf field string input_url = 5;
+ * @return string
+ */
+ public function getInputUrl()
+ {
+ return $this->input_url;
+ }
+
+ /**
+ * The location of the import metadata file. This will be the same value as
+ * the [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url] field.
+ *
+ * Generated from protobuf field string input_url = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setInputUrl($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->input_url = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/ImportEntitiesRequest.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/ImportEntitiesRequest.php
new file mode 100644
index 000000000000..f13247ebe556
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/ImportEntitiesRequest.php
@@ -0,0 +1,270 @@
+google.datastore.admin.v1.ImportEntitiesRequest
+ */
+class ImportEntitiesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Project ID against which to make the request.
+ *
+ * Generated from protobuf field string project_id = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $project_id = '';
+ /**
+ * Client-assigned labels.
+ *
+ * Generated from protobuf field map labels = 2;
+ */
+ private $labels;
+ /**
+ * Required. The full resource URL of the external storage location. Currently, only
+ * Google Cloud Storage is supported. So input_url should be of the form:
+ * `gs://BUCKET_NAME[/NAMESPACE_PATH]/OVERALL_EXPORT_METADATA_FILE`, where
+ * `BUCKET_NAME` is the name of the Cloud Storage bucket, `NAMESPACE_PATH` is
+ * an optional Cloud Storage namespace path (this is not a Cloud Datastore
+ * namespace), and `OVERALL_EXPORT_METADATA_FILE` is the metadata file written
+ * by the ExportEntities operation. For more information about Cloud Storage
+ * namespace paths, see
+ * [Object name
+ * considerations](https://cloud.google.com/storage/docs/naming#object-considerations).
+ * For more information, see
+ * [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url].
+ *
+ * Generated from protobuf field string input_url = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $input_url = '';
+ /**
+ * Optionally specify which kinds/namespaces are to be imported. If provided,
+ * the list must be a subset of the EntityFilter used in creating the export,
+ * otherwise a FAILED_PRECONDITION error will be returned. If no filter is
+ * specified then all entities from the export are imported.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.EntityFilter entity_filter = 4;
+ */
+ protected $entity_filter = null;
+
+ /**
+ * @param string $projectId Required. Project ID against which to make the request.
+ * @param array $labels Client-assigned labels.
+ * @param string $inputUrl Required. The full resource URL of the external storage location. Currently, only
+ * Google Cloud Storage is supported. So input_url should be of the form:
+ * `gs://BUCKET_NAME[/NAMESPACE_PATH]/OVERALL_EXPORT_METADATA_FILE`, where
+ * `BUCKET_NAME` is the name of the Cloud Storage bucket, `NAMESPACE_PATH` is
+ * an optional Cloud Storage namespace path (this is not a Cloud Datastore
+ * namespace), and `OVERALL_EXPORT_METADATA_FILE` is the metadata file written
+ * by the ExportEntities operation. For more information about Cloud Storage
+ * namespace paths, see
+ * [Object name
+ * considerations](https://cloud.google.com/storage/docs/naming#object-considerations).
+ *
+ * For more information, see
+ * [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url].
+ * @param \Google\Cloud\Datastore\Admin\V1\EntityFilter $entityFilter Optionally specify which kinds/namespaces are to be imported. If provided,
+ * the list must be a subset of the EntityFilter used in creating the export,
+ * otherwise a FAILED_PRECONDITION error will be returned. If no filter is
+ * specified then all entities from the export are imported.
+ *
+ * @return \Google\Cloud\Datastore\Admin\V1\ImportEntitiesRequest
+ *
+ * @experimental
+ */
+ public static function build(string $projectId, array $labels, string $inputUrl, \Google\Cloud\Datastore\Admin\V1\EntityFilter $entityFilter): self
+ {
+ return (new self())
+ ->setProjectId($projectId)
+ ->setLabels($labels)
+ ->setInputUrl($inputUrl)
+ ->setEntityFilter($entityFilter);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $project_id
+ * Required. Project ID against which to make the request.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * Client-assigned labels.
+ * @type string $input_url
+ * Required. The full resource URL of the external storage location. Currently, only
+ * Google Cloud Storage is supported. So input_url should be of the form:
+ * `gs://BUCKET_NAME[/NAMESPACE_PATH]/OVERALL_EXPORT_METADATA_FILE`, where
+ * `BUCKET_NAME` is the name of the Cloud Storage bucket, `NAMESPACE_PATH` is
+ * an optional Cloud Storage namespace path (this is not a Cloud Datastore
+ * namespace), and `OVERALL_EXPORT_METADATA_FILE` is the metadata file written
+ * by the ExportEntities operation. For more information about Cloud Storage
+ * namespace paths, see
+ * [Object name
+ * considerations](https://cloud.google.com/storage/docs/naming#object-considerations).
+ * For more information, see
+ * [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url].
+ * @type \Google\Cloud\Datastore\Admin\V1\EntityFilter $entity_filter
+ * Optionally specify which kinds/namespaces are to be imported. If provided,
+ * the list must be a subset of the EntityFilter used in creating the export,
+ * otherwise a FAILED_PRECONDITION error will be returned. If no filter is
+ * specified then all entities from the export are imported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Datastore\Admin\V1\DatastoreAdmin::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Project ID against which to make the request.
+ *
+ * Generated from protobuf field string project_id = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getProjectId()
+ {
+ return $this->project_id;
+ }
+
+ /**
+ * Required. Project ID against which to make the request.
+ *
+ * Generated from protobuf field string project_id = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setProjectId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->project_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Client-assigned labels.
+ *
+ * Generated from protobuf field map labels = 2;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * Client-assigned labels.
+ *
+ * Generated from protobuf field map labels = 2;
+ * @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. The full resource URL of the external storage location. Currently, only
+ * Google Cloud Storage is supported. So input_url should be of the form:
+ * `gs://BUCKET_NAME[/NAMESPACE_PATH]/OVERALL_EXPORT_METADATA_FILE`, where
+ * `BUCKET_NAME` is the name of the Cloud Storage bucket, `NAMESPACE_PATH` is
+ * an optional Cloud Storage namespace path (this is not a Cloud Datastore
+ * namespace), and `OVERALL_EXPORT_METADATA_FILE` is the metadata file written
+ * by the ExportEntities operation. For more information about Cloud Storage
+ * namespace paths, see
+ * [Object name
+ * considerations](https://cloud.google.com/storage/docs/naming#object-considerations).
+ * For more information, see
+ * [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url].
+ *
+ * Generated from protobuf field string input_url = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getInputUrl()
+ {
+ return $this->input_url;
+ }
+
+ /**
+ * Required. The full resource URL of the external storage location. Currently, only
+ * Google Cloud Storage is supported. So input_url should be of the form:
+ * `gs://BUCKET_NAME[/NAMESPACE_PATH]/OVERALL_EXPORT_METADATA_FILE`, where
+ * `BUCKET_NAME` is the name of the Cloud Storage bucket, `NAMESPACE_PATH` is
+ * an optional Cloud Storage namespace path (this is not a Cloud Datastore
+ * namespace), and `OVERALL_EXPORT_METADATA_FILE` is the metadata file written
+ * by the ExportEntities operation. For more information about Cloud Storage
+ * namespace paths, see
+ * [Object name
+ * considerations](https://cloud.google.com/storage/docs/naming#object-considerations).
+ * For more information, see
+ * [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url].
+ *
+ * Generated from protobuf field string input_url = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setInputUrl($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->input_url = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optionally specify which kinds/namespaces are to be imported. If provided,
+ * the list must be a subset of the EntityFilter used in creating the export,
+ * otherwise a FAILED_PRECONDITION error will be returned. If no filter is
+ * specified then all entities from the export are imported.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.EntityFilter entity_filter = 4;
+ * @return \Google\Cloud\Datastore\Admin\V1\EntityFilter|null
+ */
+ public function getEntityFilter()
+ {
+ return $this->entity_filter;
+ }
+
+ public function hasEntityFilter()
+ {
+ return isset($this->entity_filter);
+ }
+
+ public function clearEntityFilter()
+ {
+ unset($this->entity_filter);
+ }
+
+ /**
+ * Optionally specify which kinds/namespaces are to be imported. If provided,
+ * the list must be a subset of the EntityFilter used in creating the export,
+ * otherwise a FAILED_PRECONDITION error will be returned. If no filter is
+ * specified then all entities from the export are imported.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.EntityFilter entity_filter = 4;
+ * @param \Google\Cloud\Datastore\Admin\V1\EntityFilter $var
+ * @return $this
+ */
+ public function setEntityFilter($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Datastore\Admin\V1\EntityFilter::class);
+ $this->entity_filter = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/Index.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/Index.php
new file mode 100644
index 000000000000..1b88f0f6c067
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/Index.php
@@ -0,0 +1,237 @@
+google.datastore.admin.v1.Index
+ */
+class Index extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. Project ID.
+ *
+ * Generated from protobuf field string project_id = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $project_id = '';
+ /**
+ * Output only. The resource ID of the index.
+ *
+ * Generated from protobuf field string index_id = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $index_id = '';
+ /**
+ * Required. The entity kind to which this index applies.
+ *
+ * Generated from protobuf field string kind = 4 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $kind = '';
+ /**
+ * Required. The index's ancestor mode. Must not be ANCESTOR_MODE_UNSPECIFIED.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Index.AncestorMode ancestor = 5 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $ancestor = 0;
+ /**
+ * Required. An ordered sequence of property names and their index attributes.
+ *
+ * Generated from protobuf field repeated .google.datastore.admin.v1.Index.IndexedProperty properties = 6 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $properties;
+ /**
+ * Output only. The state of the index.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Index.State state = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $project_id
+ * Output only. Project ID.
+ * @type string $index_id
+ * Output only. The resource ID of the index.
+ * @type string $kind
+ * Required. The entity kind to which this index applies.
+ * @type int $ancestor
+ * Required. The index's ancestor mode. Must not be ANCESTOR_MODE_UNSPECIFIED.
+ * @type array<\Google\Cloud\Datastore\Admin\V1\Index\IndexedProperty>|\Google\Protobuf\Internal\RepeatedField $properties
+ * Required. An ordered sequence of property names and their index attributes.
+ * @type int $state
+ * Output only. The state of the index.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Datastore\Admin\V1\Index::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Project ID.
+ *
+ * Generated from protobuf field string project_id = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getProjectId()
+ {
+ return $this->project_id;
+ }
+
+ /**
+ * Output only. Project ID.
+ *
+ * Generated from protobuf field string project_id = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setProjectId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->project_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The resource ID of the index.
+ *
+ * Generated from protobuf field string index_id = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getIndexId()
+ {
+ return $this->index_id;
+ }
+
+ /**
+ * Output only. The resource ID of the index.
+ *
+ * Generated from protobuf field string index_id = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setIndexId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->index_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The entity kind to which this index applies.
+ *
+ * Generated from protobuf field string kind = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getKind()
+ {
+ return $this->kind;
+ }
+
+ /**
+ * Required. The entity kind to which this index applies.
+ *
+ * Generated from protobuf field string kind = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setKind($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->kind = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The index's ancestor mode. Must not be ANCESTOR_MODE_UNSPECIFIED.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Index.AncestorMode ancestor = 5 [(.google.api.field_behavior) = REQUIRED];
+ * @return int
+ */
+ public function getAncestor()
+ {
+ return $this->ancestor;
+ }
+
+ /**
+ * Required. The index's ancestor mode. Must not be ANCESTOR_MODE_UNSPECIFIED.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Index.AncestorMode ancestor = 5 [(.google.api.field_behavior) = REQUIRED];
+ * @param int $var
+ * @return $this
+ */
+ public function setAncestor($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Datastore\Admin\V1\Index\AncestorMode::class);
+ $this->ancestor = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. An ordered sequence of property names and their index attributes.
+ *
+ * Generated from protobuf field repeated .google.datastore.admin.v1.Index.IndexedProperty properties = 6 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getProperties()
+ {
+ return $this->properties;
+ }
+
+ /**
+ * Required. An ordered sequence of property names and their index attributes.
+ *
+ * Generated from protobuf field repeated .google.datastore.admin.v1.Index.IndexedProperty properties = 6 [(.google.api.field_behavior) = REQUIRED];
+ * @param array<\Google\Cloud\Datastore\Admin\V1\Index\IndexedProperty>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setProperties($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Datastore\Admin\V1\Index\IndexedProperty::class);
+ $this->properties = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The state of the index.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Index.State state = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The state of the index.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Index.State state = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Datastore\Admin\V1\Index\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/Index/AncestorMode.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/Index/AncestorMode.php
new file mode 100644
index 000000000000..24e87cb45bf3
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/Index/AncestorMode.php
@@ -0,0 +1,65 @@
+google.datastore.admin.v1.Index.AncestorMode
+ */
+class AncestorMode
+{
+ /**
+ * The ancestor mode is unspecified.
+ *
+ * Generated from protobuf enum ANCESTOR_MODE_UNSPECIFIED = 0;
+ */
+ const ANCESTOR_MODE_UNSPECIFIED = 0;
+ /**
+ * Do not include the entity's ancestors in the index.
+ *
+ * Generated from protobuf enum NONE = 1;
+ */
+ const NONE = 1;
+ /**
+ * Include all the entity's ancestors in the index.
+ *
+ * Generated from protobuf enum ALL_ANCESTORS = 2;
+ */
+ const ALL_ANCESTORS = 2;
+
+ private static $valueToName = [
+ self::ANCESTOR_MODE_UNSPECIFIED => 'ANCESTOR_MODE_UNSPECIFIED',
+ self::NONE => 'NONE',
+ self::ALL_ANCESTORS => 'ALL_ANCESTORS',
+ ];
+
+ 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(AncestorMode::class, \Google\Cloud\Datastore\Admin\V1\Index_AncestorMode::class);
+
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/Index/Direction.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/Index/Direction.php
new file mode 100644
index 000000000000..bee71a7181e5
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/Index/Direction.php
@@ -0,0 +1,66 @@
+google.datastore.admin.v1.Index.Direction
+ */
+class Direction
+{
+ /**
+ * The direction is unspecified.
+ *
+ * Generated from protobuf enum DIRECTION_UNSPECIFIED = 0;
+ */
+ const DIRECTION_UNSPECIFIED = 0;
+ /**
+ * The property's values are indexed so as to support sequencing in
+ * ascending order and also query by <, >, <=, >=, and =.
+ *
+ * Generated from protobuf enum ASCENDING = 1;
+ */
+ const ASCENDING = 1;
+ /**
+ * The property's values are indexed so as to support sequencing in
+ * descending order and also query by <, >, <=, >=, and =.
+ *
+ * Generated from protobuf enum DESCENDING = 2;
+ */
+ const DESCENDING = 2;
+
+ private static $valueToName = [
+ self::DIRECTION_UNSPECIFIED => 'DIRECTION_UNSPECIFIED',
+ self::ASCENDING => 'ASCENDING',
+ self::DESCENDING => 'DESCENDING',
+ ];
+
+ 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(Direction::class, \Google\Cloud\Datastore\Admin\V1\Index_Direction::class);
+
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/Index/IndexedProperty.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/Index/IndexedProperty.php
new file mode 100644
index 000000000000..7869c24a98b6
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/Index/IndexedProperty.php
@@ -0,0 +1,104 @@
+google.datastore.admin.v1.Index.IndexedProperty
+ */
+class IndexedProperty extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The property name to index.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $name = '';
+ /**
+ * Required. The indexed property's direction. Must not be DIRECTION_UNSPECIFIED.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Index.Direction direction = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $direction = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The property name to index.
+ * @type int $direction
+ * Required. The indexed property's direction. Must not be DIRECTION_UNSPECIFIED.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Datastore\Admin\V1\Index::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The property name to index.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The property name to index.
+ *
+ * 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;
+ }
+
+ /**
+ * Required. The indexed property's direction. Must not be DIRECTION_UNSPECIFIED.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Index.Direction direction = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return int
+ */
+ public function getDirection()
+ {
+ return $this->direction;
+ }
+
+ /**
+ * Required. The indexed property's direction. Must not be DIRECTION_UNSPECIFIED.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Index.Direction direction = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param int $var
+ * @return $this
+ */
+ public function setDirection($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Datastore\Admin\V1\Index\Direction::class);
+ $this->direction = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(IndexedProperty::class, \Google\Cloud\Datastore\Admin\V1\Index_IndexedProperty::class);
+
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/Index/State.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/Index/State.php
new file mode 100644
index 000000000000..6d8678652c21
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/Index/State.php
@@ -0,0 +1,91 @@
+google.datastore.admin.v1.Index.State
+ */
+class State
+{
+ /**
+ * The state is unspecified.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The index is being created, and cannot be used by queries.
+ * There is an active long-running operation for the index.
+ * The index is updated when writing an entity.
+ * Some index data may exist.
+ *
+ * Generated from protobuf enum CREATING = 1;
+ */
+ const CREATING = 1;
+ /**
+ * The index is ready to be used.
+ * The index is updated when writing an entity.
+ * The index is fully populated from all stored entities it applies to.
+ *
+ * Generated from protobuf enum READY = 2;
+ */
+ const READY = 2;
+ /**
+ * The index is being deleted, and cannot be used by queries.
+ * There is an active long-running operation for the index.
+ * The index is not updated when writing an entity.
+ * Some index data may exist.
+ *
+ * Generated from protobuf enum DELETING = 3;
+ */
+ const DELETING = 3;
+ /**
+ * The index was being created or deleted, but something went wrong.
+ * The index cannot by used by queries.
+ * There is no active long-running operation for the index,
+ * and the most recently finished long-running operation failed.
+ * The index is not updated when writing an entity.
+ * Some index data may exist.
+ *
+ * Generated from protobuf enum ERROR = 4;
+ */
+ const ERROR = 4;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::CREATING => 'CREATING',
+ self::READY => 'READY',
+ self::DELETING => 'DELETING',
+ self::ERROR => 'ERROR',
+ ];
+
+ 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\Datastore\Admin\V1\Index_State::class);
+
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/IndexOperationMetadata.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/IndexOperationMetadata.php
new file mode 100644
index 000000000000..78ebf07e1ff0
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/IndexOperationMetadata.php
@@ -0,0 +1,155 @@
+google.datastore.admin.v1.IndexOperationMetadata
+ */
+class IndexOperationMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Metadata common to all Datastore Admin operations.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.CommonMetadata common = 1;
+ */
+ protected $common = null;
+ /**
+ * An estimate of the number of entities processed.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Progress progress_entities = 2;
+ */
+ protected $progress_entities = null;
+ /**
+ * The index resource ID that this operation is acting on.
+ *
+ * Generated from protobuf field string index_id = 3;
+ */
+ protected $index_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Datastore\Admin\V1\CommonMetadata $common
+ * Metadata common to all Datastore Admin operations.
+ * @type \Google\Cloud\Datastore\Admin\V1\Progress $progress_entities
+ * An estimate of the number of entities processed.
+ * @type string $index_id
+ * The index resource ID that this operation is acting on.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Datastore\Admin\V1\DatastoreAdmin::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Metadata common to all Datastore Admin operations.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.CommonMetadata common = 1;
+ * @return \Google\Cloud\Datastore\Admin\V1\CommonMetadata|null
+ */
+ public function getCommon()
+ {
+ return $this->common;
+ }
+
+ public function hasCommon()
+ {
+ return isset($this->common);
+ }
+
+ public function clearCommon()
+ {
+ unset($this->common);
+ }
+
+ /**
+ * Metadata common to all Datastore Admin operations.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.CommonMetadata common = 1;
+ * @param \Google\Cloud\Datastore\Admin\V1\CommonMetadata $var
+ * @return $this
+ */
+ public function setCommon($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Datastore\Admin\V1\CommonMetadata::class);
+ $this->common = $var;
+
+ return $this;
+ }
+
+ /**
+ * An estimate of the number of entities processed.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Progress progress_entities = 2;
+ * @return \Google\Cloud\Datastore\Admin\V1\Progress|null
+ */
+ public function getProgressEntities()
+ {
+ return $this->progress_entities;
+ }
+
+ public function hasProgressEntities()
+ {
+ return isset($this->progress_entities);
+ }
+
+ public function clearProgressEntities()
+ {
+ unset($this->progress_entities);
+ }
+
+ /**
+ * An estimate of the number of entities processed.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.Progress progress_entities = 2;
+ * @param \Google\Cloud\Datastore\Admin\V1\Progress $var
+ * @return $this
+ */
+ public function setProgressEntities($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Datastore\Admin\V1\Progress::class);
+ $this->progress_entities = $var;
+
+ return $this;
+ }
+
+ /**
+ * The index resource ID that this operation is acting on.
+ *
+ * Generated from protobuf field string index_id = 3;
+ * @return string
+ */
+ public function getIndexId()
+ {
+ return $this->index_id;
+ }
+
+ /**
+ * The index resource ID that this operation is acting on.
+ *
+ * Generated from protobuf field string index_id = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setIndexId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->index_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/Index_AncestorMode.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/Index_AncestorMode.php
new file mode 100644
index 000000000000..656e50ede55a
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/Index_AncestorMode.php
@@ -0,0 +1,16 @@
+google.datastore.admin.v1.ListIndexesRequest
+ */
+class ListIndexesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Project ID against which to make the request.
+ *
+ * Generated from protobuf field string project_id = 1;
+ */
+ protected $project_id = '';
+ /**
+ * Generated from protobuf field string filter = 3;
+ */
+ protected $filter = '';
+ /**
+ * The maximum number of items to return. If zero, then all results will be
+ * returned.
+ *
+ * Generated from protobuf field int32 page_size = 4;
+ */
+ protected $page_size = 0;
+ /**
+ * The next_page_token value returned from a previous List request, if any.
+ *
+ * Generated from protobuf field string page_token = 5;
+ */
+ protected $page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $project_id
+ * Project ID against which to make the request.
+ * @type string $filter
+ * @type int $page_size
+ * The maximum number of items to return. If zero, then all results will be
+ * returned.
+ * @type string $page_token
+ * The next_page_token value returned from a previous List request, if any.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Datastore\Admin\V1\DatastoreAdmin::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Project ID against which to make the request.
+ *
+ * Generated from protobuf field string project_id = 1;
+ * @return string
+ */
+ public function getProjectId()
+ {
+ return $this->project_id;
+ }
+
+ /**
+ * Project ID against which to make the request.
+ *
+ * Generated from protobuf field string project_id = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setProjectId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->project_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field string filter = 3;
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->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;
+ }
+
+ /**
+ * The maximum number of items to return. If zero, then all results will be
+ * returned.
+ *
+ * Generated from protobuf field int32 page_size = 4;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The maximum number of items to return. If zero, then all results will be
+ * returned.
+ *
+ * Generated from protobuf field int32 page_size = 4;
+ * @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 = 5;
+ * @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 = 5;
+ * @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/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/ListIndexesResponse.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/ListIndexesResponse.php
new file mode 100644
index 000000000000..24c9caf57fab
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/ListIndexesResponse.php
@@ -0,0 +1,102 @@
+google.datastore.admin.v1.ListIndexesResponse
+ */
+class ListIndexesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The indexes.
+ *
+ * Generated from protobuf field repeated .google.datastore.admin.v1.Index indexes = 1;
+ */
+ private $indexes;
+ /**
+ * The standard List next-page token.
+ *
+ * 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\Datastore\Admin\V1\Index>|\Google\Protobuf\Internal\RepeatedField $indexes
+ * The indexes.
+ * @type string $next_page_token
+ * The standard List next-page token.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Datastore\Admin\V1\DatastoreAdmin::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The indexes.
+ *
+ * Generated from protobuf field repeated .google.datastore.admin.v1.Index indexes = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getIndexes()
+ {
+ return $this->indexes;
+ }
+
+ /**
+ * The indexes.
+ *
+ * Generated from protobuf field repeated .google.datastore.admin.v1.Index indexes = 1;
+ * @param array<\Google\Cloud\Datastore\Admin\V1\Index>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setIndexes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Datastore\Admin\V1\Index::class);
+ $this->indexes = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The standard List next-page token.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * The standard List next-page token.
+ *
+ * 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/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/MigrationProgressEvent.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/MigrationProgressEvent.php
new file mode 100644
index 000000000000..ad713f55b622
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/MigrationProgressEvent.php
@@ -0,0 +1,152 @@
+google.datastore.admin.v1.MigrationProgressEvent
+ */
+class MigrationProgressEvent extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The step that is starting.
+ * An event with step set to `START` indicates that the migration
+ * has been reverted back to the initial pre-migration state.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.MigrationStep step = 1;
+ */
+ protected $step = 0;
+ protected $step_details;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $step
+ * The step that is starting.
+ * An event with step set to `START` indicates that the migration
+ * has been reverted back to the initial pre-migration state.
+ * @type \Google\Cloud\Datastore\Admin\V1\MigrationProgressEvent\PrepareStepDetails $prepare_step_details
+ * Details for the `PREPARE` step.
+ * @type \Google\Cloud\Datastore\Admin\V1\MigrationProgressEvent\RedirectWritesStepDetails $redirect_writes_step_details
+ * Details for the `REDIRECT_WRITES` step.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Datastore\Admin\V1\Migration::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The step that is starting.
+ * An event with step set to `START` indicates that the migration
+ * has been reverted back to the initial pre-migration state.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.MigrationStep step = 1;
+ * @return int
+ */
+ public function getStep()
+ {
+ return $this->step;
+ }
+
+ /**
+ * The step that is starting.
+ * An event with step set to `START` indicates that the migration
+ * has been reverted back to the initial pre-migration state.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.MigrationStep step = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setStep($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Datastore\Admin\V1\MigrationStep::class);
+ $this->step = $var;
+
+ return $this;
+ }
+
+ /**
+ * Details for the `PREPARE` step.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.MigrationProgressEvent.PrepareStepDetails prepare_step_details = 2;
+ * @return \Google\Cloud\Datastore\Admin\V1\MigrationProgressEvent\PrepareStepDetails|null
+ */
+ public function getPrepareStepDetails()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasPrepareStepDetails()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Details for the `PREPARE` step.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.MigrationProgressEvent.PrepareStepDetails prepare_step_details = 2;
+ * @param \Google\Cloud\Datastore\Admin\V1\MigrationProgressEvent\PrepareStepDetails $var
+ * @return $this
+ */
+ public function setPrepareStepDetails($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Datastore\Admin\V1\MigrationProgressEvent\PrepareStepDetails::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Details for the `REDIRECT_WRITES` step.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.MigrationProgressEvent.RedirectWritesStepDetails redirect_writes_step_details = 3;
+ * @return \Google\Cloud\Datastore\Admin\V1\MigrationProgressEvent\RedirectWritesStepDetails|null
+ */
+ public function getRedirectWritesStepDetails()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasRedirectWritesStepDetails()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * Details for the `REDIRECT_WRITES` step.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.MigrationProgressEvent.RedirectWritesStepDetails redirect_writes_step_details = 3;
+ * @param \Google\Cloud\Datastore\Admin\V1\MigrationProgressEvent\RedirectWritesStepDetails $var
+ * @return $this
+ */
+ public function setRedirectWritesStepDetails($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Datastore\Admin\V1\MigrationProgressEvent\RedirectWritesStepDetails::class);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getStepDetails()
+ {
+ return $this->whichOneof("step_details");
+ }
+
+}
+
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/MigrationProgressEvent/ConcurrencyMode.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/MigrationProgressEvent/ConcurrencyMode.php
new file mode 100644
index 000000000000..6ac75957b07a
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/MigrationProgressEvent/ConcurrencyMode.php
@@ -0,0 +1,71 @@
+google.datastore.admin.v1.MigrationProgressEvent.ConcurrencyMode
+ */
+class ConcurrencyMode
+{
+ /**
+ * Unspecified.
+ *
+ * Generated from protobuf enum CONCURRENCY_MODE_UNSPECIFIED = 0;
+ */
+ const CONCURRENCY_MODE_UNSPECIFIED = 0;
+ /**
+ * Pessimistic concurrency.
+ *
+ * Generated from protobuf enum PESSIMISTIC = 1;
+ */
+ const PESSIMISTIC = 1;
+ /**
+ * Optimistic concurrency.
+ *
+ * Generated from protobuf enum OPTIMISTIC = 2;
+ */
+ const OPTIMISTIC = 2;
+ /**
+ * Optimistic concurrency with entity groups.
+ *
+ * Generated from protobuf enum OPTIMISTIC_WITH_ENTITY_GROUPS = 3;
+ */
+ const OPTIMISTIC_WITH_ENTITY_GROUPS = 3;
+
+ private static $valueToName = [
+ self::CONCURRENCY_MODE_UNSPECIFIED => 'CONCURRENCY_MODE_UNSPECIFIED',
+ self::PESSIMISTIC => 'PESSIMISTIC',
+ self::OPTIMISTIC => 'OPTIMISTIC',
+ self::OPTIMISTIC_WITH_ENTITY_GROUPS => 'OPTIMISTIC_WITH_ENTITY_GROUPS',
+ ];
+
+ 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(ConcurrencyMode::class, \Google\Cloud\Datastore\Admin\V1\MigrationProgressEvent_ConcurrencyMode::class);
+
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/MigrationProgressEvent/PrepareStepDetails.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/MigrationProgressEvent/PrepareStepDetails.php
new file mode 100644
index 000000000000..9182ec0e8fc2
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/MigrationProgressEvent/PrepareStepDetails.php
@@ -0,0 +1,74 @@
+google.datastore.admin.v1.MigrationProgressEvent.PrepareStepDetails
+ */
+class PrepareStepDetails extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The concurrency mode this database will use when it reaches the
+ * `REDIRECT_WRITES` step.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.MigrationProgressEvent.ConcurrencyMode concurrency_mode = 1;
+ */
+ protected $concurrency_mode = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $concurrency_mode
+ * The concurrency mode this database will use when it reaches the
+ * `REDIRECT_WRITES` step.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Datastore\Admin\V1\Migration::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The concurrency mode this database will use when it reaches the
+ * `REDIRECT_WRITES` step.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.MigrationProgressEvent.ConcurrencyMode concurrency_mode = 1;
+ * @return int
+ */
+ public function getConcurrencyMode()
+ {
+ return $this->concurrency_mode;
+ }
+
+ /**
+ * The concurrency mode this database will use when it reaches the
+ * `REDIRECT_WRITES` step.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.MigrationProgressEvent.ConcurrencyMode concurrency_mode = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setConcurrencyMode($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Datastore\Admin\V1\MigrationProgressEvent\ConcurrencyMode::class);
+ $this->concurrency_mode = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(PrepareStepDetails::class, \Google\Cloud\Datastore\Admin\V1\MigrationProgressEvent_PrepareStepDetails::class);
+
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/MigrationProgressEvent/RedirectWritesStepDetails.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/MigrationProgressEvent/RedirectWritesStepDetails.php
new file mode 100644
index 000000000000..62927870dda3
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/MigrationProgressEvent/RedirectWritesStepDetails.php
@@ -0,0 +1,70 @@
+google.datastore.admin.v1.MigrationProgressEvent.RedirectWritesStepDetails
+ */
+class RedirectWritesStepDetails extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Ths concurrency mode for this database.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.MigrationProgressEvent.ConcurrencyMode concurrency_mode = 1;
+ */
+ protected $concurrency_mode = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $concurrency_mode
+ * Ths concurrency mode for this database.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Datastore\Admin\V1\Migration::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Ths concurrency mode for this database.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.MigrationProgressEvent.ConcurrencyMode concurrency_mode = 1;
+ * @return int
+ */
+ public function getConcurrencyMode()
+ {
+ return $this->concurrency_mode;
+ }
+
+ /**
+ * Ths concurrency mode for this database.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.MigrationProgressEvent.ConcurrencyMode concurrency_mode = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setConcurrencyMode($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Datastore\Admin\V1\MigrationProgressEvent\ConcurrencyMode::class);
+ $this->concurrency_mode = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(RedirectWritesStepDetails::class, \Google\Cloud\Datastore\Admin\V1\MigrationProgressEvent_RedirectWritesStepDetails::class);
+
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/MigrationProgressEvent_ConcurrencyMode.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/MigrationProgressEvent_ConcurrencyMode.php
new file mode 100644
index 000000000000..39c6bb126d8b
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/MigrationProgressEvent_ConcurrencyMode.php
@@ -0,0 +1,16 @@
+google.datastore.admin.v1.MigrationState
+ */
+class MigrationState
+{
+ /**
+ * Unspecified.
+ *
+ * Generated from protobuf enum MIGRATION_STATE_UNSPECIFIED = 0;
+ */
+ const MIGRATION_STATE_UNSPECIFIED = 0;
+ /**
+ * The migration is running.
+ *
+ * Generated from protobuf enum RUNNING = 1;
+ */
+ const RUNNING = 1;
+ /**
+ * The migration is paused.
+ *
+ * Generated from protobuf enum PAUSED = 2;
+ */
+ const PAUSED = 2;
+ /**
+ * The migration is complete.
+ *
+ * Generated from protobuf enum COMPLETE = 3;
+ */
+ const COMPLETE = 3;
+
+ private static $valueToName = [
+ self::MIGRATION_STATE_UNSPECIFIED => 'MIGRATION_STATE_UNSPECIFIED',
+ self::RUNNING => 'RUNNING',
+ self::PAUSED => 'PAUSED',
+ self::COMPLETE => 'COMPLETE',
+ ];
+
+ 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/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/MigrationStateEvent.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/MigrationStateEvent.php
new file mode 100644
index 000000000000..12ce4113a770
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/MigrationStateEvent.php
@@ -0,0 +1,69 @@
+google.datastore.admin.v1.MigrationStateEvent
+ */
+class MigrationStateEvent extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The new state of the migration.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.MigrationState state = 1;
+ */
+ protected $state = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $state
+ * The new state of the migration.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Datastore\Admin\V1\Migration::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The new state of the migration.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.MigrationState state = 1;
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * The new state of the migration.
+ *
+ * Generated from protobuf field .google.datastore.admin.v1.MigrationState state = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Datastore\Admin\V1\MigrationState::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/MigrationStep.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/MigrationStep.php
new file mode 100644
index 000000000000..b20fab7b5f1a
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/MigrationStep.php
@@ -0,0 +1,97 @@
+google.datastore.admin.v1.MigrationStep
+ */
+class MigrationStep
+{
+ /**
+ * Unspecified.
+ *
+ * Generated from protobuf enum MIGRATION_STEP_UNSPECIFIED = 0;
+ */
+ const MIGRATION_STEP_UNSPECIFIED = 0;
+ /**
+ * Pre-migration: the database is prepared for migration.
+ *
+ * Generated from protobuf enum PREPARE = 6;
+ */
+ const PREPARE = 6;
+ /**
+ * Start of migration.
+ *
+ * Generated from protobuf enum START = 1;
+ */
+ const START = 1;
+ /**
+ * Writes are applied synchronously to at least one replica.
+ *
+ * Generated from protobuf enum APPLY_WRITES_SYNCHRONOUSLY = 7;
+ */
+ const APPLY_WRITES_SYNCHRONOUSLY = 7;
+ /**
+ * Data is copied to Cloud Firestore and then verified to match the data in
+ * Cloud Datastore.
+ *
+ * Generated from protobuf enum COPY_AND_VERIFY = 2;
+ */
+ const COPY_AND_VERIFY = 2;
+ /**
+ * Eventually-consistent reads are redirected to Cloud Firestore.
+ *
+ * Generated from protobuf enum REDIRECT_EVENTUALLY_CONSISTENT_READS = 3;
+ */
+ const REDIRECT_EVENTUALLY_CONSISTENT_READS = 3;
+ /**
+ * Strongly-consistent reads are redirected to Cloud Firestore.
+ *
+ * Generated from protobuf enum REDIRECT_STRONGLY_CONSISTENT_READS = 4;
+ */
+ const REDIRECT_STRONGLY_CONSISTENT_READS = 4;
+ /**
+ * Writes are redirected to Cloud Firestore.
+ *
+ * Generated from protobuf enum REDIRECT_WRITES = 5;
+ */
+ const REDIRECT_WRITES = 5;
+
+ private static $valueToName = [
+ self::MIGRATION_STEP_UNSPECIFIED => 'MIGRATION_STEP_UNSPECIFIED',
+ self::PREPARE => 'PREPARE',
+ self::START => 'START',
+ self::APPLY_WRITES_SYNCHRONOUSLY => 'APPLY_WRITES_SYNCHRONOUSLY',
+ self::COPY_AND_VERIFY => 'COPY_AND_VERIFY',
+ self::REDIRECT_EVENTUALLY_CONSISTENT_READS => 'REDIRECT_EVENTUALLY_CONSISTENT_READS',
+ self::REDIRECT_STRONGLY_CONSISTENT_READS => 'REDIRECT_STRONGLY_CONSISTENT_READS',
+ self::REDIRECT_WRITES => 'REDIRECT_WRITES',
+ ];
+
+ 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/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/OperationType.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/OperationType.php
new file mode 100644
index 000000000000..f4a310a591f4
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/OperationType.php
@@ -0,0 +1,75 @@
+google.datastore.admin.v1.OperationType
+ */
+class OperationType
+{
+ /**
+ * Unspecified.
+ *
+ * Generated from protobuf enum OPERATION_TYPE_UNSPECIFIED = 0;
+ */
+ const OPERATION_TYPE_UNSPECIFIED = 0;
+ /**
+ * ExportEntities.
+ *
+ * Generated from protobuf enum EXPORT_ENTITIES = 1;
+ */
+ const EXPORT_ENTITIES = 1;
+ /**
+ * ImportEntities.
+ *
+ * Generated from protobuf enum IMPORT_ENTITIES = 2;
+ */
+ const IMPORT_ENTITIES = 2;
+ /**
+ * CreateIndex.
+ *
+ * Generated from protobuf enum CREATE_INDEX = 3;
+ */
+ const CREATE_INDEX = 3;
+ /**
+ * DeleteIndex.
+ *
+ * Generated from protobuf enum DELETE_INDEX = 4;
+ */
+ const DELETE_INDEX = 4;
+
+ private static $valueToName = [
+ self::OPERATION_TYPE_UNSPECIFIED => 'OPERATION_TYPE_UNSPECIFIED',
+ self::EXPORT_ENTITIES => 'EXPORT_ENTITIES',
+ self::IMPORT_ENTITIES => 'IMPORT_ENTITIES',
+ self::CREATE_INDEX => 'CREATE_INDEX',
+ self::DELETE_INDEX => 'DELETE_INDEX',
+ ];
+
+ 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/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/Progress.php b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/Progress.php
new file mode 100644
index 000000000000..698275844e5b
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/proto/src/Google/Cloud/Datastore/Admin/V1/Progress.php
@@ -0,0 +1,109 @@
+google.datastore.admin.v1.Progress
+ */
+class Progress extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The amount of work that has been completed. Note that this may be greater
+ * than work_estimated.
+ *
+ * Generated from protobuf field int64 work_completed = 1;
+ */
+ protected $work_completed = 0;
+ /**
+ * An estimate of how much work needs to be performed. May be zero if the
+ * work estimate is unavailable.
+ *
+ * Generated from protobuf field int64 work_estimated = 2;
+ */
+ protected $work_estimated = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $work_completed
+ * The amount of work that has been completed. Note that this may be greater
+ * than work_estimated.
+ * @type int|string $work_estimated
+ * An estimate of how much work needs to be performed. May be zero if the
+ * work estimate is unavailable.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Datastore\Admin\V1\DatastoreAdmin::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The amount of work that has been completed. Note that this may be greater
+ * than work_estimated.
+ *
+ * Generated from protobuf field int64 work_completed = 1;
+ * @return int|string
+ */
+ public function getWorkCompleted()
+ {
+ return $this->work_completed;
+ }
+
+ /**
+ * The amount of work that has been completed. Note that this may be greater
+ * than work_estimated.
+ *
+ * Generated from protobuf field int64 work_completed = 1;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setWorkCompleted($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->work_completed = $var;
+
+ return $this;
+ }
+
+ /**
+ * An estimate of how much work needs to be performed. May be zero if the
+ * work estimate is unavailable.
+ *
+ * Generated from protobuf field int64 work_estimated = 2;
+ * @return int|string
+ */
+ public function getWorkEstimated()
+ {
+ return $this->work_estimated;
+ }
+
+ /**
+ * An estimate of how much work needs to be performed. May be zero if the
+ * work estimate is unavailable.
+ *
+ * Generated from protobuf field int64 work_estimated = 2;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setWorkEstimated($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->work_estimated = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DatastoreAdmin/v1/samples/V1/DatastoreAdminClient/create_index.php b/owl-bot-staging/DatastoreAdmin/v1/samples/V1/DatastoreAdminClient/create_index.php
new file mode 100644
index 000000000000..c572c60e0fde
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/samples/V1/DatastoreAdminClient/create_index.php
@@ -0,0 +1,82 @@
+createIndex($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Index $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 datastore_v1_generated_DatastoreAdmin_CreateIndex_sync]
diff --git a/owl-bot-staging/DatastoreAdmin/v1/samples/V1/DatastoreAdminClient/delete_index.php b/owl-bot-staging/DatastoreAdmin/v1/samples/V1/DatastoreAdminClient/delete_index.php
new file mode 100644
index 000000000000..e8e8a6153ffe
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/samples/V1/DatastoreAdminClient/delete_index.php
@@ -0,0 +1,78 @@
+deleteIndex($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Index $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 datastore_v1_generated_DatastoreAdmin_DeleteIndex_sync]
diff --git a/owl-bot-staging/DatastoreAdmin/v1/samples/V1/DatastoreAdminClient/export_entities.php b/owl-bot-staging/DatastoreAdmin/v1/samples/V1/DatastoreAdminClient/export_entities.php
new file mode 100644
index 000000000000..fd033dfe21c6
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/samples/V1/DatastoreAdminClient/export_entities.php
@@ -0,0 +1,109 @@
+setProjectId($projectId)
+ ->setOutputUrlPrefix($outputUrlPrefix);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $datastoreAdminClient->exportEntities($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var ExportEntitiesResponse $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
+{
+ $projectId = '[PROJECT_ID]';
+ $outputUrlPrefix = '[OUTPUT_URL_PREFIX]';
+
+ export_entities_sample($projectId, $outputUrlPrefix);
+}
+// [END datastore_v1_generated_DatastoreAdmin_ExportEntities_sync]
diff --git a/owl-bot-staging/DatastoreAdmin/v1/samples/V1/DatastoreAdminClient/get_index.php b/owl-bot-staging/DatastoreAdmin/v1/samples/V1/DatastoreAdminClient/get_index.php
new file mode 100644
index 000000000000..f435a5846b75
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/samples/V1/DatastoreAdminClient/get_index.php
@@ -0,0 +1,57 @@
+getIndex($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END datastore_v1_generated_DatastoreAdmin_GetIndex_sync]
diff --git a/owl-bot-staging/DatastoreAdmin/v1/samples/V1/DatastoreAdminClient/import_entities.php b/owl-bot-staging/DatastoreAdmin/v1/samples/V1/DatastoreAdminClient/import_entities.php
new file mode 100644
index 000000000000..e0a340886762
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/samples/V1/DatastoreAdminClient/import_entities.php
@@ -0,0 +1,98 @@
+setProjectId($projectId)
+ ->setInputUrl($inputUrl);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $datastoreAdminClient->importEntities($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
+{
+ $projectId = '[PROJECT_ID]';
+ $inputUrl = '[INPUT_URL]';
+
+ import_entities_sample($projectId, $inputUrl);
+}
+// [END datastore_v1_generated_DatastoreAdmin_ImportEntities_sync]
diff --git a/owl-bot-staging/DatastoreAdmin/v1/samples/V1/DatastoreAdminClient/list_indexes.php b/owl-bot-staging/DatastoreAdmin/v1/samples/V1/DatastoreAdminClient/list_indexes.php
new file mode 100644
index 000000000000..f5b9703118d4
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/samples/V1/DatastoreAdminClient/list_indexes.php
@@ -0,0 +1,64 @@
+listIndexes($request);
+
+ /** @var Index $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 datastore_v1_generated_DatastoreAdmin_ListIndexes_sync]
diff --git a/owl-bot-staging/DatastoreAdmin/v1/src/V1/Client/BaseClient/DatastoreAdminBaseClient.php b/owl-bot-staging/DatastoreAdmin/v1/src/V1/Client/BaseClient/DatastoreAdminBaseClient.php
new file mode 100644
index 000000000000..f3b056ae840a
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/src/V1/Client/BaseClient/DatastoreAdminBaseClient.php
@@ -0,0 +1,448 @@
+ self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../../resources/datastore_admin_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../../resources/datastore_admin_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../../resources/datastore_admin_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../../resources/datastore_admin_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;
+ }
+
+ /**
+ * 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 'datastore.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
+ */
+ 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 the specified index.
+ * A newly created index's initial state is `CREATING`. On completion of the
+ * returned [google.longrunning.Operation][google.longrunning.Operation], the state will be `READY`.
+ * If the index already exists, the call will return an `ALREADY_EXISTS`
+ * status.
+ *
+ * During index creation, the process could result in an error, in which
+ * case the index will move to the `ERROR` state. The process can be recovered
+ * by fixing the data that caused the error, removing the index with
+ * [delete][google.datastore.admin.v1.DatastoreAdmin.DeleteIndex], then
+ * re-creating the index with [create]
+ * [google.datastore.admin.v1.DatastoreAdmin.CreateIndex].
+ *
+ * Indexes with a single property cannot be created.
+ *
+ * The async variant is {@see self::createIndexAsync()} .
+ *
+ * @param CreateIndexRequest $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 createIndex(CreateIndexRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('CreateIndex', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes an existing index.
+ * An index can only be deleted if it is in a `READY` or `ERROR` state. On
+ * successful execution of the request, the index will be in a `DELETING`
+ * [state][google.datastore.admin.v1.Index.State]. And on completion of the
+ * returned [google.longrunning.Operation][google.longrunning.Operation], the index will be removed.
+ *
+ * During index deletion, the process could result in an error, in which
+ * case the index will move to the `ERROR` state. The process can be recovered
+ * by fixing the data that caused the error, followed by calling
+ * [delete][google.datastore.admin.v1.DatastoreAdmin.DeleteIndex] again.
+ *
+ * The async variant is {@see self::deleteIndexAsync()} .
+ *
+ * @param DeleteIndexRequest $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 deleteIndex(DeleteIndexRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('DeleteIndex', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Exports a copy of all or a subset of entities from Google Cloud Datastore
+ * to another storage system, such as Google Cloud Storage. Recent updates to
+ * entities may not be reflected in the export. The export occurs in the
+ * background and its progress can be monitored and managed via the
+ * Operation resource that is created. The output of an export may only be
+ * used once the associated operation is done. If an export operation is
+ * cancelled before completion it may leave partial data behind in Google
+ * Cloud Storage.
+ *
+ * The async variant is {@see self::exportEntitiesAsync()} .
+ *
+ * @param ExportEntitiesRequest $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 exportEntities(ExportEntitiesRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('ExportEntities', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets an index.
+ *
+ * The async variant is {@see self::getIndexAsync()} .
+ *
+ * @param GetIndexRequest $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 Index
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getIndex(GetIndexRequest $request, array $callOptions = []): Index
+ {
+ return $this->startApiCall('GetIndex', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Imports entities into Google Cloud Datastore. Existing entities with the
+ * same key are overwritten. The import occurs in the background and its
+ * progress can be monitored and managed via the Operation resource that is
+ * created. If an ImportEntities operation is cancelled, it is possible
+ * that a subset of the data has already been imported to Cloud Datastore.
+ *
+ * The async variant is {@see self::importEntitiesAsync()} .
+ *
+ * @param ImportEntitiesRequest $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 importEntities(ImportEntitiesRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('ImportEntities', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Lists the indexes that match the specified filters. Datastore uses an
+ * eventually consistent query to fetch the list of indexes and may
+ * occasionally return stale results.
+ *
+ * The async variant is {@see self::listIndexesAsync()} .
+ *
+ * @param ListIndexesRequest $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 listIndexes(ListIndexesRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListIndexes', $request, $callOptions);
+ }
+}
diff --git a/owl-bot-staging/DatastoreAdmin/v1/src/V1/Client/DatastoreAdminClient.php b/owl-bot-staging/DatastoreAdmin/v1/src/V1/Client/DatastoreAdminClient.php
new file mode 100644
index 000000000000..7b6254c8a128
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/src/V1/Client/DatastoreAdminClient.php
@@ -0,0 +1,40 @@
+createIndex();
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $datastoreAdminClient->createIndex();
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $datastoreAdminClient->resumeOperation($operationName, 'createIndex');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $datastoreAdminClient->close();
+ * }
+ * ```
+ */
+class DatastoreAdminGapicClient
+{
+ use GapicClientTrait;
+
+ /** The name of the service. */
+ const SERVICE_NAME = 'google.datastore.admin.v1.DatastoreAdmin';
+
+ /** The default address of the service. */
+ const SERVICE_ADDRESS = 'datastore.googleapis.com';
+
+ /** 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',
+ 'https://www.googleapis.com/auth/datastore',
+ ];
+
+ private $operationsClient;
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/datastore_admin_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/datastore_admin_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/datastore_admin_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/datastore_admin_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;
+ }
+
+ /**
+ * 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 'datastore.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
+ */
+ public function __construct(array $options = [])
+ {
+ $clientOptions = $this->buildClientOptions($options);
+ $this->setClientOptions($clientOptions);
+ $this->operationsClient = $this->createOperationsClient($clientOptions);
+ }
+
+ /**
+ * Creates the specified index.
+ * A newly created index's initial state is `CREATING`. On completion of the
+ * returned [google.longrunning.Operation][google.longrunning.Operation], the state will be `READY`.
+ * If the index already exists, the call will return an `ALREADY_EXISTS`
+ * status.
+ *
+ * During index creation, the process could result in an error, in which
+ * case the index will move to the `ERROR` state. The process can be recovered
+ * by fixing the data that caused the error, removing the index with
+ * [delete][google.datastore.admin.v1.DatastoreAdmin.DeleteIndex], then
+ * re-creating the index with [create]
+ * [google.datastore.admin.v1.DatastoreAdmin.CreateIndex].
+ *
+ * Indexes with a single property cannot be created.
+ *
+ * Sample code:
+ * ```
+ * $datastoreAdminClient = new DatastoreAdminClient();
+ * try {
+ * $operationResponse = $datastoreAdminClient->createIndex();
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $datastoreAdminClient->createIndex();
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $datastoreAdminClient->resumeOperation($operationName, 'createIndex');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $datastoreAdminClient->close();
+ * }
+ * ```
+ *
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $projectId
+ * Project ID against which to make the request.
+ * @type Index $index
+ * The index to create. The name and state fields are output only and will be
+ * ignored. Single property indexes cannot be created or deleted.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function createIndex(array $optionalArgs = [])
+ {
+ $request = new CreateIndexRequest();
+ $requestParamHeaders = [];
+ if (isset($optionalArgs['projectId'])) {
+ $request->setProjectId($optionalArgs['projectId']);
+ $requestParamHeaders['project_id'] = $optionalArgs['projectId'];
+ }
+
+ if (isset($optionalArgs['index'])) {
+ $request->setIndex($optionalArgs['index']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('CreateIndex', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Deletes an existing index.
+ * An index can only be deleted if it is in a `READY` or `ERROR` state. On
+ * successful execution of the request, the index will be in a `DELETING`
+ * [state][google.datastore.admin.v1.Index.State]. And on completion of the
+ * returned [google.longrunning.Operation][google.longrunning.Operation], the index will be removed.
+ *
+ * During index deletion, the process could result in an error, in which
+ * case the index will move to the `ERROR` state. The process can be recovered
+ * by fixing the data that caused the error, followed by calling
+ * [delete][google.datastore.admin.v1.DatastoreAdmin.DeleteIndex] again.
+ *
+ * Sample code:
+ * ```
+ * $datastoreAdminClient = new DatastoreAdminClient();
+ * try {
+ * $operationResponse = $datastoreAdminClient->deleteIndex();
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $datastoreAdminClient->deleteIndex();
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $datastoreAdminClient->resumeOperation($operationName, 'deleteIndex');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $datastoreAdminClient->close();
+ * }
+ * ```
+ *
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $projectId
+ * Project ID against which to make the request.
+ * @type string $indexId
+ * The resource ID of the index to delete.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function deleteIndex(array $optionalArgs = [])
+ {
+ $request = new DeleteIndexRequest();
+ $requestParamHeaders = [];
+ if (isset($optionalArgs['projectId'])) {
+ $request->setProjectId($optionalArgs['projectId']);
+ $requestParamHeaders['project_id'] = $optionalArgs['projectId'];
+ }
+
+ if (isset($optionalArgs['indexId'])) {
+ $request->setIndexId($optionalArgs['indexId']);
+ $requestParamHeaders['index_id'] = $optionalArgs['indexId'];
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('DeleteIndex', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Exports a copy of all or a subset of entities from Google Cloud Datastore
+ * to another storage system, such as Google Cloud Storage. Recent updates to
+ * entities may not be reflected in the export. The export occurs in the
+ * background and its progress can be monitored and managed via the
+ * Operation resource that is created. The output of an export may only be
+ * used once the associated operation is done. If an export operation is
+ * cancelled before completion it may leave partial data behind in Google
+ * Cloud Storage.
+ *
+ * Sample code:
+ * ```
+ * $datastoreAdminClient = new DatastoreAdminClient();
+ * try {
+ * $projectId = 'project_id';
+ * $outputUrlPrefix = 'output_url_prefix';
+ * $operationResponse = $datastoreAdminClient->exportEntities($projectId, $outputUrlPrefix);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $datastoreAdminClient->exportEntities($projectId, $outputUrlPrefix);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $datastoreAdminClient->resumeOperation($operationName, 'exportEntities');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $datastoreAdminClient->close();
+ * }
+ * ```
+ *
+ * @param string $projectId Required. Project ID against which to make the request.
+ * @param string $outputUrlPrefix Required. Location for the export metadata and data files.
+ *
+ * The full resource URL of the external storage location. Currently, only
+ * Google Cloud Storage is supported. So output_url_prefix should be of the
+ * form: `gs://BUCKET_NAME[/NAMESPACE_PATH]`, where `BUCKET_NAME` is the
+ * name of the Cloud Storage bucket and `NAMESPACE_PATH` is an optional Cloud
+ * Storage namespace path (this is not a Cloud Datastore namespace). For more
+ * information about Cloud Storage namespace paths, see
+ * [Object name
+ * considerations](https://cloud.google.com/storage/docs/naming#object-considerations).
+ *
+ * The resulting files will be nested deeper than the specified URL prefix.
+ * The final output URL will be provided in the
+ * [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url] field. That
+ * value should be used for subsequent ImportEntities operations.
+ *
+ * By nesting the data files deeper, the same Cloud Storage bucket can be used
+ * in multiple ExportEntities operations without conflict.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type array $labels
+ * Client-assigned labels.
+ * @type EntityFilter $entityFilter
+ * Description of what data from the project is included in the export.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function exportEntities($projectId, $outputUrlPrefix, array $optionalArgs = [])
+ {
+ $request = new ExportEntitiesRequest();
+ $requestParamHeaders = [];
+ $request->setProjectId($projectId);
+ $request->setOutputUrlPrefix($outputUrlPrefix);
+ $requestParamHeaders['project_id'] = $projectId;
+ if (isset($optionalArgs['labels'])) {
+ $request->setLabels($optionalArgs['labels']);
+ }
+
+ if (isset($optionalArgs['entityFilter'])) {
+ $request->setEntityFilter($optionalArgs['entityFilter']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('ExportEntities', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Gets an index.
+ *
+ * Sample code:
+ * ```
+ * $datastoreAdminClient = new DatastoreAdminClient();
+ * try {
+ * $response = $datastoreAdminClient->getIndex();
+ * } finally {
+ * $datastoreAdminClient->close();
+ * }
+ * ```
+ *
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $projectId
+ * Project ID against which to make the request.
+ * @type string $indexId
+ * The resource ID of the index to get.
+ * @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 \Google\Cloud\Datastore\Admin\V1\Index
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getIndex(array $optionalArgs = [])
+ {
+ $request = new GetIndexRequest();
+ $requestParamHeaders = [];
+ if (isset($optionalArgs['projectId'])) {
+ $request->setProjectId($optionalArgs['projectId']);
+ $requestParamHeaders['project_id'] = $optionalArgs['projectId'];
+ }
+
+ if (isset($optionalArgs['indexId'])) {
+ $request->setIndexId($optionalArgs['indexId']);
+ $requestParamHeaders['index_id'] = $optionalArgs['indexId'];
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetIndex', Index::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Imports entities into Google Cloud Datastore. Existing entities with the
+ * same key are overwritten. The import occurs in the background and its
+ * progress can be monitored and managed via the Operation resource that is
+ * created. If an ImportEntities operation is cancelled, it is possible
+ * that a subset of the data has already been imported to Cloud Datastore.
+ *
+ * Sample code:
+ * ```
+ * $datastoreAdminClient = new DatastoreAdminClient();
+ * try {
+ * $projectId = 'project_id';
+ * $inputUrl = 'input_url';
+ * $operationResponse = $datastoreAdminClient->importEntities($projectId, $inputUrl);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * // operation succeeded and returns no value
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $datastoreAdminClient->importEntities($projectId, $inputUrl);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $datastoreAdminClient->resumeOperation($operationName, 'importEntities');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * // operation succeeded and returns no value
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $datastoreAdminClient->close();
+ * }
+ * ```
+ *
+ * @param string $projectId Required. Project ID against which to make the request.
+ * @param string $inputUrl Required. The full resource URL of the external storage location. Currently, only
+ * Google Cloud Storage is supported. So input_url should be of the form:
+ * `gs://BUCKET_NAME[/NAMESPACE_PATH]/OVERALL_EXPORT_METADATA_FILE`, where
+ * `BUCKET_NAME` is the name of the Cloud Storage bucket, `NAMESPACE_PATH` is
+ * an optional Cloud Storage namespace path (this is not a Cloud Datastore
+ * namespace), and `OVERALL_EXPORT_METADATA_FILE` is the metadata file written
+ * by the ExportEntities operation. For more information about Cloud Storage
+ * namespace paths, see
+ * [Object name
+ * considerations](https://cloud.google.com/storage/docs/naming#object-considerations).
+ *
+ * For more information, see
+ * [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url].
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type array $labels
+ * Client-assigned labels.
+ * @type EntityFilter $entityFilter
+ * Optionally specify which kinds/namespaces are to be imported. If provided,
+ * the list must be a subset of the EntityFilter used in creating the export,
+ * otherwise a FAILED_PRECONDITION error will be returned. If no filter is
+ * specified then all entities from the export are imported.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function importEntities($projectId, $inputUrl, array $optionalArgs = [])
+ {
+ $request = new ImportEntitiesRequest();
+ $requestParamHeaders = [];
+ $request->setProjectId($projectId);
+ $request->setInputUrl($inputUrl);
+ $requestParamHeaders['project_id'] = $projectId;
+ if (isset($optionalArgs['labels'])) {
+ $request->setLabels($optionalArgs['labels']);
+ }
+
+ if (isset($optionalArgs['entityFilter'])) {
+ $request->setEntityFilter($optionalArgs['entityFilter']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('ImportEntities', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Lists the indexes that match the specified filters. Datastore uses an
+ * eventually consistent query to fetch the list of indexes and may
+ * occasionally return stale results.
+ *
+ * Sample code:
+ * ```
+ * $datastoreAdminClient = new DatastoreAdminClient();
+ * try {
+ * // Iterate over pages of elements
+ * $pagedResponse = $datastoreAdminClient->listIndexes();
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $datastoreAdminClient->listIndexes();
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $datastoreAdminClient->close();
+ * }
+ * ```
+ *
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $projectId
+ * Project ID against which to make the request.
+ * @type string $filter
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function listIndexes(array $optionalArgs = [])
+ {
+ $request = new ListIndexesRequest();
+ $requestParamHeaders = [];
+ if (isset($optionalArgs['projectId'])) {
+ $request->setProjectId($optionalArgs['projectId']);
+ $requestParamHeaders['project_id'] = $optionalArgs['projectId'];
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListIndexes', $optionalArgs, ListIndexesResponse::class, $request);
+ }
+}
diff --git a/owl-bot-staging/DatastoreAdmin/v1/src/V1/gapic_metadata.json b/owl-bot-staging/DatastoreAdmin/v1/src/V1/gapic_metadata.json
new file mode 100644
index 000000000000..3f24235779cc
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/src/V1/gapic_metadata.json
@@ -0,0 +1,48 @@
+{
+ "schema": "1.0",
+ "comment": "This file maps proto services\/RPCs to the corresponding library clients\/methods",
+ "language": "php",
+ "protoPackage": "google.datastore.admin.v1",
+ "libraryPackage": "Google\\Cloud\\Datastore\\Admin\\V1",
+ "services": {
+ "DatastoreAdmin": {
+ "clients": {
+ "grpc": {
+ "libraryClient": "DatastoreAdminGapicClient",
+ "rpcs": {
+ "CreateIndex": {
+ "methods": [
+ "createIndex"
+ ]
+ },
+ "DeleteIndex": {
+ "methods": [
+ "deleteIndex"
+ ]
+ },
+ "ExportEntities": {
+ "methods": [
+ "exportEntities"
+ ]
+ },
+ "GetIndex": {
+ "methods": [
+ "getIndex"
+ ]
+ },
+ "ImportEntities": {
+ "methods": [
+ "importEntities"
+ ]
+ },
+ "ListIndexes": {
+ "methods": [
+ "listIndexes"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/owl-bot-staging/DatastoreAdmin/v1/src/V1/resources/datastore_admin_client_config.json b/owl-bot-staging/DatastoreAdmin/v1/src/V1/resources/datastore_admin_client_config.json
new file mode 100644
index 000000000000..42085b1e5e25
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/src/V1/resources/datastore_admin_client_config.json
@@ -0,0 +1,75 @@
+{
+ "interfaces": {
+ "google.datastore.admin.v1.DatastoreAdmin": {
+ "retry_codes": {
+ "no_retry_codes": [],
+ "no_retry_1_codes": [],
+ "retry_policy_1_codes": [
+ "UNAVAILABLE",
+ "DEADLINE_EXCEEDED"
+ ]
+ },
+ "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
+ },
+ "retry_policy_1_params": {
+ "initial_retry_delay_millis": 100,
+ "retry_delay_multiplier": 1.3,
+ "max_retry_delay_millis": 60000,
+ "initial_rpc_timeout_millis": 60000,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 60000,
+ "total_timeout_millis": 60000
+ }
+ },
+ "methods": {
+ "CreateIndex": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteIndex": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ExportEntities": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetIndex": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ImportEntities": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListIndexes": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ }
+ }
+ }
+ }
+}
diff --git a/owl-bot-staging/DatastoreAdmin/v1/src/V1/resources/datastore_admin_descriptor_config.php b/owl-bot-staging/DatastoreAdmin/v1/src/V1/resources/datastore_admin_descriptor_config.php
new file mode 100644
index 000000000000..e2891b13099f
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/src/V1/resources/datastore_admin_descriptor_config.php
@@ -0,0 +1,128 @@
+ [
+ 'google.datastore.admin.v1.DatastoreAdmin' => [
+ 'CreateIndex' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Datastore\Admin\V1\Index',
+ 'metadataReturnType' => '\Google\Cloud\Datastore\Admin\V1\IndexOperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'project_id',
+ 'fieldAccessors' => [
+ 'getProjectId',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteIndex' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Datastore\Admin\V1\Index',
+ 'metadataReturnType' => '\Google\Cloud\Datastore\Admin\V1\IndexOperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'project_id',
+ 'fieldAccessors' => [
+ 'getProjectId',
+ ],
+ ],
+ [
+ 'keyName' => 'index_id',
+ 'fieldAccessors' => [
+ 'getIndexId',
+ ],
+ ],
+ ],
+ ],
+ 'ExportEntities' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Datastore\Admin\V1\ExportEntitiesResponse',
+ 'metadataReturnType' => '\Google\Cloud\Datastore\Admin\V1\ExportEntitiesMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'project_id',
+ 'fieldAccessors' => [
+ 'getProjectId',
+ ],
+ ],
+ ],
+ ],
+ 'ImportEntities' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\Datastore\Admin\V1\ImportEntitiesMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'project_id',
+ 'fieldAccessors' => [
+ 'getProjectId',
+ ],
+ ],
+ ],
+ ],
+ 'GetIndex' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Datastore\Admin\V1\Index',
+ 'headerParams' => [
+ [
+ 'keyName' => 'project_id',
+ 'fieldAccessors' => [
+ 'getProjectId',
+ ],
+ ],
+ [
+ 'keyName' => 'index_id',
+ 'fieldAccessors' => [
+ 'getIndexId',
+ ],
+ ],
+ ],
+ ],
+ 'ListIndexes' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getIndexes',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Datastore\Admin\V1\ListIndexesResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'project_id',
+ 'fieldAccessors' => [
+ 'getProjectId',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/DatastoreAdmin/v1/src/V1/resources/datastore_admin_rest_client_config.php b/owl-bot-staging/DatastoreAdmin/v1/src/V1/resources/datastore_admin_rest_client_config.php
new file mode 100644
index 000000000000..08331544a7e6
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/src/V1/resources/datastore_admin_rest_client_config.php
@@ -0,0 +1,134 @@
+ [
+ 'google.datastore.admin.v1.DatastoreAdmin' => [
+ 'CreateIndex' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/projects/{project_id}/indexes',
+ 'body' => 'index',
+ 'placeholders' => [
+ 'project_id' => [
+ 'getters' => [
+ 'getProjectId',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteIndex' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/projects/{project_id}/indexes/{index_id}',
+ 'placeholders' => [
+ 'index_id' => [
+ 'getters' => [
+ 'getIndexId',
+ ],
+ ],
+ 'project_id' => [
+ 'getters' => [
+ 'getProjectId',
+ ],
+ ],
+ ],
+ ],
+ 'ExportEntities' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/projects/{project_id}:export',
+ 'body' => '*',
+ 'placeholders' => [
+ 'project_id' => [
+ 'getters' => [
+ 'getProjectId',
+ ],
+ ],
+ ],
+ ],
+ 'GetIndex' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/projects/{project_id}/indexes/{index_id}',
+ 'placeholders' => [
+ 'index_id' => [
+ 'getters' => [
+ 'getIndexId',
+ ],
+ ],
+ 'project_id' => [
+ 'getters' => [
+ 'getProjectId',
+ ],
+ ],
+ ],
+ ],
+ 'ImportEntities' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/projects/{project_id}:import',
+ 'body' => '*',
+ 'placeholders' => [
+ 'project_id' => [
+ 'getters' => [
+ 'getProjectId',
+ ],
+ ],
+ ],
+ ],
+ 'ListIndexes' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/projects/{project_id}/indexes',
+ 'placeholders' => [
+ 'project_id' => [
+ 'getters' => [
+ 'getProjectId',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.longrunning.Operations' => [
+ 'CancelOperation' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/operations/*}:cancel',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteOperation' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/operations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetOperation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/operations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListOperations' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*}/operations',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'numericEnums' => true,
+];
diff --git a/owl-bot-staging/DatastoreAdmin/v1/tests/Unit/V1/Client/DatastoreAdminClientTest.php b/owl-bot-staging/DatastoreAdmin/v1/tests/Unit/V1/Client/DatastoreAdminClientTest.php
new file mode 100644
index 000000000000..f183c3c2f2ce
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/tests/Unit/V1/Client/DatastoreAdminClientTest.php
@@ -0,0 +1,757 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return DatastoreAdminClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new DatastoreAdminClient($options);
+ }
+
+ /** @test */
+ public function createIndexTest()
+ {
+ $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/createIndexTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $projectId2 = 'projectId2939242356';
+ $indexId = 'indexId112508840';
+ $kind = 'kind3292052';
+ $expectedResponse = new Index();
+ $expectedResponse->setProjectId($projectId2);
+ $expectedResponse->setIndexId($indexId);
+ $expectedResponse->setKind($kind);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createIndexTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ $request = new CreateIndexRequest();
+ $response = $gapicClient->createIndex($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.datastore.admin.v1.DatastoreAdmin/CreateIndex', $actualApiFuncCall);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createIndexTest');
+ $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 createIndexExceptionTest()
+ {
+ $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/createIndexTest');
+ $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);
+ $request = new CreateIndexRequest();
+ $response = $gapicClient->createIndex($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createIndexTest');
+ 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 deleteIndexTest()
+ {
+ $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/deleteIndexTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $projectId2 = 'projectId2939242356';
+ $indexId2 = 'indexId2746815835';
+ $kind = 'kind3292052';
+ $expectedResponse = new Index();
+ $expectedResponse->setProjectId($projectId2);
+ $expectedResponse->setIndexId($indexId2);
+ $expectedResponse->setKind($kind);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteIndexTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ $request = new DeleteIndexRequest();
+ $response = $gapicClient->deleteIndex($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.datastore.admin.v1.DatastoreAdmin/DeleteIndex', $actualApiFuncCall);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteIndexTest');
+ $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 deleteIndexExceptionTest()
+ {
+ $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/deleteIndexTest');
+ $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);
+ $request = new DeleteIndexRequest();
+ $response = $gapicClient->deleteIndex($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteIndexTest');
+ 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 exportEntitiesTest()
+ {
+ $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/exportEntitiesTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $outputUrl = 'outputUrl-1273518799';
+ $expectedResponse = new ExportEntitiesResponse();
+ $expectedResponse->setOutputUrl($outputUrl);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/exportEntitiesTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $projectId = 'projectId-1969970175';
+ $outputUrlPrefix = 'outputUrlPrefix1058210144';
+ $request = (new ExportEntitiesRequest())
+ ->setProjectId($projectId)
+ ->setOutputUrlPrefix($outputUrlPrefix);
+ $response = $gapicClient->exportEntities($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.datastore.admin.v1.DatastoreAdmin/ExportEntities', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getProjectId();
+ $this->assertProtobufEquals($projectId, $actualValue);
+ $actualValue = $actualApiRequestObject->getOutputUrlPrefix();
+ $this->assertProtobufEquals($outputUrlPrefix, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/exportEntitiesTest');
+ $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 exportEntitiesExceptionTest()
+ {
+ $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/exportEntitiesTest');
+ $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
+ $projectId = 'projectId-1969970175';
+ $outputUrlPrefix = 'outputUrlPrefix1058210144';
+ $request = (new ExportEntitiesRequest())
+ ->setProjectId($projectId)
+ ->setOutputUrlPrefix($outputUrlPrefix);
+ $response = $gapicClient->exportEntities($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/exportEntitiesTest');
+ 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 getIndexTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $projectId2 = 'projectId2939242356';
+ $indexId2 = 'indexId2746815835';
+ $kind = 'kind3292052';
+ $expectedResponse = new Index();
+ $expectedResponse->setProjectId($projectId2);
+ $expectedResponse->setIndexId($indexId2);
+ $expectedResponse->setKind($kind);
+ $transport->addResponse($expectedResponse);
+ $request = new GetIndexRequest();
+ $response = $gapicClient->getIndex($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.datastore.admin.v1.DatastoreAdmin/GetIndex', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getIndexExceptionTest()
+ {
+ $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 GetIndexRequest();
+ try {
+ $gapicClient->getIndex($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 importEntitiesTest()
+ {
+ $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/importEntitiesTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/importEntitiesTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $projectId = 'projectId-1969970175';
+ $inputUrl = 'inputUrl1707300730';
+ $request = (new ImportEntitiesRequest())
+ ->setProjectId($projectId)
+ ->setInputUrl($inputUrl);
+ $response = $gapicClient->importEntities($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.datastore.admin.v1.DatastoreAdmin/ImportEntities', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getProjectId();
+ $this->assertProtobufEquals($projectId, $actualValue);
+ $actualValue = $actualApiRequestObject->getInputUrl();
+ $this->assertProtobufEquals($inputUrl, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/importEntitiesTest');
+ $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 importEntitiesExceptionTest()
+ {
+ $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/importEntitiesTest');
+ $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
+ $projectId = 'projectId-1969970175';
+ $inputUrl = 'inputUrl1707300730';
+ $request = (new ImportEntitiesRequest())
+ ->setProjectId($projectId)
+ ->setInputUrl($inputUrl);
+ $response = $gapicClient->importEntities($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/importEntitiesTest');
+ 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 listIndexesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $indexesElement = new Index();
+ $indexes = [
+ $indexesElement,
+ ];
+ $expectedResponse = new ListIndexesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setIndexes($indexes);
+ $transport->addResponse($expectedResponse);
+ $request = new ListIndexesRequest();
+ $response = $gapicClient->listIndexes($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getIndexes()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.datastore.admin.v1.DatastoreAdmin/ListIndexes', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listIndexesExceptionTest()
+ {
+ $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 ListIndexesRequest();
+ try {
+ $gapicClient->listIndexes($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 createIndexAsyncTest()
+ {
+ $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/createIndexTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $projectId2 = 'projectId2939242356';
+ $indexId = 'indexId112508840';
+ $kind = 'kind3292052';
+ $expectedResponse = new Index();
+ $expectedResponse->setProjectId($projectId2);
+ $expectedResponse->setIndexId($indexId);
+ $expectedResponse->setKind($kind);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createIndexTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ $request = new CreateIndexRequest();
+ $response = $gapicClient->createIndexAsync($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.datastore.admin.v1.DatastoreAdmin/CreateIndex', $actualApiFuncCall);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createIndexTest');
+ $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/DatastoreAdmin/v1/tests/Unit/V1/DatastoreAdminClientTest.php b/owl-bot-staging/DatastoreAdmin/v1/tests/Unit/V1/DatastoreAdminClientTest.php
new file mode 100644
index 000000000000..64af0e10aeb5
--- /dev/null
+++ b/owl-bot-staging/DatastoreAdmin/v1/tests/Unit/V1/DatastoreAdminClientTest.php
@@ -0,0 +1,666 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return DatastoreAdminClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new DatastoreAdminClient($options);
+ }
+
+ /** @test */
+ public function createIndexTest()
+ {
+ $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/createIndexTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $projectId2 = 'projectId2939242356';
+ $indexId = 'indexId112508840';
+ $kind = 'kind3292052';
+ $expectedResponse = new Index();
+ $expectedResponse->setProjectId($projectId2);
+ $expectedResponse->setIndexId($indexId);
+ $expectedResponse->setKind($kind);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createIndexTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ $response = $gapicClient->createIndex();
+ $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.datastore.admin.v1.DatastoreAdmin/CreateIndex', $actualApiFuncCall);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createIndexTest');
+ $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 createIndexExceptionTest()
+ {
+ $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/createIndexTest');
+ $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);
+ $response = $gapicClient->createIndex();
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createIndexTest');
+ 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 deleteIndexTest()
+ {
+ $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/deleteIndexTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $projectId2 = 'projectId2939242356';
+ $indexId2 = 'indexId2746815835';
+ $kind = 'kind3292052';
+ $expectedResponse = new Index();
+ $expectedResponse->setProjectId($projectId2);
+ $expectedResponse->setIndexId($indexId2);
+ $expectedResponse->setKind($kind);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteIndexTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ $response = $gapicClient->deleteIndex();
+ $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.datastore.admin.v1.DatastoreAdmin/DeleteIndex', $actualApiFuncCall);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteIndexTest');
+ $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 deleteIndexExceptionTest()
+ {
+ $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/deleteIndexTest');
+ $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);
+ $response = $gapicClient->deleteIndex();
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteIndexTest');
+ 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 exportEntitiesTest()
+ {
+ $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/exportEntitiesTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $outputUrl = 'outputUrl-1273518799';
+ $expectedResponse = new ExportEntitiesResponse();
+ $expectedResponse->setOutputUrl($outputUrl);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/exportEntitiesTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $projectId = 'projectId-1969970175';
+ $outputUrlPrefix = 'outputUrlPrefix1058210144';
+ $response = $gapicClient->exportEntities($projectId, $outputUrlPrefix);
+ $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.datastore.admin.v1.DatastoreAdmin/ExportEntities', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getProjectId();
+ $this->assertProtobufEquals($projectId, $actualValue);
+ $actualValue = $actualApiRequestObject->getOutputUrlPrefix();
+ $this->assertProtobufEquals($outputUrlPrefix, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/exportEntitiesTest');
+ $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 exportEntitiesExceptionTest()
+ {
+ $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/exportEntitiesTest');
+ $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
+ $projectId = 'projectId-1969970175';
+ $outputUrlPrefix = 'outputUrlPrefix1058210144';
+ $response = $gapicClient->exportEntities($projectId, $outputUrlPrefix);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/exportEntitiesTest');
+ 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 getIndexTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $projectId2 = 'projectId2939242356';
+ $indexId2 = 'indexId2746815835';
+ $kind = 'kind3292052';
+ $expectedResponse = new Index();
+ $expectedResponse->setProjectId($projectId2);
+ $expectedResponse->setIndexId($indexId2);
+ $expectedResponse->setKind($kind);
+ $transport->addResponse($expectedResponse);
+ $response = $gapicClient->getIndex();
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.datastore.admin.v1.DatastoreAdmin/GetIndex', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getIndexExceptionTest()
+ {
+ $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);
+ try {
+ $gapicClient->getIndex();
+ // 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 importEntitiesTest()
+ {
+ $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/importEntitiesTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/importEntitiesTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $projectId = 'projectId-1969970175';
+ $inputUrl = 'inputUrl1707300730';
+ $response = $gapicClient->importEntities($projectId, $inputUrl);
+ $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.datastore.admin.v1.DatastoreAdmin/ImportEntities', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getProjectId();
+ $this->assertProtobufEquals($projectId, $actualValue);
+ $actualValue = $actualApiRequestObject->getInputUrl();
+ $this->assertProtobufEquals($inputUrl, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/importEntitiesTest');
+ $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 importEntitiesExceptionTest()
+ {
+ $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/importEntitiesTest');
+ $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
+ $projectId = 'projectId-1969970175';
+ $inputUrl = 'inputUrl1707300730';
+ $response = $gapicClient->importEntities($projectId, $inputUrl);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/importEntitiesTest');
+ 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 listIndexesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $indexesElement = new Index();
+ $indexes = [
+ $indexesElement,
+ ];
+ $expectedResponse = new ListIndexesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setIndexes($indexes);
+ $transport->addResponse($expectedResponse);
+ $response = $gapicClient->listIndexes();
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getIndexes()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.datastore.admin.v1.DatastoreAdmin/ListIndexes', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listIndexesExceptionTest()
+ {
+ $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);
+ try {
+ $gapicClient->listIndexes();
+ // 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());
+ }
+}
diff --git a/owl-bot-staging/Deploy/v1/proto/src/GPBMetadata/Google/Cloud/Deploy/V1/CloudDeploy.php b/owl-bot-staging/Deploy/v1/proto/src/GPBMetadata/Google/Cloud/Deploy/V1/CloudDeploy.php
new file mode 100644
index 000000000000..7a452656acde
Binary files /dev/null and b/owl-bot-staging/Deploy/v1/proto/src/GPBMetadata/Google/Cloud/Deploy/V1/CloudDeploy.php differ
diff --git a/owl-bot-staging/Deploy/v1/proto/src/GPBMetadata/Google/Cloud/Deploy/V1/DeliverypipelineNotificationPayload.php b/owl-bot-staging/Deploy/v1/proto/src/GPBMetadata/Google/Cloud/Deploy/V1/DeliverypipelineNotificationPayload.php
new file mode 100644
index 000000000000..b9331ab0fb29
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/GPBMetadata/Google/Cloud/Deploy/V1/DeliverypipelineNotificationPayload.php
@@ -0,0 +1,32 @@
+internalAddGeneratedFile(
+ '
+ß
+Bgoogle/cloud/deploy/v1/deliverypipeline_notification_payload.protogoogle.cloud.deploy.v1"{
+!DeliveryPipelineNotificationEvent
+message (
+delivery_pipeline ( *
+type (2.google.cloud.deploy.v1.TypeB|
+com.google.cloud.deploy.v1B(DeliveryPipelineNotificationPayloadProtoPZ2cloud.google.com/go/deploy/apiv1/deploypb;deploypbbproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/GPBMetadata/Google/Cloud/Deploy/V1/JobrunNotificationPayload.php b/owl-bot-staging/Deploy/v1/proto/src/GPBMetadata/Google/Cloud/Deploy/V1/JobrunNotificationPayload.php
new file mode 100644
index 000000000000..dc9a3000723f
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/GPBMetadata/Google/Cloud/Deploy/V1/JobrunNotificationPayload.php
@@ -0,0 +1,36 @@
+internalAddGeneratedFile(
+ '
+‹
+8google/cloud/deploy/v1/jobrun_notification_payload.protogoogle.cloud.deploy.v1"º
+JobRunNotificationEvent
+message (
+job_run (
+pipeline_uid (
+release_uid (
+rollout_uid (
+ target_id ( *
+type (2.google.cloud.deploy.v1.TypeBr
+com.google.cloud.deploy.v1BJobRunNotificationPayloadProtoPZ2cloud.google.com/go/deploy/apiv1/deploypb;deploypbbproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/GPBMetadata/Google/Cloud/Deploy/V1/LogEnums.php b/owl-bot-staging/Deploy/v1/proto/src/GPBMetadata/Google/Cloud/Deploy/V1/LogEnums.php
new file mode 100644
index 000000000000..dd6b7d9ffbff
Binary files /dev/null and b/owl-bot-staging/Deploy/v1/proto/src/GPBMetadata/Google/Cloud/Deploy/V1/LogEnums.php differ
diff --git a/owl-bot-staging/Deploy/v1/proto/src/GPBMetadata/Google/Cloud/Deploy/V1/ReleaseNotificationPayload.php b/owl-bot-staging/Deploy/v1/proto/src/GPBMetadata/Google/Cloud/Deploy/V1/ReleaseNotificationPayload.php
new file mode 100644
index 000000000000..83d7773edb02
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/GPBMetadata/Google/Cloud/Deploy/V1/ReleaseNotificationPayload.php
@@ -0,0 +1,32 @@
+internalAddGeneratedFile(
+ '
+º
+9google/cloud/deploy/v1/release_notification_payload.protogoogle.cloud.deploy.v1"h
+ReleaseNotificationEvent
+message (
+release ( *
+type (2.google.cloud.deploy.v1.TypeBs
+com.google.cloud.deploy.v1BReleaseNotificationPayloadProtoPZ2cloud.google.com/go/deploy/apiv1/deploypb;deploypbbproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/GPBMetadata/Google/Cloud/Deploy/V1/ReleaseRenderPayload.php b/owl-bot-staging/Deploy/v1/proto/src/GPBMetadata/Google/Cloud/Deploy/V1/ReleaseRenderPayload.php
new file mode 100644
index 000000000000..de716878e6a7
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/GPBMetadata/Google/Cloud/Deploy/V1/ReleaseRenderPayload.php
@@ -0,0 +1,30 @@
+internalAddGeneratedFile(
+ '
+ü
+3google/cloud/deploy/v1/release_render_payload.protogoogle.cloud.deploy.v1"6
+ReleaseRenderEvent
+message (
+release ( Bm
+com.google.cloud.deploy.v1BReleaseRenderPayloadProtoPZ2cloud.google.com/go/deploy/apiv1/deploypb;deploypbbproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/GPBMetadata/Google/Cloud/Deploy/V1/RolloutNotificationPayload.php b/owl-bot-staging/Deploy/v1/proto/src/GPBMetadata/Google/Cloud/Deploy/V1/RolloutNotificationPayload.php
new file mode 100644
index 000000000000..ca8674a581f6
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/GPBMetadata/Google/Cloud/Deploy/V1/RolloutNotificationPayload.php
@@ -0,0 +1,35 @@
+internalAddGeneratedFile(
+ '
+ù
+9google/cloud/deploy/v1/rollout_notification_payload.protogoogle.cloud.deploy.v1"¦
+RolloutNotificationEvent
+message (
+pipeline_uid (
+release_uid (
+rollout ( *
+type (2.google.cloud.deploy.v1.Type
+ target_id ( Bs
+com.google.cloud.deploy.v1BRolloutNotificationPayloadProtoPZ2cloud.google.com/go/deploy/apiv1/deploypb;deploypbbproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/GPBMetadata/Google/Cloud/Deploy/V1/TargetNotificationPayload.php b/owl-bot-staging/Deploy/v1/proto/src/GPBMetadata/Google/Cloud/Deploy/V1/TargetNotificationPayload.php
new file mode 100644
index 000000000000..712c49b2d540
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/GPBMetadata/Google/Cloud/Deploy/V1/TargetNotificationPayload.php
@@ -0,0 +1,32 @@
+internalAddGeneratedFile(
+ '
+¶
+8google/cloud/deploy/v1/target_notification_payload.protogoogle.cloud.deploy.v1"f
+TargetNotificationEvent
+message (
+target ( *
+type (2.google.cloud.deploy.v1.TypeBr
+com.google.cloud.deploy.v1BTargetNotificationPayloadProtoPZ2cloud.google.com/go/deploy/apiv1/deploypb;deploypbbproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/AbandonReleaseRequest.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/AbandonReleaseRequest.php
new file mode 100644
index 000000000000..8ec76e6c8a19
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/AbandonReleaseRequest.php
@@ -0,0 +1,91 @@
+google.cloud.deploy.v1.AbandonReleaseRequest
+ */
+class AbandonReleaseRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the Release. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}.
+ *
+ * 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 Release. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}. Please see
+ * {@see CloudDeployClient::releaseName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Deploy\V1\AbandonReleaseRequest
+ *
+ * @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 Release. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the Release. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}.
+ *
+ * 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 Release. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}.
+ *
+ * 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/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/AbandonReleaseResponse.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/AbandonReleaseResponse.php
new file mode 100644
index 000000000000..0c9a99c6c1de
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/AbandonReleaseResponse.php
@@ -0,0 +1,33 @@
+google.cloud.deploy.v1.AbandonReleaseResponse
+ */
+class AbandonReleaseResponse extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/AdvanceChildRolloutJob.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/AdvanceChildRolloutJob.php
new file mode 100644
index 000000000000..aecd9a83cdcf
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/AdvanceChildRolloutJob.php
@@ -0,0 +1,33 @@
+google.cloud.deploy.v1.AdvanceChildRolloutJob
+ */
+class AdvanceChildRolloutJob extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/AdvanceChildRolloutJobRun.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/AdvanceChildRolloutJobRun.php
new file mode 100644
index 000000000000..a450032b3208
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/AdvanceChildRolloutJobRun.php
@@ -0,0 +1,110 @@
+google.cloud.deploy.v1.AdvanceChildRolloutJobRun
+ */
+class AdvanceChildRolloutJobRun extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. Name of the `ChildRollout`. Format is projects/{project}/
+ * locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/[a-z][a-z0-9\-]{0,62}.
+ *
+ * Generated from protobuf field string rollout = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $rollout = '';
+ /**
+ * Output only. the ID of the ChildRollout's Phase.
+ *
+ * Generated from protobuf field string rollout_phase_id = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $rollout_phase_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $rollout
+ * Output only. Name of the `ChildRollout`. Format is projects/{project}/
+ * locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/[a-z][a-z0-9\-]{0,62}.
+ * @type string $rollout_phase_id
+ * Output only. the ID of the ChildRollout's Phase.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Name of the `ChildRollout`. Format is projects/{project}/
+ * locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/[a-z][a-z0-9\-]{0,62}.
+ *
+ * Generated from protobuf field string rollout = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getRollout()
+ {
+ return $this->rollout;
+ }
+
+ /**
+ * Output only. Name of the `ChildRollout`. Format is projects/{project}/
+ * locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/[a-z][a-z0-9\-]{0,62}.
+ *
+ * Generated from protobuf field string rollout = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setRollout($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->rollout = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. the ID of the ChildRollout's Phase.
+ *
+ * Generated from protobuf field string rollout_phase_id = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getRolloutPhaseId()
+ {
+ return $this->rollout_phase_id;
+ }
+
+ /**
+ * Output only. the ID of the ChildRollout's Phase.
+ *
+ * Generated from protobuf field string rollout_phase_id = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setRolloutPhaseId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->rollout_phase_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/AdvanceRolloutRequest.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/AdvanceRolloutRequest.php
new file mode 100644
index 000000000000..8e124ea7928f
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/AdvanceRolloutRequest.php
@@ -0,0 +1,127 @@
+google.cloud.deploy.v1.AdvanceRolloutRequest
+ */
+class AdvanceRolloutRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Required. The phase ID to advance the `Rollout` to.
+ *
+ * Generated from protobuf field string phase_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $phase_id = '';
+
+ /**
+ * @param string $name Required. Name of the Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}. Please see
+ * {@see CloudDeployClient::rolloutName()} for help formatting this field.
+ * @param string $phaseId Required. The phase ID to advance the `Rollout` to.
+ *
+ * @return \Google\Cloud\Deploy\V1\AdvanceRolloutRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name, string $phaseId): self
+ {
+ return (new self())
+ ->setName($name)
+ ->setPhaseId($phaseId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}.
+ * @type string $phase_id
+ * Required. The phase ID to advance the `Rollout` to.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}.
+ *
+ * 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 Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}.
+ *
+ * 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 phase ID to advance the `Rollout` to.
+ *
+ * Generated from protobuf field string phase_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getPhaseId()
+ {
+ return $this->phase_id;
+ }
+
+ /**
+ * Required. The phase ID to advance the `Rollout` to.
+ *
+ * Generated from protobuf field string phase_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setPhaseId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->phase_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/AdvanceRolloutResponse.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/AdvanceRolloutResponse.php
new file mode 100644
index 000000000000..14f85ee02712
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/AdvanceRolloutResponse.php
@@ -0,0 +1,33 @@
+google.cloud.deploy.v1.AdvanceRolloutResponse
+ */
+class AdvanceRolloutResponse extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/AnthosCluster.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/AnthosCluster.php
new file mode 100644
index 000000000000..b40d7369ecc3
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/AnthosCluster.php
@@ -0,0 +1,75 @@
+google.cloud.deploy.v1.AnthosCluster
+ */
+class AnthosCluster extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Membership of the GKE Hub-registered cluster to which to apply the Skaffold
+ * configuration. Format is
+ * `projects/{project}/locations/{location}/memberships/{membership_name}`.
+ *
+ * Generated from protobuf field string membership = 1 [(.google.api.resource_reference) = {
+ */
+ protected $membership = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $membership
+ * Membership of the GKE Hub-registered cluster to which to apply the Skaffold
+ * configuration. Format is
+ * `projects/{project}/locations/{location}/memberships/{membership_name}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Membership of the GKE Hub-registered cluster to which to apply the Skaffold
+ * configuration. Format is
+ * `projects/{project}/locations/{location}/memberships/{membership_name}`.
+ *
+ * Generated from protobuf field string membership = 1 [(.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getMembership()
+ {
+ return $this->membership;
+ }
+
+ /**
+ * Membership of the GKE Hub-registered cluster to which to apply the Skaffold
+ * configuration. Format is
+ * `projects/{project}/locations/{location}/memberships/{membership_name}`.
+ *
+ * Generated from protobuf field string membership = 1 [(.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setMembership($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->membership = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ApproveRolloutRequest.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ApproveRolloutRequest.php
new file mode 100644
index 000000000000..250151c98ce2
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ApproveRolloutRequest.php
@@ -0,0 +1,125 @@
+google.cloud.deploy.v1.ApproveRolloutRequest
+ */
+class ApproveRolloutRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Required. True = approve; false = reject
+ *
+ * Generated from protobuf field bool approved = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $approved = false;
+
+ /**
+ * @param string $name Required. Name of the Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}. Please see
+ * {@see CloudDeployClient::rolloutName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Deploy\V1\ApproveRolloutRequest
+ *
+ * @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 Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}.
+ * @type bool $approved
+ * Required. True = approve; false = reject
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}.
+ *
+ * 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 Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}.
+ *
+ * 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. True = approve; false = reject
+ *
+ * Generated from protobuf field bool approved = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return bool
+ */
+ public function getApproved()
+ {
+ return $this->approved;
+ }
+
+ /**
+ * Required. True = approve; false = reject
+ *
+ * Generated from protobuf field bool approved = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param bool $var
+ * @return $this
+ */
+ public function setApproved($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->approved = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ApproveRolloutResponse.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ApproveRolloutResponse.php
new file mode 100644
index 000000000000..afac40c7146c
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ApproveRolloutResponse.php
@@ -0,0 +1,33 @@
+google.cloud.deploy.v1.ApproveRolloutResponse
+ */
+class ApproveRolloutResponse extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/BuildArtifact.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/BuildArtifact.php
new file mode 100644
index 000000000000..23cd5da0a754
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/BuildArtifact.php
@@ -0,0 +1,109 @@
+google.cloud.deploy.v1.BuildArtifact
+ */
+class BuildArtifact extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Image name in Skaffold configuration.
+ *
+ * Generated from protobuf field string image = 3;
+ */
+ protected $image = '';
+ /**
+ * Image tag to use. This will generally be the full path to an image, such
+ * as "gcr.io/my-project/busybox:1.2.3" or
+ * "gcr.io/my-project/busybox@sha256:abc123".
+ *
+ * Generated from protobuf field string tag = 2;
+ */
+ protected $tag = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $image
+ * Image name in Skaffold configuration.
+ * @type string $tag
+ * Image tag to use. This will generally be the full path to an image, such
+ * as "gcr.io/my-project/busybox:1.2.3" or
+ * "gcr.io/my-project/busybox@sha256:abc123".
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Image name in Skaffold configuration.
+ *
+ * Generated from protobuf field string image = 3;
+ * @return string
+ */
+ public function getImage()
+ {
+ return $this->image;
+ }
+
+ /**
+ * Image name in Skaffold configuration.
+ *
+ * Generated from protobuf field string image = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setImage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->image = $var;
+
+ return $this;
+ }
+
+ /**
+ * Image tag to use. This will generally be the full path to an image, such
+ * as "gcr.io/my-project/busybox:1.2.3" or
+ * "gcr.io/my-project/busybox@sha256:abc123".
+ *
+ * Generated from protobuf field string tag = 2;
+ * @return string
+ */
+ public function getTag()
+ {
+ return $this->tag;
+ }
+
+ /**
+ * Image tag to use. This will generally be the full path to an image, such
+ * as "gcr.io/my-project/busybox:1.2.3" or
+ * "gcr.io/my-project/busybox@sha256:abc123".
+ *
+ * Generated from protobuf field string tag = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setTag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->tag = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Canary.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Canary.php
new file mode 100644
index 000000000000..929faf223233
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Canary.php
@@ -0,0 +1,166 @@
+google.cloud.deploy.v1.Canary
+ */
+class Canary extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. Runtime specific configurations for the deployment strategy. The
+ * runtime configuration is used to determine how Cloud Deploy will split
+ * traffic to enable a progressive deployment.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.RuntimeConfig runtime_config = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $runtime_config = null;
+ protected $mode;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Deploy\V1\RuntimeConfig $runtime_config
+ * Optional. Runtime specific configurations for the deployment strategy. The
+ * runtime configuration is used to determine how Cloud Deploy will split
+ * traffic to enable a progressive deployment.
+ * @type \Google\Cloud\Deploy\V1\CanaryDeployment $canary_deployment
+ * Configures the progressive based deployment for a Target.
+ * @type \Google\Cloud\Deploy\V1\CustomCanaryDeployment $custom_canary_deployment
+ * Configures the progressive based deployment for a Target, but allows
+ * customizing at the phase level where a phase represents each of the
+ * percentage deployments.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. Runtime specific configurations for the deployment strategy. The
+ * runtime configuration is used to determine how Cloud Deploy will split
+ * traffic to enable a progressive deployment.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.RuntimeConfig runtime_config = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\Deploy\V1\RuntimeConfig|null
+ */
+ public function getRuntimeConfig()
+ {
+ return $this->runtime_config;
+ }
+
+ public function hasRuntimeConfig()
+ {
+ return isset($this->runtime_config);
+ }
+
+ public function clearRuntimeConfig()
+ {
+ unset($this->runtime_config);
+ }
+
+ /**
+ * Optional. Runtime specific configurations for the deployment strategy. The
+ * runtime configuration is used to determine how Cloud Deploy will split
+ * traffic to enable a progressive deployment.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.RuntimeConfig runtime_config = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\Deploy\V1\RuntimeConfig $var
+ * @return $this
+ */
+ public function setRuntimeConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\RuntimeConfig::class);
+ $this->runtime_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configures the progressive based deployment for a Target.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.CanaryDeployment canary_deployment = 2;
+ * @return \Google\Cloud\Deploy\V1\CanaryDeployment|null
+ */
+ public function getCanaryDeployment()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasCanaryDeployment()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Configures the progressive based deployment for a Target.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.CanaryDeployment canary_deployment = 2;
+ * @param \Google\Cloud\Deploy\V1\CanaryDeployment $var
+ * @return $this
+ */
+ public function setCanaryDeployment($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\CanaryDeployment::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Configures the progressive based deployment for a Target, but allows
+ * customizing at the phase level where a phase represents each of the
+ * percentage deployments.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.CustomCanaryDeployment custom_canary_deployment = 3;
+ * @return \Google\Cloud\Deploy\V1\CustomCanaryDeployment|null
+ */
+ public function getCustomCanaryDeployment()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasCustomCanaryDeployment()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * Configures the progressive based deployment for a Target, but allows
+ * customizing at the phase level where a phase represents each of the
+ * percentage deployments.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.CustomCanaryDeployment custom_canary_deployment = 3;
+ * @param \Google\Cloud\Deploy\V1\CustomCanaryDeployment $var
+ * @return $this
+ */
+ public function setCustomCanaryDeployment($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\CustomCanaryDeployment::class);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getMode()
+ {
+ return $this->whichOneof("mode");
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CanaryDeployment.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CanaryDeployment.php
new file mode 100644
index 000000000000..c3825233ea7c
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CanaryDeployment.php
@@ -0,0 +1,109 @@
+google.cloud.deploy.v1.CanaryDeployment
+ */
+class CanaryDeployment extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The percentage based deployments that will occur as a part of a
+ * `Rollout`. List is expected in ascending order and each integer n is
+ * 0 <= n < 100.
+ *
+ * Generated from protobuf field repeated int32 percentages = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $percentages;
+ /**
+ * Whether to run verify tests after each percentage deployment.
+ *
+ * Generated from protobuf field bool verify = 2;
+ */
+ protected $verify = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $percentages
+ * Required. The percentage based deployments that will occur as a part of a
+ * `Rollout`. List is expected in ascending order and each integer n is
+ * 0 <= n < 100.
+ * @type bool $verify
+ * Whether to run verify tests after each percentage deployment.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The percentage based deployments that will occur as a part of a
+ * `Rollout`. List is expected in ascending order and each integer n is
+ * 0 <= n < 100.
+ *
+ * Generated from protobuf field repeated int32 percentages = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getPercentages()
+ {
+ return $this->percentages;
+ }
+
+ /**
+ * Required. The percentage based deployments that will occur as a part of a
+ * `Rollout`. List is expected in ascending order and each integer n is
+ * 0 <= n < 100.
+ *
+ * Generated from protobuf field repeated int32 percentages = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setPercentages($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::INT32);
+ $this->percentages = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Whether to run verify tests after each percentage deployment.
+ *
+ * Generated from protobuf field bool verify = 2;
+ * @return bool
+ */
+ public function getVerify()
+ {
+ return $this->verify;
+ }
+
+ /**
+ * Whether to run verify tests after each percentage deployment.
+ *
+ * Generated from protobuf field bool verify = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setVerify($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->verify = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CancelRolloutRequest.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CancelRolloutRequest.php
new file mode 100644
index 000000000000..853c773e3f84
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CancelRolloutRequest.php
@@ -0,0 +1,91 @@
+google.cloud.deploy.v1.CancelRolloutRequest
+ */
+class CancelRolloutRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}.
+ *
+ * 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 Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}. Please see
+ * {@see CloudDeployClient::rolloutName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Deploy\V1\CancelRolloutRequest
+ *
+ * @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 Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}.
+ *
+ * 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 Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}.
+ *
+ * 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/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CancelRolloutResponse.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CancelRolloutResponse.php
new file mode 100644
index 000000000000..c7b2af7c39ac
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CancelRolloutResponse.php
@@ -0,0 +1,33 @@
+google.cloud.deploy.v1.CancelRolloutResponse
+ */
+class CancelRolloutResponse extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ChildRolloutJobs.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ChildRolloutJobs.php
new file mode 100644
index 000000000000..a5fb687936dd
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ChildRolloutJobs.php
@@ -0,0 +1,101 @@
+google.cloud.deploy.v1.ChildRolloutJobs
+ */
+class ChildRolloutJobs extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. List of CreateChildRolloutJobs
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.Job create_rollout_jobs = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $create_rollout_jobs;
+ /**
+ * Output only. List of AdvanceChildRolloutJobs
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.Job advance_rollout_jobs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $advance_rollout_jobs;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Deploy\V1\Job>|\Google\Protobuf\Internal\RepeatedField $create_rollout_jobs
+ * Output only. List of CreateChildRolloutJobs
+ * @type array<\Google\Cloud\Deploy\V1\Job>|\Google\Protobuf\Internal\RepeatedField $advance_rollout_jobs
+ * Output only. List of AdvanceChildRolloutJobs
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. List of CreateChildRolloutJobs
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.Job create_rollout_jobs = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getCreateRolloutJobs()
+ {
+ return $this->create_rollout_jobs;
+ }
+
+ /**
+ * Output only. List of CreateChildRolloutJobs
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.Job create_rollout_jobs = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array<\Google\Cloud\Deploy\V1\Job>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setCreateRolloutJobs($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Deploy\V1\Job::class);
+ $this->create_rollout_jobs = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. List of AdvanceChildRolloutJobs
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.Job advance_rollout_jobs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAdvanceRolloutJobs()
+ {
+ return $this->advance_rollout_jobs;
+ }
+
+ /**
+ * Output only. List of AdvanceChildRolloutJobs
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.Job advance_rollout_jobs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array<\Google\Cloud\Deploy\V1\Job>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAdvanceRolloutJobs($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Deploy\V1\Job::class);
+ $this->advance_rollout_jobs = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CloudDeployGrpcClient.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CloudDeployGrpcClient.php
new file mode 100644
index 000000000000..7bf0ba22d867
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CloudDeployGrpcClient.php
@@ -0,0 +1,426 @@
+_simpleRequest('/google.cloud.deploy.v1.CloudDeploy/ListDeliveryPipelines',
+ $argument,
+ ['\Google\Cloud\Deploy\V1\ListDeliveryPipelinesResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Gets details of a single DeliveryPipeline.
+ * @param \Google\Cloud\Deploy\V1\GetDeliveryPipelineRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetDeliveryPipeline(\Google\Cloud\Deploy\V1\GetDeliveryPipelineRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.deploy.v1.CloudDeploy/GetDeliveryPipeline',
+ $argument,
+ ['\Google\Cloud\Deploy\V1\DeliveryPipeline', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Creates a new DeliveryPipeline in a given project and location.
+ * @param \Google\Cloud\Deploy\V1\CreateDeliveryPipelineRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CreateDeliveryPipeline(\Google\Cloud\Deploy\V1\CreateDeliveryPipelineRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.deploy.v1.CloudDeploy/CreateDeliveryPipeline',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Updates the parameters of a single DeliveryPipeline.
+ * @param \Google\Cloud\Deploy\V1\UpdateDeliveryPipelineRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function UpdateDeliveryPipeline(\Google\Cloud\Deploy\V1\UpdateDeliveryPipelineRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.deploy.v1.CloudDeploy/UpdateDeliveryPipeline',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Deletes a single DeliveryPipeline.
+ * @param \Google\Cloud\Deploy\V1\DeleteDeliveryPipelineRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function DeleteDeliveryPipeline(\Google\Cloud\Deploy\V1\DeleteDeliveryPipelineRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.deploy.v1.CloudDeploy/DeleteDeliveryPipeline',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Lists Targets in a given project and location.
+ * @param \Google\Cloud\Deploy\V1\ListTargetsRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ListTargets(\Google\Cloud\Deploy\V1\ListTargetsRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.deploy.v1.CloudDeploy/ListTargets',
+ $argument,
+ ['\Google\Cloud\Deploy\V1\ListTargetsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Gets details of a single Target.
+ * @param \Google\Cloud\Deploy\V1\GetTargetRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetTarget(\Google\Cloud\Deploy\V1\GetTargetRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.deploy.v1.CloudDeploy/GetTarget',
+ $argument,
+ ['\Google\Cloud\Deploy\V1\Target', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Creates a new Target in a given project and location.
+ * @param \Google\Cloud\Deploy\V1\CreateTargetRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CreateTarget(\Google\Cloud\Deploy\V1\CreateTargetRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.deploy.v1.CloudDeploy/CreateTarget',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Updates the parameters of a single Target.
+ * @param \Google\Cloud\Deploy\V1\UpdateTargetRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function UpdateTarget(\Google\Cloud\Deploy\V1\UpdateTargetRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.deploy.v1.CloudDeploy/UpdateTarget',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Deletes a single Target.
+ * @param \Google\Cloud\Deploy\V1\DeleteTargetRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function DeleteTarget(\Google\Cloud\Deploy\V1\DeleteTargetRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.deploy.v1.CloudDeploy/DeleteTarget',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Lists Releases in a given project and location.
+ * @param \Google\Cloud\Deploy\V1\ListReleasesRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ListReleases(\Google\Cloud\Deploy\V1\ListReleasesRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.deploy.v1.CloudDeploy/ListReleases',
+ $argument,
+ ['\Google\Cloud\Deploy\V1\ListReleasesResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Gets details of a single Release.
+ * @param \Google\Cloud\Deploy\V1\GetReleaseRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetRelease(\Google\Cloud\Deploy\V1\GetReleaseRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.deploy.v1.CloudDeploy/GetRelease',
+ $argument,
+ ['\Google\Cloud\Deploy\V1\Release', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Creates a new Release in a given project and location.
+ * @param \Google\Cloud\Deploy\V1\CreateReleaseRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CreateRelease(\Google\Cloud\Deploy\V1\CreateReleaseRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.deploy.v1.CloudDeploy/CreateRelease',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Abandons a Release in the Delivery Pipeline.
+ * @param \Google\Cloud\Deploy\V1\AbandonReleaseRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function AbandonRelease(\Google\Cloud\Deploy\V1\AbandonReleaseRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.deploy.v1.CloudDeploy/AbandonRelease',
+ $argument,
+ ['\Google\Cloud\Deploy\V1\AbandonReleaseResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Approves a Rollout.
+ * @param \Google\Cloud\Deploy\V1\ApproveRolloutRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ApproveRollout(\Google\Cloud\Deploy\V1\ApproveRolloutRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.deploy.v1.CloudDeploy/ApproveRollout',
+ $argument,
+ ['\Google\Cloud\Deploy\V1\ApproveRolloutResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Advances a Rollout in a given project and location.
+ * @param \Google\Cloud\Deploy\V1\AdvanceRolloutRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function AdvanceRollout(\Google\Cloud\Deploy\V1\AdvanceRolloutRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.deploy.v1.CloudDeploy/AdvanceRollout',
+ $argument,
+ ['\Google\Cloud\Deploy\V1\AdvanceRolloutResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Cancels a Rollout in a given project and location.
+ * @param \Google\Cloud\Deploy\V1\CancelRolloutRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CancelRollout(\Google\Cloud\Deploy\V1\CancelRolloutRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.deploy.v1.CloudDeploy/CancelRollout',
+ $argument,
+ ['\Google\Cloud\Deploy\V1\CancelRolloutResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Lists Rollouts in a given project and location.
+ * @param \Google\Cloud\Deploy\V1\ListRolloutsRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ListRollouts(\Google\Cloud\Deploy\V1\ListRolloutsRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.deploy.v1.CloudDeploy/ListRollouts',
+ $argument,
+ ['\Google\Cloud\Deploy\V1\ListRolloutsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Gets details of a single Rollout.
+ * @param \Google\Cloud\Deploy\V1\GetRolloutRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetRollout(\Google\Cloud\Deploy\V1\GetRolloutRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.deploy.v1.CloudDeploy/GetRollout',
+ $argument,
+ ['\Google\Cloud\Deploy\V1\Rollout', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Creates a new Rollout in a given project and location.
+ * @param \Google\Cloud\Deploy\V1\CreateRolloutRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function CreateRollout(\Google\Cloud\Deploy\V1\CreateRolloutRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.deploy.v1.CloudDeploy/CreateRollout',
+ $argument,
+ ['\Google\LongRunning\Operation', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Ignores the specified Job in a Rollout.
+ * @param \Google\Cloud\Deploy\V1\IgnoreJobRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function IgnoreJob(\Google\Cloud\Deploy\V1\IgnoreJobRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.deploy.v1.CloudDeploy/IgnoreJob',
+ $argument,
+ ['\Google\Cloud\Deploy\V1\IgnoreJobResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Retries the specified Job in a Rollout.
+ * @param \Google\Cloud\Deploy\V1\RetryJobRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function RetryJob(\Google\Cloud\Deploy\V1\RetryJobRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.deploy.v1.CloudDeploy/RetryJob',
+ $argument,
+ ['\Google\Cloud\Deploy\V1\RetryJobResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Lists JobRuns in a given project and location.
+ * @param \Google\Cloud\Deploy\V1\ListJobRunsRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ListJobRuns(\Google\Cloud\Deploy\V1\ListJobRunsRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.deploy.v1.CloudDeploy/ListJobRuns',
+ $argument,
+ ['\Google\Cloud\Deploy\V1\ListJobRunsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Gets details of a single JobRun.
+ * @param \Google\Cloud\Deploy\V1\GetJobRunRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetJobRun(\Google\Cloud\Deploy\V1\GetJobRunRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.deploy.v1.CloudDeploy/GetJobRun',
+ $argument,
+ ['\Google\Cloud\Deploy\V1\JobRun', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Terminates a Job Run in a given project and location.
+ * @param \Google\Cloud\Deploy\V1\TerminateJobRunRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function TerminateJobRun(\Google\Cloud\Deploy\V1\TerminateJobRunRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.deploy.v1.CloudDeploy/TerminateJobRun',
+ $argument,
+ ['\Google\Cloud\Deploy\V1\TerminateJobRunResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Gets the configuration for a location.
+ * @param \Google\Cloud\Deploy\V1\GetConfigRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetConfig(\Google\Cloud\Deploy\V1\GetConfigRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.deploy.v1.CloudDeploy/GetConfig',
+ $argument,
+ ['\Google\Cloud\Deploy\V1\Config', 'decode'],
+ $metadata, $options);
+ }
+
+}
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CloudRunConfig.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CloudRunConfig.php
new file mode 100644
index 000000000000..358ed08114b4
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CloudRunConfig.php
@@ -0,0 +1,79 @@
+google.cloud.deploy.v1.CloudRunConfig
+ */
+class CloudRunConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Whether Cloud Deploy should update the traffic stanza in a Cloud Run
+ * Service on the user's behalf to facilitate traffic splitting. This is
+ * required to be true for CanaryDeployments, but optional for
+ * CustomCanaryDeployments.
+ *
+ * Generated from protobuf field bool automatic_traffic_control = 1;
+ */
+ protected $automatic_traffic_control = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $automatic_traffic_control
+ * Whether Cloud Deploy should update the traffic stanza in a Cloud Run
+ * Service on the user's behalf to facilitate traffic splitting. This is
+ * required to be true for CanaryDeployments, but optional for
+ * CustomCanaryDeployments.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Whether Cloud Deploy should update the traffic stanza in a Cloud Run
+ * Service on the user's behalf to facilitate traffic splitting. This is
+ * required to be true for CanaryDeployments, but optional for
+ * CustomCanaryDeployments.
+ *
+ * Generated from protobuf field bool automatic_traffic_control = 1;
+ * @return bool
+ */
+ public function getAutomaticTrafficControl()
+ {
+ return $this->automatic_traffic_control;
+ }
+
+ /**
+ * Whether Cloud Deploy should update the traffic stanza in a Cloud Run
+ * Service on the user's behalf to facilitate traffic splitting. This is
+ * required to be true for CanaryDeployments, but optional for
+ * CustomCanaryDeployments.
+ *
+ * Generated from protobuf field bool automatic_traffic_control = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setAutomaticTrafficControl($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->automatic_traffic_control = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CloudRunLocation.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CloudRunLocation.php
new file mode 100644
index 000000000000..ff0ebad3a710
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CloudRunLocation.php
@@ -0,0 +1,71 @@
+google.cloud.deploy.v1.CloudRunLocation
+ */
+class CloudRunLocation extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The location for the Cloud Run Service. Format must be
+ * `projects/{project}/locations/{location}`.
+ *
+ * Generated from protobuf field string location = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $location = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $location
+ * Required. The location for the Cloud Run Service. Format must be
+ * `projects/{project}/locations/{location}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The location for the Cloud Run Service. Format must be
+ * `projects/{project}/locations/{location}`.
+ *
+ * Generated from protobuf field string location = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getLocation()
+ {
+ return $this->location;
+ }
+
+ /**
+ * Required. The location for the Cloud Run Service. Format must be
+ * `projects/{project}/locations/{location}`.
+ *
+ * Generated from protobuf field string location = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setLocation($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->location = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CloudRunMetadata.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CloudRunMetadata.php
new file mode 100644
index 000000000000..1df01c3367f8
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CloudRunMetadata.php
@@ -0,0 +1,147 @@
+google.cloud.deploy.v1.CloudRunMetadata
+ */
+class CloudRunMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The name of the Cloud Run Service that is associated with a
+ * `Rollout`. Format is
+ * projects/{project}/locations/{location}/services/{service}.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ */
+ protected $service = '';
+ /**
+ * Output only. The Cloud Run Service urls that are associated with a
+ * `Rollout`.
+ *
+ * Generated from protobuf field repeated string service_urls = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $service_urls;
+ /**
+ * Output only. The Cloud Run Revision id associated with a `Rollout`.
+ *
+ * Generated from protobuf field string revision = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $revision = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $service
+ * Output only. The name of the Cloud Run Service that is associated with a
+ * `Rollout`. Format is
+ * projects/{project}/locations/{location}/services/{service}.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $service_urls
+ * Output only. The Cloud Run Service urls that are associated with a
+ * `Rollout`.
+ * @type string $revision
+ * Output only. The Cloud Run Revision id associated with a `Rollout`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The name of the Cloud Run Service that is associated with a
+ * `Rollout`. Format is
+ * projects/{project}/locations/{location}/services/{service}.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ /**
+ * Output only. The name of the Cloud Run Service that is associated with a
+ * `Rollout`. Format is
+ * projects/{project}/locations/{location}/services/{service}.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The Cloud Run Service urls that are associated with a
+ * `Rollout`.
+ *
+ * Generated from protobuf field repeated string service_urls = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getServiceUrls()
+ {
+ return $this->service_urls;
+ }
+
+ /**
+ * Output only. The Cloud Run Service urls that are associated with a
+ * `Rollout`.
+ *
+ * Generated from protobuf field repeated string service_urls = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setServiceUrls($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->service_urls = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The Cloud Run Revision id associated with a `Rollout`.
+ *
+ * Generated from protobuf field string revision = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getRevision()
+ {
+ return $this->revision;
+ }
+
+ /**
+ * Output only. The Cloud Run Revision id associated with a `Rollout`.
+ *
+ * Generated from protobuf field string revision = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setRevision($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->revision = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CloudRunRenderMetadata.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CloudRunRenderMetadata.php
new file mode 100644
index 000000000000..f04aa55ae9dc
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CloudRunRenderMetadata.php
@@ -0,0 +1,72 @@
+google.cloud.deploy.v1.CloudRunRenderMetadata
+ */
+class CloudRunRenderMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The name of the Cloud Run Service in the rendered manifest.
+ * Format is projects/{project}/locations/{location}/services/{service}.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ */
+ protected $service = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $service
+ * Output only. The name of the Cloud Run Service in the rendered manifest.
+ * Format is projects/{project}/locations/{location}/services/{service}.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The name of the Cloud Run Service in the rendered manifest.
+ * Format is projects/{project}/locations/{location}/services/{service}.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ /**
+ * Output only. The name of the Cloud Run Service in the rendered manifest.
+ * Format is projects/{project}/locations/{location}/services/{service}.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Config.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Config.php
new file mode 100644
index 000000000000..d3401ecb99a3
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Config.php
@@ -0,0 +1,139 @@
+google.cloud.deploy.v1.Config
+ */
+class Config extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Name of the configuration.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * All supported versions of Skaffold.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.SkaffoldVersion supported_versions = 2;
+ */
+ private $supported_versions;
+ /**
+ * Default Skaffold version that is assigned when a Release is created without
+ * specifying a Skaffold version.
+ *
+ * Generated from protobuf field string default_skaffold_version = 3;
+ */
+ protected $default_skaffold_version = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Name of the configuration.
+ * @type array<\Google\Cloud\Deploy\V1\SkaffoldVersion>|\Google\Protobuf\Internal\RepeatedField $supported_versions
+ * All supported versions of Skaffold.
+ * @type string $default_skaffold_version
+ * Default Skaffold version that is assigned when a Release is created without
+ * specifying a Skaffold version.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Name of the configuration.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Name of the configuration.
+ *
+ * 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;
+ }
+
+ /**
+ * All supported versions of Skaffold.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.SkaffoldVersion supported_versions = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getSupportedVersions()
+ {
+ return $this->supported_versions;
+ }
+
+ /**
+ * All supported versions of Skaffold.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.SkaffoldVersion supported_versions = 2;
+ * @param array<\Google\Cloud\Deploy\V1\SkaffoldVersion>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setSupportedVersions($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Deploy\V1\SkaffoldVersion::class);
+ $this->supported_versions = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Default Skaffold version that is assigned when a Release is created without
+ * specifying a Skaffold version.
+ *
+ * Generated from protobuf field string default_skaffold_version = 3;
+ * @return string
+ */
+ public function getDefaultSkaffoldVersion()
+ {
+ return $this->default_skaffold_version;
+ }
+
+ /**
+ * Default Skaffold version that is assigned when a Release is created without
+ * specifying a Skaffold version.
+ *
+ * Generated from protobuf field string default_skaffold_version = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setDefaultSkaffoldVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->default_skaffold_version = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CreateChildRolloutJob.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CreateChildRolloutJob.php
new file mode 100644
index 000000000000..ba7b1ce944b0
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CreateChildRolloutJob.php
@@ -0,0 +1,33 @@
+google.cloud.deploy.v1.CreateChildRolloutJob
+ */
+class CreateChildRolloutJob extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CreateChildRolloutJobRun.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CreateChildRolloutJobRun.php
new file mode 100644
index 000000000000..2b60a5efeec1
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CreateChildRolloutJobRun.php
@@ -0,0 +1,110 @@
+google.cloud.deploy.v1.CreateChildRolloutJobRun
+ */
+class CreateChildRolloutJobRun extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. Name of the `ChildRollout`. Format is projects/{project}/
+ * locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/[a-z][a-z0-9\-]{0,62}.
+ *
+ * Generated from protobuf field string rollout = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $rollout = '';
+ /**
+ * Output only. The ID of the childRollout Phase initiated by this JobRun.
+ *
+ * Generated from protobuf field string rollout_phase_id = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $rollout_phase_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $rollout
+ * Output only. Name of the `ChildRollout`. Format is projects/{project}/
+ * locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/[a-z][a-z0-9\-]{0,62}.
+ * @type string $rollout_phase_id
+ * Output only. The ID of the childRollout Phase initiated by this JobRun.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Name of the `ChildRollout`. Format is projects/{project}/
+ * locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/[a-z][a-z0-9\-]{0,62}.
+ *
+ * Generated from protobuf field string rollout = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getRollout()
+ {
+ return $this->rollout;
+ }
+
+ /**
+ * Output only. Name of the `ChildRollout`. Format is projects/{project}/
+ * locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/[a-z][a-z0-9\-]{0,62}.
+ *
+ * Generated from protobuf field string rollout = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setRollout($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->rollout = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The ID of the childRollout Phase initiated by this JobRun.
+ *
+ * Generated from protobuf field string rollout_phase_id = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getRolloutPhaseId()
+ {
+ return $this->rollout_phase_id;
+ }
+
+ /**
+ * Output only. The ID of the childRollout Phase initiated by this JobRun.
+ *
+ * Generated from protobuf field string rollout_phase_id = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setRolloutPhaseId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->rollout_phase_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CreateDeliveryPipelineRequest.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CreateDeliveryPipelineRequest.php
new file mode 100644
index 000000000000..28b28989092f
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CreateDeliveryPipelineRequest.php
@@ -0,0 +1,280 @@
+google.cloud.deploy.v1.CreateDeliveryPipelineRequest
+ */
+class CreateDeliveryPipelineRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The parent collection in which the `DeliveryPipeline` should be
+ * created. Format should be projects/{project_id}/locations/{location_name}.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. ID of the `DeliveryPipeline`.
+ *
+ * Generated from protobuf field string delivery_pipeline_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $delivery_pipeline_id = '';
+ /**
+ * Required. The `DeliveryPipeline` to create.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.DeliveryPipeline delivery_pipeline = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $delivery_pipeline = null;
+ /**
+ * Optional. A 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 = '';
+ /**
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ *
+ * Generated from protobuf field bool validate_only = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $validate_only = false;
+
+ /**
+ * @param string $parent Required. The parent collection in which the `DeliveryPipeline` should be
+ * created. Format should be projects/{project_id}/locations/{location_name}. Please see
+ * {@see CloudDeployClient::locationName()} for help formatting this field.
+ * @param \Google\Cloud\Deploy\V1\DeliveryPipeline $deliveryPipeline Required. The `DeliveryPipeline` to create.
+ * @param string $deliveryPipelineId Required. ID of the `DeliveryPipeline`.
+ *
+ * @return \Google\Cloud\Deploy\V1\CreateDeliveryPipelineRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\Deploy\V1\DeliveryPipeline $deliveryPipeline, string $deliveryPipelineId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setDeliveryPipeline($deliveryPipeline)
+ ->setDeliveryPipelineId($deliveryPipelineId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The parent collection in which the `DeliveryPipeline` should be
+ * created. Format should be projects/{project_id}/locations/{location_name}.
+ * @type string $delivery_pipeline_id
+ * Required. ID of the `DeliveryPipeline`.
+ * @type \Google\Cloud\Deploy\V1\DeliveryPipeline $delivery_pipeline
+ * Required. The `DeliveryPipeline` to create.
+ * @type string $request_id
+ * Optional. A 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).
+ * @type bool $validate_only
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The parent collection in which the `DeliveryPipeline` should be
+ * created. Format should be projects/{project_id}/locations/{location_name}.
+ *
+ * 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 collection in which the `DeliveryPipeline` should be
+ * created. Format should be projects/{project_id}/locations/{location_name}.
+ *
+ * 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 `DeliveryPipeline`.
+ *
+ * Generated from protobuf field string delivery_pipeline_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getDeliveryPipelineId()
+ {
+ return $this->delivery_pipeline_id;
+ }
+
+ /**
+ * Required. ID of the `DeliveryPipeline`.
+ *
+ * Generated from protobuf field string delivery_pipeline_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setDeliveryPipelineId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->delivery_pipeline_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The `DeliveryPipeline` to create.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.DeliveryPipeline delivery_pipeline = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Deploy\V1\DeliveryPipeline|null
+ */
+ public function getDeliveryPipeline()
+ {
+ return $this->delivery_pipeline;
+ }
+
+ public function hasDeliveryPipeline()
+ {
+ return isset($this->delivery_pipeline);
+ }
+
+ public function clearDeliveryPipeline()
+ {
+ unset($this->delivery_pipeline);
+ }
+
+ /**
+ * Required. The `DeliveryPipeline` to create.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.DeliveryPipeline delivery_pipeline = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Deploy\V1\DeliveryPipeline $var
+ * @return $this
+ */
+ public function setDeliveryPipeline($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\DeliveryPipeline::class);
+ $this->delivery_pipeline = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A 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. A 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;
+ }
+
+ /**
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ *
+ * Generated from protobuf field bool validate_only = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getValidateOnly()
+ {
+ return $this->validate_only;
+ }
+
+ /**
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ *
+ * Generated from protobuf field bool validate_only = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setValidateOnly($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->validate_only = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CreateReleaseRequest.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CreateReleaseRequest.php
new file mode 100644
index 000000000000..2124674d8675
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CreateReleaseRequest.php
@@ -0,0 +1,285 @@
+google.cloud.deploy.v1.CreateReleaseRequest
+ */
+class CreateReleaseRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The parent collection in which the `Release` should be created.
+ * Format should be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. ID of the `Release`.
+ *
+ * Generated from protobuf field string release_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $release_id = '';
+ /**
+ * Required. The `Release` to create.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Release release = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $release = null;
+ /**
+ * Optional. A 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 = '';
+ /**
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ *
+ * Generated from protobuf field bool validate_only = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $validate_only = false;
+
+ /**
+ * @param string $parent Required. The parent collection in which the `Release` should be created.
+ * Format should be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}. Please see
+ * {@see CloudDeployClient::deliveryPipelineName()} for help formatting this field.
+ * @param \Google\Cloud\Deploy\V1\Release $release Required. The `Release` to create.
+ * @param string $releaseId Required. ID of the `Release`.
+ *
+ * @return \Google\Cloud\Deploy\V1\CreateReleaseRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\Deploy\V1\Release $release, string $releaseId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setRelease($release)
+ ->setReleaseId($releaseId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The parent collection in which the `Release` should be created.
+ * Format should be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}.
+ * @type string $release_id
+ * Required. ID of the `Release`.
+ * @type \Google\Cloud\Deploy\V1\Release $release
+ * Required. The `Release` to create.
+ * @type string $request_id
+ * Optional. A 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).
+ * @type bool $validate_only
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The parent collection in which the `Release` should be created.
+ * Format should be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}.
+ *
+ * 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 collection in which the `Release` should be created.
+ * Format should be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}.
+ *
+ * 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 `Release`.
+ *
+ * Generated from protobuf field string release_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getReleaseId()
+ {
+ return $this->release_id;
+ }
+
+ /**
+ * Required. ID of the `Release`.
+ *
+ * Generated from protobuf field string release_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setReleaseId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->release_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The `Release` to create.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Release release = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Deploy\V1\Release|null
+ */
+ public function getRelease()
+ {
+ return $this->release;
+ }
+
+ public function hasRelease()
+ {
+ return isset($this->release);
+ }
+
+ public function clearRelease()
+ {
+ unset($this->release);
+ }
+
+ /**
+ * Required. The `Release` to create.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Release release = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Deploy\V1\Release $var
+ * @return $this
+ */
+ public function setRelease($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\Release::class);
+ $this->release = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A 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. A 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;
+ }
+
+ /**
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ *
+ * Generated from protobuf field bool validate_only = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getValidateOnly()
+ {
+ return $this->validate_only;
+ }
+
+ /**
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ *
+ * Generated from protobuf field bool validate_only = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setValidateOnly($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->validate_only = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CreateRolloutRequest.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CreateRolloutRequest.php
new file mode 100644
index 000000000000..4266e82919c9
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CreateRolloutRequest.php
@@ -0,0 +1,323 @@
+google.cloud.deploy.v1.CreateRolloutRequest
+ */
+class CreateRolloutRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The parent collection in which the `Rollout` should be created.
+ * Format should be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. ID of the `Rollout`.
+ *
+ * Generated from protobuf field string rollout_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $rollout_id = '';
+ /**
+ * Required. The `Rollout` to create.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Rollout rollout = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $rollout = null;
+ /**
+ * Optional. A 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 = '';
+ /**
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ *
+ * Generated from protobuf field bool validate_only = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $validate_only = false;
+ /**
+ * Optional. The starting phase ID for the `Rollout`. If empty the `Rollout`
+ * will start at the first phase.
+ *
+ * Generated from protobuf field string starting_phase_id = 7 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $starting_phase_id = '';
+
+ /**
+ * @param string $parent Required. The parent collection in which the `Rollout` should be created.
+ * Format should be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}. Please see
+ * {@see CloudDeployClient::releaseName()} for help formatting this field.
+ * @param \Google\Cloud\Deploy\V1\Rollout $rollout Required. The `Rollout` to create.
+ * @param string $rolloutId Required. ID of the `Rollout`.
+ *
+ * @return \Google\Cloud\Deploy\V1\CreateRolloutRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\Deploy\V1\Rollout $rollout, string $rolloutId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setRollout($rollout)
+ ->setRolloutId($rolloutId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The parent collection in which the `Rollout` should be created.
+ * Format should be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}.
+ * @type string $rollout_id
+ * Required. ID of the `Rollout`.
+ * @type \Google\Cloud\Deploy\V1\Rollout $rollout
+ * Required. The `Rollout` to create.
+ * @type string $request_id
+ * Optional. A 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).
+ * @type bool $validate_only
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ * @type string $starting_phase_id
+ * Optional. The starting phase ID for the `Rollout`. If empty the `Rollout`
+ * will start at the first phase.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The parent collection in which the `Rollout` should be created.
+ * Format should be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}.
+ *
+ * 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 collection in which the `Rollout` should be created.
+ * Format should be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}.
+ *
+ * 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 `Rollout`.
+ *
+ * Generated from protobuf field string rollout_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getRolloutId()
+ {
+ return $this->rollout_id;
+ }
+
+ /**
+ * Required. ID of the `Rollout`.
+ *
+ * Generated from protobuf field string rollout_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setRolloutId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->rollout_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The `Rollout` to create.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Rollout rollout = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Deploy\V1\Rollout|null
+ */
+ public function getRollout()
+ {
+ return $this->rollout;
+ }
+
+ public function hasRollout()
+ {
+ return isset($this->rollout);
+ }
+
+ public function clearRollout()
+ {
+ unset($this->rollout);
+ }
+
+ /**
+ * Required. The `Rollout` to create.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Rollout rollout = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Deploy\V1\Rollout $var
+ * @return $this
+ */
+ public function setRollout($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\Rollout::class);
+ $this->rollout = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A 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. A 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;
+ }
+
+ /**
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ *
+ * Generated from protobuf field bool validate_only = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getValidateOnly()
+ {
+ return $this->validate_only;
+ }
+
+ /**
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ *
+ * Generated from protobuf field bool validate_only = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setValidateOnly($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->validate_only = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The starting phase ID for the `Rollout`. If empty the `Rollout`
+ * will start at the first phase.
+ *
+ * Generated from protobuf field string starting_phase_id = 7 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getStartingPhaseId()
+ {
+ return $this->starting_phase_id;
+ }
+
+ /**
+ * Optional. The starting phase ID for the `Rollout`. If empty the `Rollout`
+ * will start at the first phase.
+ *
+ * Generated from protobuf field string starting_phase_id = 7 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setStartingPhaseId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->starting_phase_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CreateTargetRequest.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CreateTargetRequest.php
new file mode 100644
index 000000000000..f6afb0100473
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CreateTargetRequest.php
@@ -0,0 +1,285 @@
+google.cloud.deploy.v1.CreateTargetRequest
+ */
+class CreateTargetRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The parent collection in which the `Target` should be created.
+ * Format should be
+ * projects/{project_id}/locations/{location_name}.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. ID of the `Target`.
+ *
+ * Generated from protobuf field string target_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $target_id = '';
+ /**
+ * Required. The `Target` to create.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Target target = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $target = null;
+ /**
+ * Optional. A 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 = '';
+ /**
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ *
+ * Generated from protobuf field bool validate_only = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $validate_only = false;
+
+ /**
+ * @param string $parent Required. The parent collection in which the `Target` should be created.
+ * Format should be
+ * projects/{project_id}/locations/{location_name}. Please see
+ * {@see CloudDeployClient::locationName()} for help formatting this field.
+ * @param \Google\Cloud\Deploy\V1\Target $target Required. The `Target` to create.
+ * @param string $targetId Required. ID of the `Target`.
+ *
+ * @return \Google\Cloud\Deploy\V1\CreateTargetRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\Deploy\V1\Target $target, string $targetId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setTarget($target)
+ ->setTargetId($targetId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The parent collection in which the `Target` should be created.
+ * Format should be
+ * projects/{project_id}/locations/{location_name}.
+ * @type string $target_id
+ * Required. ID of the `Target`.
+ * @type \Google\Cloud\Deploy\V1\Target $target
+ * Required. The `Target` to create.
+ * @type string $request_id
+ * Optional. A 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).
+ * @type bool $validate_only
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The parent collection in which the `Target` should be created.
+ * Format should be
+ * projects/{project_id}/locations/{location_name}.
+ *
+ * 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 collection in which the `Target` should be created.
+ * Format should be
+ * projects/{project_id}/locations/{location_name}.
+ *
+ * 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 `Target`.
+ *
+ * Generated from protobuf field string target_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getTargetId()
+ {
+ return $this->target_id;
+ }
+
+ /**
+ * Required. ID of the `Target`.
+ *
+ * Generated from protobuf field string target_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setTargetId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->target_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The `Target` to create.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Target target = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Deploy\V1\Target|null
+ */
+ public function getTarget()
+ {
+ return $this->target;
+ }
+
+ public function hasTarget()
+ {
+ return isset($this->target);
+ }
+
+ public function clearTarget()
+ {
+ unset($this->target);
+ }
+
+ /**
+ * Required. The `Target` to create.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Target target = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Deploy\V1\Target $var
+ * @return $this
+ */
+ public function setTarget($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\Target::class);
+ $this->target = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A 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. A 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;
+ }
+
+ /**
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ *
+ * Generated from protobuf field bool validate_only = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getValidateOnly()
+ {
+ return $this->validate_only;
+ }
+
+ /**
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ *
+ * Generated from protobuf field bool validate_only = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setValidateOnly($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->validate_only = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CustomCanaryDeployment.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CustomCanaryDeployment.php
new file mode 100644
index 000000000000..7564e1c85ac6
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CustomCanaryDeployment.php
@@ -0,0 +1,72 @@
+google.cloud.deploy.v1.CustomCanaryDeployment
+ */
+class CustomCanaryDeployment extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Configuration for each phase in the canary deployment in the
+ * order executed.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.CustomCanaryDeployment.PhaseConfig phase_configs = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $phase_configs;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Deploy\V1\CustomCanaryDeployment\PhaseConfig>|\Google\Protobuf\Internal\RepeatedField $phase_configs
+ * Required. Configuration for each phase in the canary deployment in the
+ * order executed.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Configuration for each phase in the canary deployment in the
+ * order executed.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.CustomCanaryDeployment.PhaseConfig phase_configs = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getPhaseConfigs()
+ {
+ return $this->phase_configs;
+ }
+
+ /**
+ * Required. Configuration for each phase in the canary deployment in the
+ * order executed.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.CustomCanaryDeployment.PhaseConfig phase_configs = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param array<\Google\Cloud\Deploy\V1\CustomCanaryDeployment\PhaseConfig>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setPhaseConfigs($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Deploy\V1\CustomCanaryDeployment\PhaseConfig::class);
+ $this->phase_configs = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CustomCanaryDeployment/PhaseConfig.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CustomCanaryDeployment/PhaseConfig.php
new file mode 100644
index 000000000000..8afad9cc2e68
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CustomCanaryDeployment/PhaseConfig.php
@@ -0,0 +1,197 @@
+google.cloud.deploy.v1.CustomCanaryDeployment.PhaseConfig
+ */
+class PhaseConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The ID to assign to the `Rollout` phase.
+ * This value must consist of lower-case letters, numbers, and hyphens,
+ * start with a letter and end with a letter or a number, and have a max
+ * length of 63 characters. In other words, it must match the following
+ * regex: `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`.
+ *
+ * Generated from protobuf field string phase_id = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $phase_id = '';
+ /**
+ * Required. Percentage deployment for the phase.
+ *
+ * Generated from protobuf field int32 percentage = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $percentage = 0;
+ /**
+ * Skaffold profiles to use when rendering the manifest for this phase.
+ * These are in addition to the profiles list specified in the
+ * `DeliveryPipeline` stage.
+ *
+ * Generated from protobuf field repeated string profiles = 3;
+ */
+ private $profiles;
+ /**
+ * Whether to run verify tests after the deployment.
+ *
+ * Generated from protobuf field bool verify = 4;
+ */
+ protected $verify = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $phase_id
+ * Required. The ID to assign to the `Rollout` phase.
+ * This value must consist of lower-case letters, numbers, and hyphens,
+ * start with a letter and end with a letter or a number, and have a max
+ * length of 63 characters. In other words, it must match the following
+ * regex: `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`.
+ * @type int $percentage
+ * Required. Percentage deployment for the phase.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $profiles
+ * Skaffold profiles to use when rendering the manifest for this phase.
+ * These are in addition to the profiles list specified in the
+ * `DeliveryPipeline` stage.
+ * @type bool $verify
+ * Whether to run verify tests after the deployment.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The ID to assign to the `Rollout` phase.
+ * This value must consist of lower-case letters, numbers, and hyphens,
+ * start with a letter and end with a letter or a number, and have a max
+ * length of 63 characters. In other words, it must match the following
+ * regex: `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`.
+ *
+ * Generated from protobuf field string phase_id = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getPhaseId()
+ {
+ return $this->phase_id;
+ }
+
+ /**
+ * Required. The ID to assign to the `Rollout` phase.
+ * This value must consist of lower-case letters, numbers, and hyphens,
+ * start with a letter and end with a letter or a number, and have a max
+ * length of 63 characters. In other words, it must match the following
+ * regex: `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`.
+ *
+ * Generated from protobuf field string phase_id = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setPhaseId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->phase_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Percentage deployment for the phase.
+ *
+ * Generated from protobuf field int32 percentage = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return int
+ */
+ public function getPercentage()
+ {
+ return $this->percentage;
+ }
+
+ /**
+ * Required. Percentage deployment for the phase.
+ *
+ * Generated from protobuf field int32 percentage = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param int $var
+ * @return $this
+ */
+ public function setPercentage($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->percentage = $var;
+
+ return $this;
+ }
+
+ /**
+ * Skaffold profiles to use when rendering the manifest for this phase.
+ * These are in addition to the profiles list specified in the
+ * `DeliveryPipeline` stage.
+ *
+ * Generated from protobuf field repeated string profiles = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getProfiles()
+ {
+ return $this->profiles;
+ }
+
+ /**
+ * Skaffold profiles to use when rendering the manifest for this phase.
+ * These are in addition to the profiles list specified in the
+ * `DeliveryPipeline` stage.
+ *
+ * Generated from protobuf field repeated string profiles = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setProfiles($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->profiles = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Whether to run verify tests after the deployment.
+ *
+ * Generated from protobuf field bool verify = 4;
+ * @return bool
+ */
+ public function getVerify()
+ {
+ return $this->verify;
+ }
+
+ /**
+ * Whether to run verify tests after the deployment.
+ *
+ * Generated from protobuf field bool verify = 4;
+ * @param bool $var
+ * @return $this
+ */
+ public function setVerify($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->verify = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(PhaseConfig::class, \Google\Cloud\Deploy\V1\CustomCanaryDeployment_PhaseConfig::class);
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CustomCanaryDeployment_PhaseConfig.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CustomCanaryDeployment_PhaseConfig.php
new file mode 100644
index 000000000000..e72a76ca738a
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/CustomCanaryDeployment_PhaseConfig.php
@@ -0,0 +1,16 @@
+google.cloud.deploy.v1.DefaultPool
+ */
+class DefaultPool extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. Google service account to use for execution. If unspecified,
+ * the project execution service account
+ * (-compute@developer.gserviceaccount.com) will be used.
+ *
+ * Generated from protobuf field string service_account = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $service_account = '';
+ /**
+ * Optional. Cloud Storage location where execution outputs should be stored.
+ * This can either be a bucket ("gs://my-bucket") or a path within a bucket
+ * ("gs://my-bucket/my-dir").
+ * If unspecified, a default bucket located in the same region will be used.
+ *
+ * Generated from protobuf field string artifact_storage = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $artifact_storage = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $service_account
+ * Optional. Google service account to use for execution. If unspecified,
+ * the project execution service account
+ * (-compute@developer.gserviceaccount.com) will be used.
+ * @type string $artifact_storage
+ * Optional. Cloud Storage location where execution outputs should be stored.
+ * This can either be a bucket ("gs://my-bucket") or a path within a bucket
+ * ("gs://my-bucket/my-dir").
+ * If unspecified, a default bucket located in the same region will be used.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. Google service account to use for execution. If unspecified,
+ * the project execution service account
+ * (-compute@developer.gserviceaccount.com) will be used.
+ *
+ * Generated from protobuf field string service_account = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getServiceAccount()
+ {
+ return $this->service_account;
+ }
+
+ /**
+ * Optional. Google service account to use for execution. If unspecified,
+ * the project execution service account
+ * (-compute@developer.gserviceaccount.com) will be used.
+ *
+ * Generated from protobuf field string service_account = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setServiceAccount($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service_account = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Cloud Storage location where execution outputs should be stored.
+ * This can either be a bucket ("gs://my-bucket") or a path within a bucket
+ * ("gs://my-bucket/my-dir").
+ * If unspecified, a default bucket located in the same region will be used.
+ *
+ * Generated from protobuf field string artifact_storage = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getArtifactStorage()
+ {
+ return $this->artifact_storage;
+ }
+
+ /**
+ * Optional. Cloud Storage location where execution outputs should be stored.
+ * This can either be a bucket ("gs://my-bucket") or a path within a bucket
+ * ("gs://my-bucket/my-dir").
+ * If unspecified, a default bucket located in the same region will be used.
+ *
+ * Generated from protobuf field string artifact_storage = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setArtifactStorage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->artifact_storage = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeleteDeliveryPipelineRequest.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeleteDeliveryPipelineRequest.php
new file mode 100644
index 000000000000..afd763c6bf47
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeleteDeliveryPipelineRequest.php
@@ -0,0 +1,320 @@
+google.cloud.deploy.v1.DeleteDeliveryPipelineRequest
+ */
+class DeleteDeliveryPipelineRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the `DeliveryPipeline` to delete. Format should be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. A 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, then deleting an already deleted or non-existing
+ * `DeliveryPipeline` will succeed.
+ *
+ * Generated from protobuf field bool allow_missing = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $allow_missing = false;
+ /**
+ * Optional. If set, validate the request and preview the review, but do not
+ * actually post it.
+ *
+ * Generated from protobuf field bool validate_only = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $validate_only = false;
+ /**
+ * Optional. If set to true, all child resources under this pipeline will also
+ * be deleted. Otherwise, the request will only work if the pipeline has no
+ * child resources.
+ *
+ * Generated from protobuf field bool force = 6 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $force = false;
+ /**
+ * Optional. This checksum is computed by the server based on the value of
+ * other fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $etag = '';
+
+ /**
+ * @param string $name Required. The name of the `DeliveryPipeline` to delete. Format should be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}. Please see
+ * {@see CloudDeployClient::deliveryPipelineName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Deploy\V1\DeleteDeliveryPipelineRequest
+ *
+ * @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 `DeliveryPipeline` to delete. Format should be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}.
+ * @type string $request_id
+ * Optional. A 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 $allow_missing
+ * Optional. If set to true, then deleting an already deleted or non-existing
+ * `DeliveryPipeline` will succeed.
+ * @type bool $validate_only
+ * Optional. If set, validate the request and preview the review, but do not
+ * actually post it.
+ * @type bool $force
+ * Optional. If set to true, all child resources under this pipeline will also
+ * be deleted. Otherwise, the request will only work if the pipeline has no
+ * child resources.
+ * @type string $etag
+ * Optional. This checksum is computed by the server based on the value of
+ * other fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the `DeliveryPipeline` to delete. Format should be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_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 name of the `DeliveryPipeline` to delete. Format should be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_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;
+ }
+
+ /**
+ * Optional. A 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. A 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, then deleting an already deleted or non-existing
+ * `DeliveryPipeline` will succeed.
+ *
+ * Generated from protobuf field bool allow_missing = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getAllowMissing()
+ {
+ return $this->allow_missing;
+ }
+
+ /**
+ * Optional. If set to true, then deleting an already deleted or non-existing
+ * `DeliveryPipeline` will succeed.
+ *
+ * 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;
+ }
+
+ /**
+ * Optional. If set, validate the request and preview the review, but do not
+ * actually post it.
+ *
+ * Generated from protobuf field bool validate_only = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getValidateOnly()
+ {
+ return $this->validate_only;
+ }
+
+ /**
+ * Optional. If set, validate the request and preview the review, but do not
+ * actually post it.
+ *
+ * Generated from protobuf field bool validate_only = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setValidateOnly($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->validate_only = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. If set to true, all child resources under this pipeline will also
+ * be deleted. Otherwise, the request will only work if the pipeline has no
+ * child resources.
+ *
+ * Generated from protobuf field bool force = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getForce()
+ {
+ return $this->force;
+ }
+
+ /**
+ * Optional. If set to true, all child resources under this pipeline will also
+ * be deleted. Otherwise, the request will only work if the pipeline has no
+ * child resources.
+ *
+ * Generated from protobuf field bool force = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setForce($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->force = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. This checksum is computed by the server based on the value of
+ * other fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getEtag()
+ {
+ return $this->etag;
+ }
+
+ /**
+ * Optional. This checksum is computed by the server based on the value of
+ * other fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setEtag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->etag = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeleteTargetRequest.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeleteTargetRequest.php
new file mode 100644
index 000000000000..7050293ae903
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeleteTargetRequest.php
@@ -0,0 +1,278 @@
+google.cloud.deploy.v1.DeleteTargetRequest
+ */
+class DeleteTargetRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the `Target` to delete. Format should be
+ * projects/{project_id}/locations/{location_name}/targets/{target_name}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. A 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, then deleting an already deleted or non-existing
+ * DeliveryPipeline will succeed.
+ *
+ * Generated from protobuf field bool allow_missing = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $allow_missing = false;
+ /**
+ * Optional. If set, validate the request and preview the review, but do not
+ * actually post it.
+ *
+ * Generated from protobuf field bool validate_only = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $validate_only = false;
+ /**
+ * Optional. This checksum is computed by the server based on the value of
+ * other fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $etag = '';
+
+ /**
+ * @param string $name Required. The name of the `Target` to delete. Format should be
+ * projects/{project_id}/locations/{location_name}/targets/{target_name}. Please see
+ * {@see CloudDeployClient::targetName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Deploy\V1\DeleteTargetRequest
+ *
+ * @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 `Target` to delete. Format should be
+ * projects/{project_id}/locations/{location_name}/targets/{target_name}.
+ * @type string $request_id
+ * Optional. A 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 $allow_missing
+ * Optional. If set to true, then deleting an already deleted or non-existing
+ * DeliveryPipeline will succeed.
+ * @type bool $validate_only
+ * Optional. If set, validate the request and preview the review, but do not
+ * actually post it.
+ * @type string $etag
+ * Optional. This checksum is computed by the server based on the value of
+ * other fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the `Target` to delete. Format should be
+ * projects/{project_id}/locations/{location_name}/targets/{target_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 name of the `Target` to delete. Format should be
+ * projects/{project_id}/locations/{location_name}/targets/{target_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;
+ }
+
+ /**
+ * Optional. A 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. A 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, then deleting an already deleted or non-existing
+ * DeliveryPipeline will succeed.
+ *
+ * Generated from protobuf field bool allow_missing = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getAllowMissing()
+ {
+ return $this->allow_missing;
+ }
+
+ /**
+ * Optional. If set to true, then deleting an already deleted or non-existing
+ * DeliveryPipeline will succeed.
+ *
+ * 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;
+ }
+
+ /**
+ * Optional. If set, validate the request and preview the review, but do not
+ * actually post it.
+ *
+ * Generated from protobuf field bool validate_only = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getValidateOnly()
+ {
+ return $this->validate_only;
+ }
+
+ /**
+ * Optional. If set, validate the request and preview the review, but do not
+ * actually post it.
+ *
+ * Generated from protobuf field bool validate_only = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setValidateOnly($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->validate_only = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. This checksum is computed by the server based on the value of
+ * other fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getEtag()
+ {
+ return $this->etag;
+ }
+
+ /**
+ * Optional. This checksum is computed by the server based on the value of
+ * other fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setEtag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->etag = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeliveryPipeline.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeliveryPipeline.php
new file mode 100644
index 000000000000..51e39d70bbfa
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeliveryPipeline.php
@@ -0,0 +1,506 @@
+google.cloud.deploy.v1.DeliveryPipeline
+ */
+class DeliveryPipeline extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. Name of the `DeliveryPipeline`. Format is projects/{project}/
+ * locations/{location}/deliveryPipelines/[a-z][a-z0-9\-]{0,62}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $name = '';
+ /**
+ * Output only. Unique identifier of the `DeliveryPipeline`.
+ *
+ * Generated from protobuf field string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $uid = '';
+ /**
+ * Description of the `DeliveryPipeline`. Max length is 255 characters.
+ *
+ * Generated from protobuf field string description = 3;
+ */
+ protected $description = '';
+ /**
+ * User annotations. These attributes can only be set and used by the
+ * user, and not by Google Cloud Deploy.
+ *
+ * Generated from protobuf field map annotations = 4;
+ */
+ private $annotations;
+ /**
+ * Labels are attributes that can be set and used by both the
+ * user and by Google Cloud Deploy. Labels must meet the following
+ * constraints:
+ * * Keys and values can contain only lowercase letters, numeric characters,
+ * underscores, and dashes.
+ * * All characters must use UTF-8 encoding, and international characters are
+ * allowed.
+ * * Keys must start with a lowercase letter or international character.
+ * * Each resource is limited to a maximum of 64 labels.
+ * Both keys and values are additionally constrained to be <= 128 bytes.
+ *
+ * Generated from protobuf field map labels = 5;
+ */
+ private $labels;
+ /**
+ * Output only. Time at which the pipeline was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. Most recent time at which the pipeline was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * Output only. Information around the state of the Delivery Pipeline.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.PipelineCondition condition = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $condition = null;
+ /**
+ * This checksum is computed by the server based on the value of other
+ * fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 10;
+ */
+ protected $etag = '';
+ /**
+ * When suspended, no new releases or rollouts can be created,
+ * but in-progress ones will complete.
+ *
+ * Generated from protobuf field bool suspended = 12;
+ */
+ protected $suspended = false;
+ protected $pipeline;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Optional. Name of the `DeliveryPipeline`. Format is projects/{project}/
+ * locations/{location}/deliveryPipelines/[a-z][a-z0-9\-]{0,62}.
+ * @type string $uid
+ * Output only. Unique identifier of the `DeliveryPipeline`.
+ * @type string $description
+ * Description of the `DeliveryPipeline`. Max length is 255 characters.
+ * @type array|\Google\Protobuf\Internal\MapField $annotations
+ * User annotations. These attributes can only be set and used by the
+ * user, and not by Google Cloud Deploy.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * Labels are attributes that can be set and used by both the
+ * user and by Google Cloud Deploy. Labels must meet the following
+ * constraints:
+ * * Keys and values can contain only lowercase letters, numeric characters,
+ * underscores, and dashes.
+ * * All characters must use UTF-8 encoding, and international characters are
+ * allowed.
+ * * Keys must start with a lowercase letter or international character.
+ * * Each resource is limited to a maximum of 64 labels.
+ * Both keys and values are additionally constrained to be <= 128 bytes.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. Time at which the pipeline was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. Most recent time at which the pipeline was updated.
+ * @type \Google\Cloud\Deploy\V1\SerialPipeline $serial_pipeline
+ * SerialPipeline defines a sequential set of stages for a
+ * `DeliveryPipeline`.
+ * @type \Google\Cloud\Deploy\V1\PipelineCondition $condition
+ * Output only. Information around the state of the Delivery Pipeline.
+ * @type string $etag
+ * This checksum is computed by the server based on the value of other
+ * fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ * @type bool $suspended
+ * When suspended, no new releases or rollouts can be created,
+ * but in-progress ones will complete.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. Name of the `DeliveryPipeline`. Format is projects/{project}/
+ * locations/{location}/deliveryPipelines/[a-z][a-z0-9\-]{0,62}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Optional. Name of the `DeliveryPipeline`. Format is projects/{project}/
+ * locations/{location}/deliveryPipelines/[a-z][a-z0-9\-]{0,62}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Unique identifier of the `DeliveryPipeline`.
+ *
+ * Generated from protobuf field string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getUid()
+ {
+ return $this->uid;
+ }
+
+ /**
+ * Output only. Unique identifier of the `DeliveryPipeline`.
+ *
+ * Generated from protobuf field string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setUid($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uid = $var;
+
+ return $this;
+ }
+
+ /**
+ * Description of the `DeliveryPipeline`. Max length is 255 characters.
+ *
+ * Generated from protobuf field string description = 3;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Description of the `DeliveryPipeline`. Max length is 255 characters.
+ *
+ * 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;
+ }
+
+ /**
+ * User annotations. These attributes can only be set and used by the
+ * user, and not by Google Cloud Deploy.
+ *
+ * Generated from protobuf field map annotations = 4;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getAnnotations()
+ {
+ return $this->annotations;
+ }
+
+ /**
+ * User annotations. These attributes can only be set and used by the
+ * user, and not by Google Cloud Deploy.
+ *
+ * Generated from protobuf field map annotations = 4;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setAnnotations($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->annotations = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Labels are attributes that can be set and used by both the
+ * user and by Google Cloud Deploy. Labels must meet the following
+ * constraints:
+ * * Keys and values can contain only lowercase letters, numeric characters,
+ * underscores, and dashes.
+ * * All characters must use UTF-8 encoding, and international characters are
+ * allowed.
+ * * Keys must start with a lowercase letter or international character.
+ * * Each resource is limited to a maximum of 64 labels.
+ * Both keys and values are additionally constrained to be <= 128 bytes.
+ *
+ * Generated from protobuf field map labels = 5;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * Labels are attributes that can be set and used by both the
+ * user and by Google Cloud Deploy. Labels must meet the following
+ * constraints:
+ * * Keys and values can contain only lowercase letters, numeric characters,
+ * underscores, and dashes.
+ * * All characters must use UTF-8 encoding, and international characters are
+ * allowed.
+ * * Keys must start with a lowercase letter or international character.
+ * * Each resource is limited to a maximum of 64 labels.
+ * Both keys and values are additionally constrained to be <= 128 bytes.
+ *
+ * Generated from protobuf field map labels = 5;
+ * @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;
+ }
+
+ /**
+ * Output only. Time at which the pipeline was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.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 at which the pipeline was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.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. Most recent time at which the pipeline was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 7 [(.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. Most recent time at which the pipeline was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 7 [(.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;
+ }
+
+ /**
+ * SerialPipeline defines a sequential set of stages for a
+ * `DeliveryPipeline`.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.SerialPipeline serial_pipeline = 8;
+ * @return \Google\Cloud\Deploy\V1\SerialPipeline|null
+ */
+ public function getSerialPipeline()
+ {
+ return $this->readOneof(8);
+ }
+
+ public function hasSerialPipeline()
+ {
+ return $this->hasOneof(8);
+ }
+
+ /**
+ * SerialPipeline defines a sequential set of stages for a
+ * `DeliveryPipeline`.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.SerialPipeline serial_pipeline = 8;
+ * @param \Google\Cloud\Deploy\V1\SerialPipeline $var
+ * @return $this
+ */
+ public function setSerialPipeline($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\SerialPipeline::class);
+ $this->writeOneof(8, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. Information around the state of the Delivery Pipeline.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.PipelineCondition condition = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Deploy\V1\PipelineCondition|null
+ */
+ public function getCondition()
+ {
+ return $this->condition;
+ }
+
+ public function hasCondition()
+ {
+ return isset($this->condition);
+ }
+
+ public function clearCondition()
+ {
+ unset($this->condition);
+ }
+
+ /**
+ * Output only. Information around the state of the Delivery Pipeline.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.PipelineCondition condition = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Deploy\V1\PipelineCondition $var
+ * @return $this
+ */
+ public function setCondition($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\PipelineCondition::class);
+ $this->condition = $var;
+
+ return $this;
+ }
+
+ /**
+ * This checksum is computed by the server based on the value of other
+ * fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 10;
+ * @return string
+ */
+ public function getEtag()
+ {
+ return $this->etag;
+ }
+
+ /**
+ * This checksum is computed by the server based on the value of other
+ * fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 10;
+ * @param string $var
+ * @return $this
+ */
+ public function setEtag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->etag = $var;
+
+ return $this;
+ }
+
+ /**
+ * When suspended, no new releases or rollouts can be created,
+ * but in-progress ones will complete.
+ *
+ * Generated from protobuf field bool suspended = 12;
+ * @return bool
+ */
+ public function getSuspended()
+ {
+ return $this->suspended;
+ }
+
+ /**
+ * When suspended, no new releases or rollouts can be created,
+ * but in-progress ones will complete.
+ *
+ * Generated from protobuf field bool suspended = 12;
+ * @param bool $var
+ * @return $this
+ */
+ public function setSuspended($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->suspended = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getPipeline()
+ {
+ return $this->whichOneof("pipeline");
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeliveryPipelineNotificationEvent.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeliveryPipelineNotificationEvent.php
new file mode 100644
index 000000000000..7700e0417232
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeliveryPipelineNotificationEvent.php
@@ -0,0 +1,137 @@
+google.cloud.deploy.v1.DeliveryPipelineNotificationEvent
+ */
+class DeliveryPipelineNotificationEvent extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Debug message for when a notification fails to send.
+ *
+ * Generated from protobuf field string message = 1;
+ */
+ protected $message = '';
+ /**
+ * The name of the `Delivery Pipeline`.
+ *
+ * Generated from protobuf field string delivery_pipeline = 2;
+ */
+ protected $delivery_pipeline = '';
+ /**
+ * Type of this notification, e.g. for a Pub/Sub failure.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Type type = 3;
+ */
+ protected $type = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $message
+ * Debug message for when a notification fails to send.
+ * @type string $delivery_pipeline
+ * The name of the `Delivery Pipeline`.
+ * @type int $type
+ * Type of this notification, e.g. for a Pub/Sub failure.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\DeliverypipelineNotificationPayload::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Debug message for when a notification fails to send.
+ *
+ * Generated from protobuf field string message = 1;
+ * @return string
+ */
+ public function getMessage()
+ {
+ return $this->message;
+ }
+
+ /**
+ * Debug message for when a notification fails to send.
+ *
+ * Generated from protobuf field string message = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->message = $var;
+
+ return $this;
+ }
+
+ /**
+ * The name of the `Delivery Pipeline`.
+ *
+ * Generated from protobuf field string delivery_pipeline = 2;
+ * @return string
+ */
+ public function getDeliveryPipeline()
+ {
+ return $this->delivery_pipeline;
+ }
+
+ /**
+ * The name of the `Delivery Pipeline`.
+ *
+ * Generated from protobuf field string delivery_pipeline = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setDeliveryPipeline($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->delivery_pipeline = $var;
+
+ return $this;
+ }
+
+ /**
+ * Type of this notification, e.g. for a Pub/Sub failure.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Type type = 3;
+ * @return int
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * Type of this notification, e.g. for a Pub/Sub failure.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Type type = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Deploy\V1\Type::class);
+ $this->type = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeployArtifact.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeployArtifact.php
new file mode 100644
index 000000000000..f7b78f40dd51
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeployArtifact.php
@@ -0,0 +1,109 @@
+google.cloud.deploy.v1.DeployArtifact
+ */
+class DeployArtifact extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. URI of a directory containing the artifacts. All paths are
+ * relative to this location.
+ *
+ * Generated from protobuf field string artifact_uri = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $artifact_uri = '';
+ /**
+ * Output only. File paths of the manifests applied during the deploy
+ * operation relative to the URI.
+ *
+ * Generated from protobuf field repeated string manifest_paths = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $manifest_paths;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $artifact_uri
+ * Output only. URI of a directory containing the artifacts. All paths are
+ * relative to this location.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $manifest_paths
+ * Output only. File paths of the manifests applied during the deploy
+ * operation relative to the URI.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. URI of a directory containing the artifacts. All paths are
+ * relative to this location.
+ *
+ * Generated from protobuf field string artifact_uri = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getArtifactUri()
+ {
+ return $this->artifact_uri;
+ }
+
+ /**
+ * Output only. URI of a directory containing the artifacts. All paths are
+ * relative to this location.
+ *
+ * Generated from protobuf field string artifact_uri = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setArtifactUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->artifact_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. File paths of the manifests applied during the deploy
+ * operation relative to the URI.
+ *
+ * Generated from protobuf field repeated string manifest_paths = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getManifestPaths()
+ {
+ return $this->manifest_paths;
+ }
+
+ /**
+ * Output only. File paths of the manifests applied during the deploy
+ * operation relative to the URI.
+ *
+ * Generated from protobuf field repeated string manifest_paths = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setManifestPaths($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->manifest_paths = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeployJob.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeployJob.php
new file mode 100644
index 000000000000..10225c0936ea
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeployJob.php
@@ -0,0 +1,33 @@
+google.cloud.deploy.v1.DeployJob
+ */
+class DeployJob extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeployJobRun.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeployJobRun.php
new file mode 100644
index 000000000000..70be401fceef
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeployJobRun.php
@@ -0,0 +1,235 @@
+google.cloud.deploy.v1.DeployJobRun
+ */
+class DeployJobRun extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The resource name of the Cloud Build `Build` object that is
+ * used to deploy. Format is
+ * projects/{project}/locations/{location}/builds/{build}.
+ *
+ * Generated from protobuf field string build = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ */
+ protected $build = '';
+ /**
+ * Output only. The reason the deploy failed. This will always be unspecified
+ * while the deploy is in progress or if it succeeded.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.DeployJobRun.FailureCause failure_cause = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $failure_cause = 0;
+ /**
+ * Output only. Additional information about the deploy failure, if available.
+ *
+ * Generated from protobuf field string failure_message = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $failure_message = '';
+ /**
+ * Output only. Metadata containing information about the deploy job run.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.DeployJobRunMetadata metadata = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $metadata = null;
+ /**
+ * Output only. The artifact of a deploy job run, if available.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.DeployArtifact artifact = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $artifact = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $build
+ * Output only. The resource name of the Cloud Build `Build` object that is
+ * used to deploy. Format is
+ * projects/{project}/locations/{location}/builds/{build}.
+ * @type int $failure_cause
+ * Output only. The reason the deploy failed. This will always be unspecified
+ * while the deploy is in progress or if it succeeded.
+ * @type string $failure_message
+ * Output only. Additional information about the deploy failure, if available.
+ * @type \Google\Cloud\Deploy\V1\DeployJobRunMetadata $metadata
+ * Output only. Metadata containing information about the deploy job run.
+ * @type \Google\Cloud\Deploy\V1\DeployArtifact $artifact
+ * Output only. The artifact of a deploy job run, if available.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The resource name of the Cloud Build `Build` object that is
+ * used to deploy. Format is
+ * projects/{project}/locations/{location}/builds/{build}.
+ *
+ * Generated from protobuf field string build = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getBuild()
+ {
+ return $this->build;
+ }
+
+ /**
+ * Output only. The resource name of the Cloud Build `Build` object that is
+ * used to deploy. Format is
+ * projects/{project}/locations/{location}/builds/{build}.
+ *
+ * Generated from protobuf field string build = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setBuild($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->build = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The reason the deploy failed. This will always be unspecified
+ * while the deploy is in progress or if it succeeded.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.DeployJobRun.FailureCause failure_cause = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getFailureCause()
+ {
+ return $this->failure_cause;
+ }
+
+ /**
+ * Output only. The reason the deploy failed. This will always be unspecified
+ * while the deploy is in progress or if it succeeded.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.DeployJobRun.FailureCause failure_cause = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setFailureCause($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Deploy\V1\DeployJobRun\FailureCause::class);
+ $this->failure_cause = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Additional information about the deploy failure, if available.
+ *
+ * Generated from protobuf field string failure_message = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getFailureMessage()
+ {
+ return $this->failure_message;
+ }
+
+ /**
+ * Output only. Additional information about the deploy failure, if available.
+ *
+ * Generated from protobuf field string failure_message = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setFailureMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->failure_message = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Metadata containing information about the deploy job run.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.DeployJobRunMetadata metadata = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Deploy\V1\DeployJobRunMetadata|null
+ */
+ public function getMetadata()
+ {
+ return $this->metadata;
+ }
+
+ public function hasMetadata()
+ {
+ return isset($this->metadata);
+ }
+
+ public function clearMetadata()
+ {
+ unset($this->metadata);
+ }
+
+ /**
+ * Output only. Metadata containing information about the deploy job run.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.DeployJobRunMetadata metadata = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Deploy\V1\DeployJobRunMetadata $var
+ * @return $this
+ */
+ public function setMetadata($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\DeployJobRunMetadata::class);
+ $this->metadata = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The artifact of a deploy job run, if available.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.DeployArtifact artifact = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Deploy\V1\DeployArtifact|null
+ */
+ public function getArtifact()
+ {
+ return $this->artifact;
+ }
+
+ public function hasArtifact()
+ {
+ return isset($this->artifact);
+ }
+
+ public function clearArtifact()
+ {
+ unset($this->artifact);
+ }
+
+ /**
+ * Output only. The artifact of a deploy job run, if available.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.DeployArtifact artifact = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Deploy\V1\DeployArtifact $var
+ * @return $this
+ */
+ public function setArtifact($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\DeployArtifact::class);
+ $this->artifact = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeployJobRun/FailureCause.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeployJobRun/FailureCause.php
new file mode 100644
index 000000000000..c1e664cd030b
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeployJobRun/FailureCause.php
@@ -0,0 +1,90 @@
+google.cloud.deploy.v1.DeployJobRun.FailureCause
+ */
+class FailureCause
+{
+ /**
+ * No reason for failure is specified.
+ *
+ * Generated from protobuf enum FAILURE_CAUSE_UNSPECIFIED = 0;
+ */
+ const FAILURE_CAUSE_UNSPECIFIED = 0;
+ /**
+ * Cloud Build is not available, either because it is not enabled or because
+ * Google Cloud Deploy has insufficient permissions. See [Required
+ * permission](/deploy/docs/cloud-deploy-service-account#required_permissions).
+ *
+ * Generated from protobuf enum CLOUD_BUILD_UNAVAILABLE = 1;
+ */
+ const CLOUD_BUILD_UNAVAILABLE = 1;
+ /**
+ * The deploy operation did not complete successfully; check Cloud Build
+ * logs.
+ *
+ * Generated from protobuf enum EXECUTION_FAILED = 2;
+ */
+ const EXECUTION_FAILED = 2;
+ /**
+ * The deploy build did not complete within the alloted time.
+ *
+ * Generated from protobuf enum DEADLINE_EXCEEDED = 3;
+ */
+ const DEADLINE_EXCEEDED = 3;
+ /**
+ * There were missing resources in the runtime environment required for a
+ * canary deployment. Check the Cloud Build logs for more information.
+ *
+ * Generated from protobuf enum MISSING_RESOURCES_FOR_CANARY = 4;
+ */
+ const MISSING_RESOURCES_FOR_CANARY = 4;
+ /**
+ * Cloud Build failed to fulfill Google Cloud Deploy's request. See
+ * failure_message for additional details.
+ *
+ * Generated from protobuf enum CLOUD_BUILD_REQUEST_FAILED = 5;
+ */
+ const CLOUD_BUILD_REQUEST_FAILED = 5;
+
+ private static $valueToName = [
+ self::FAILURE_CAUSE_UNSPECIFIED => 'FAILURE_CAUSE_UNSPECIFIED',
+ self::CLOUD_BUILD_UNAVAILABLE => 'CLOUD_BUILD_UNAVAILABLE',
+ self::EXECUTION_FAILED => 'EXECUTION_FAILED',
+ self::DEADLINE_EXCEEDED => 'DEADLINE_EXCEEDED',
+ self::MISSING_RESOURCES_FOR_CANARY => 'MISSING_RESOURCES_FOR_CANARY',
+ self::CLOUD_BUILD_REQUEST_FAILED => 'CLOUD_BUILD_REQUEST_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(FailureCause::class, \Google\Cloud\Deploy\V1\DeployJobRun_FailureCause::class);
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeployJobRunMetadata.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeployJobRunMetadata.php
new file mode 100644
index 000000000000..56cd0f4fb22c
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeployJobRunMetadata.php
@@ -0,0 +1,82 @@
+google.cloud.deploy.v1.DeployJobRunMetadata
+ */
+class DeployJobRunMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The name of the Cloud Run Service that is associated with a
+ * `DeployJobRun`.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.CloudRunMetadata cloud_run = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $cloud_run = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Deploy\V1\CloudRunMetadata $cloud_run
+ * Output only. The name of the Cloud Run Service that is associated with a
+ * `DeployJobRun`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The name of the Cloud Run Service that is associated with a
+ * `DeployJobRun`.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.CloudRunMetadata cloud_run = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Deploy\V1\CloudRunMetadata|null
+ */
+ public function getCloudRun()
+ {
+ return $this->cloud_run;
+ }
+
+ public function hasCloudRun()
+ {
+ return isset($this->cloud_run);
+ }
+
+ public function clearCloudRun()
+ {
+ unset($this->cloud_run);
+ }
+
+ /**
+ * Output only. The name of the Cloud Run Service that is associated with a
+ * `DeployJobRun`.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.CloudRunMetadata cloud_run = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Deploy\V1\CloudRunMetadata $var
+ * @return $this
+ */
+ public function setCloudRun($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\CloudRunMetadata::class);
+ $this->cloud_run = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeployJobRun_FailureCause.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeployJobRun_FailureCause.php
new file mode 100644
index 000000000000..621c5c708fcb
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/DeployJobRun_FailureCause.php
@@ -0,0 +1,16 @@
+google.cloud.deploy.v1.DeploymentJobs
+ */
+class DeploymentJobs extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The deploy Job. This is the deploy job in the phase.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Job deploy_job = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $deploy_job = null;
+ /**
+ * Output only. The verify Job. Runs after a deploy if the deploy succeeds.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Job verify_job = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $verify_job = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Deploy\V1\Job $deploy_job
+ * Output only. The deploy Job. This is the deploy job in the phase.
+ * @type \Google\Cloud\Deploy\V1\Job $verify_job
+ * Output only. The verify Job. Runs after a deploy if the deploy succeeds.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The deploy Job. This is the deploy job in the phase.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Job deploy_job = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Deploy\V1\Job|null
+ */
+ public function getDeployJob()
+ {
+ return $this->deploy_job;
+ }
+
+ public function hasDeployJob()
+ {
+ return isset($this->deploy_job);
+ }
+
+ public function clearDeployJob()
+ {
+ unset($this->deploy_job);
+ }
+
+ /**
+ * Output only. The deploy Job. This is the deploy job in the phase.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Job deploy_job = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Deploy\V1\Job $var
+ * @return $this
+ */
+ public function setDeployJob($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\Job::class);
+ $this->deploy_job = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The verify Job. Runs after a deploy if the deploy succeeds.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Job verify_job = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Deploy\V1\Job|null
+ */
+ public function getVerifyJob()
+ {
+ return $this->verify_job;
+ }
+
+ public function hasVerifyJob()
+ {
+ return isset($this->verify_job);
+ }
+
+ public function clearVerifyJob()
+ {
+ unset($this->verify_job);
+ }
+
+ /**
+ * Output only. The verify Job. Runs after a deploy if the deploy succeeds.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Job verify_job = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Deploy\V1\Job $var
+ * @return $this
+ */
+ public function setVerifyJob($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\Job::class);
+ $this->verify_job = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ExecutionConfig.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ExecutionConfig.php
new file mode 100644
index 000000000000..17f5e8d0c0d3
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ExecutionConfig.php
@@ -0,0 +1,328 @@
+google.cloud.deploy.v1.ExecutionConfig
+ */
+class ExecutionConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Usages when this configuration should be applied.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.ExecutionConfig.ExecutionEnvironmentUsage usages = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $usages;
+ /**
+ * Optional. The resource name of the `WorkerPool`, with the format
+ * `projects/{project}/locations/{location}/workerPools/{worker_pool}`.
+ * If this optional field is unspecified, the default Cloud Build pool will be
+ * used.
+ *
+ * Generated from protobuf field string worker_pool = 4 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {
+ */
+ protected $worker_pool = '';
+ /**
+ * Optional. Google service account to use for execution. If unspecified,
+ * the project execution service account
+ * (-compute@developer.gserviceaccount.com) is used.
+ *
+ * Generated from protobuf field string service_account = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $service_account = '';
+ /**
+ * Optional. Cloud Storage location in which to store execution outputs. This
+ * can either be a bucket ("gs://my-bucket") or a path within a bucket
+ * ("gs://my-bucket/my-dir").
+ * If unspecified, a default bucket located in the same region will be used.
+ *
+ * Generated from protobuf field string artifact_storage = 6 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $artifact_storage = '';
+ /**
+ * Optional. Execution timeout for a Cloud Build Execution. This must be
+ * between 10m and 24h in seconds format. If unspecified, a default timeout of
+ * 1h is used.
+ *
+ * Generated from protobuf field .google.protobuf.Duration execution_timeout = 7 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $execution_timeout = null;
+ protected $execution_environment;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $usages
+ * Required. Usages when this configuration should be applied.
+ * @type \Google\Cloud\Deploy\V1\DefaultPool $default_pool
+ * Optional. Use default Cloud Build pool.
+ * @type \Google\Cloud\Deploy\V1\PrivatePool $private_pool
+ * Optional. Use private Cloud Build pool.
+ * @type string $worker_pool
+ * Optional. The resource name of the `WorkerPool`, with the format
+ * `projects/{project}/locations/{location}/workerPools/{worker_pool}`.
+ * If this optional field is unspecified, the default Cloud Build pool will be
+ * used.
+ * @type string $service_account
+ * Optional. Google service account to use for execution. If unspecified,
+ * the project execution service account
+ * (-compute@developer.gserviceaccount.com) is used.
+ * @type string $artifact_storage
+ * Optional. Cloud Storage location in which to store execution outputs. This
+ * can either be a bucket ("gs://my-bucket") or a path within a bucket
+ * ("gs://my-bucket/my-dir").
+ * If unspecified, a default bucket located in the same region will be used.
+ * @type \Google\Protobuf\Duration $execution_timeout
+ * Optional. Execution timeout for a Cloud Build Execution. This must be
+ * between 10m and 24h in seconds format. If unspecified, a default timeout of
+ * 1h is used.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Usages when this configuration should be applied.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.ExecutionConfig.ExecutionEnvironmentUsage usages = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUsages()
+ {
+ return $this->usages;
+ }
+
+ /**
+ * Required. Usages when this configuration should be applied.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.ExecutionConfig.ExecutionEnvironmentUsage usages = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setUsages($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::ENUM, \Google\Cloud\Deploy\V1\ExecutionConfig\ExecutionEnvironmentUsage::class);
+ $this->usages = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Use default Cloud Build pool.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.DefaultPool default_pool = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\Deploy\V1\DefaultPool|null
+ */
+ public function getDefaultPool()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasDefaultPool()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Optional. Use default Cloud Build pool.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.DefaultPool default_pool = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\Deploy\V1\DefaultPool $var
+ * @return $this
+ */
+ public function setDefaultPool($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\DefaultPool::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Optional. Use private Cloud Build pool.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.PrivatePool private_pool = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\Deploy\V1\PrivatePool|null
+ */
+ public function getPrivatePool()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasPrivatePool()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * Optional. Use private Cloud Build pool.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.PrivatePool private_pool = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\Deploy\V1\PrivatePool $var
+ * @return $this
+ */
+ public function setPrivatePool($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\PrivatePool::class);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * Optional. The resource name of the `WorkerPool`, with the format
+ * `projects/{project}/locations/{location}/workerPools/{worker_pool}`.
+ * If this optional field is unspecified, the default Cloud Build pool will be
+ * used.
+ *
+ * Generated from protobuf field string worker_pool = 4 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getWorkerPool()
+ {
+ return $this->worker_pool;
+ }
+
+ /**
+ * Optional. The resource name of the `WorkerPool`, with the format
+ * `projects/{project}/locations/{location}/workerPools/{worker_pool}`.
+ * If this optional field is unspecified, the default Cloud Build pool will be
+ * used.
+ *
+ * Generated from protobuf field string worker_pool = 4 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setWorkerPool($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->worker_pool = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Google service account to use for execution. If unspecified,
+ * the project execution service account
+ * (-compute@developer.gserviceaccount.com) is used.
+ *
+ * Generated from protobuf field string service_account = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getServiceAccount()
+ {
+ return $this->service_account;
+ }
+
+ /**
+ * Optional. Google service account to use for execution. If unspecified,
+ * the project execution service account
+ * (-compute@developer.gserviceaccount.com) is used.
+ *
+ * Generated from protobuf field string service_account = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setServiceAccount($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service_account = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Cloud Storage location in which to store execution outputs. This
+ * can either be a bucket ("gs://my-bucket") or a path within a bucket
+ * ("gs://my-bucket/my-dir").
+ * If unspecified, a default bucket located in the same region will be used.
+ *
+ * Generated from protobuf field string artifact_storage = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getArtifactStorage()
+ {
+ return $this->artifact_storage;
+ }
+
+ /**
+ * Optional. Cloud Storage location in which to store execution outputs. This
+ * can either be a bucket ("gs://my-bucket") or a path within a bucket
+ * ("gs://my-bucket/my-dir").
+ * If unspecified, a default bucket located in the same region will be used.
+ *
+ * Generated from protobuf field string artifact_storage = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setArtifactStorage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->artifact_storage = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Execution timeout for a Cloud Build Execution. This must be
+ * between 10m and 24h in seconds format. If unspecified, a default timeout of
+ * 1h is used.
+ *
+ * Generated from protobuf field .google.protobuf.Duration execution_timeout = 7 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getExecutionTimeout()
+ {
+ return $this->execution_timeout;
+ }
+
+ public function hasExecutionTimeout()
+ {
+ return isset($this->execution_timeout);
+ }
+
+ public function clearExecutionTimeout()
+ {
+ unset($this->execution_timeout);
+ }
+
+ /**
+ * Optional. Execution timeout for a Cloud Build Execution. This must be
+ * between 10m and 24h in seconds format. If unspecified, a default timeout of
+ * 1h is used.
+ *
+ * Generated from protobuf field .google.protobuf.Duration execution_timeout = 7 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setExecutionTimeout($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->execution_timeout = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getExecutionEnvironment()
+ {
+ return $this->whichOneof("execution_environment");
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ExecutionConfig/ExecutionEnvironmentUsage.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ExecutionConfig/ExecutionEnvironmentUsage.php
new file mode 100644
index 000000000000..abeb70c1b042
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ExecutionConfig/ExecutionEnvironmentUsage.php
@@ -0,0 +1,71 @@
+google.cloud.deploy.v1.ExecutionConfig.ExecutionEnvironmentUsage
+ */
+class ExecutionEnvironmentUsage
+{
+ /**
+ * Default value. This value is unused.
+ *
+ * Generated from protobuf enum EXECUTION_ENVIRONMENT_USAGE_UNSPECIFIED = 0;
+ */
+ const EXECUTION_ENVIRONMENT_USAGE_UNSPECIFIED = 0;
+ /**
+ * Use for rendering.
+ *
+ * Generated from protobuf enum RENDER = 1;
+ */
+ const RENDER = 1;
+ /**
+ * Use for deploying and deployment hooks.
+ *
+ * Generated from protobuf enum DEPLOY = 2;
+ */
+ const DEPLOY = 2;
+ /**
+ * Use for deployment verification.
+ *
+ * Generated from protobuf enum VERIFY = 3;
+ */
+ const VERIFY = 3;
+
+ private static $valueToName = [
+ self::EXECUTION_ENVIRONMENT_USAGE_UNSPECIFIED => 'EXECUTION_ENVIRONMENT_USAGE_UNSPECIFIED',
+ self::RENDER => 'RENDER',
+ self::DEPLOY => 'DEPLOY',
+ self::VERIFY => 'VERIFY',
+ ];
+
+ 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(ExecutionEnvironmentUsage::class, \Google\Cloud\Deploy\V1\ExecutionConfig_ExecutionEnvironmentUsage::class);
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ExecutionConfig_ExecutionEnvironmentUsage.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ExecutionConfig_ExecutionEnvironmentUsage.php
new file mode 100644
index 000000000000..ecd15e041df3
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ExecutionConfig_ExecutionEnvironmentUsage.php
@@ -0,0 +1,16 @@
+google.cloud.deploy.v1.GetConfigRequest
+ */
+class GetConfigRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of requested configuration.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Name of requested configuration. Please see
+ * {@see CloudDeployClient::configName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Deploy\V1\GetConfigRequest
+ *
+ * @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 requested configuration.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of requested configuration.
+ *
+ * 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 requested configuration.
+ *
+ * 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/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/GetDeliveryPipelineRequest.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/GetDeliveryPipelineRequest.php
new file mode 100644
index 000000000000..9123cbf6332b
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/GetDeliveryPipelineRequest.php
@@ -0,0 +1,86 @@
+google.cloud.deploy.v1.GetDeliveryPipelineRequest
+ */
+class GetDeliveryPipelineRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the `DeliveryPipeline`. Format must be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}.
+ *
+ * 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 `DeliveryPipeline`. Format must be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}. Please see
+ * {@see CloudDeployClient::deliveryPipelineName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Deploy\V1\GetDeliveryPipelineRequest
+ *
+ * @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 `DeliveryPipeline`. Format must be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the `DeliveryPipeline`. Format must be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_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. Name of the `DeliveryPipeline`. Format must be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_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/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/GetJobRunRequest.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/GetJobRunRequest.php
new file mode 100644
index 000000000000..d7f17bb7bfc8
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/GetJobRunRequest.php
@@ -0,0 +1,86 @@
+google.cloud.deploy.v1.GetJobRunRequest
+ */
+class GetJobRunRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the `JobRun`. Format must be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}/rollouts/{rollout_name}/jobRuns/{job_run_name}.
+ *
+ * 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 `JobRun`. Format must be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}/rollouts/{rollout_name}/jobRuns/{job_run_name}. Please see
+ * {@see CloudDeployClient::jobRunName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Deploy\V1\GetJobRunRequest
+ *
+ * @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 `JobRun`. Format must be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}/rollouts/{rollout_name}/jobRuns/{job_run_name}.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the `JobRun`. Format must be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}/rollouts/{rollout_name}/jobRuns/{job_run_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. Name of the `JobRun`. Format must be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}/rollouts/{rollout_name}/jobRuns/{job_run_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/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/GetReleaseRequest.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/GetReleaseRequest.php
new file mode 100644
index 000000000000..3fc7b78c0778
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/GetReleaseRequest.php
@@ -0,0 +1,86 @@
+google.cloud.deploy.v1.GetReleaseRequest
+ */
+class GetReleaseRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the `Release`. Format must be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}.
+ *
+ * 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 `Release`. Format must be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}. Please see
+ * {@see CloudDeployClient::releaseName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Deploy\V1\GetReleaseRequest
+ *
+ * @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 `Release`. Format must be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the `Release`. Format must be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_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. Name of the `Release`. Format must be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_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/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/GetRolloutRequest.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/GetRolloutRequest.php
new file mode 100644
index 000000000000..94799282c551
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/GetRolloutRequest.php
@@ -0,0 +1,86 @@
+google.cloud.deploy.v1.GetRolloutRequest
+ */
+class GetRolloutRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the `Rollout`. Format must be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}/rollouts/{rollout_name}.
+ *
+ * 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 `Rollout`. Format must be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}/rollouts/{rollout_name}. Please see
+ * {@see CloudDeployClient::rolloutName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Deploy\V1\GetRolloutRequest
+ *
+ * @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 `Rollout`. Format must be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}/rollouts/{rollout_name}.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the `Rollout`. Format must be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}/rollouts/{rollout_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. Name of the `Rollout`. Format must be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}/rollouts/{rollout_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/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/GetTargetRequest.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/GetTargetRequest.php
new file mode 100644
index 000000000000..7bacdb4bc35f
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/GetTargetRequest.php
@@ -0,0 +1,86 @@
+google.cloud.deploy.v1.GetTargetRequest
+ */
+class GetTargetRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the `Target`. Format must be
+ * projects/{project_id}/locations/{location_name}/targets/{target_name}.
+ *
+ * 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 `Target`. Format must be
+ * projects/{project_id}/locations/{location_name}/targets/{target_name}. Please see
+ * {@see CloudDeployClient::targetName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Deploy\V1\GetTargetRequest
+ *
+ * @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 `Target`. Format must be
+ * projects/{project_id}/locations/{location_name}/targets/{target_name}.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the `Target`. Format must be
+ * projects/{project_id}/locations/{location_name}/targets/{target_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. Name of the `Target`. Format must be
+ * projects/{project_id}/locations/{location_name}/targets/{target_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/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/GkeCluster.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/GkeCluster.php
new file mode 100644
index 000000000000..4a6b80ddecde
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/GkeCluster.php
@@ -0,0 +1,129 @@
+google.cloud.deploy.v1.GkeCluster
+ */
+class GkeCluster extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Information specifying a GKE Cluster. Format is
+ * `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}.
+ *
+ * Generated from protobuf field string cluster = 1 [(.google.api.resource_reference) = {
+ */
+ protected $cluster = '';
+ /**
+ * Optional. If true, `cluster` is accessed using the private IP address of
+ * the control plane endpoint. Otherwise, the default IP address of the
+ * control plane endpoint is used. The default IP address is the private IP
+ * address for clusters with private control-plane endpoints and the public IP
+ * address otherwise.
+ * Only specify this option when `cluster` is a [private GKE
+ * cluster](https://cloud.google.com/kubernetes-engine/docs/concepts/private-cluster-concept).
+ *
+ * Generated from protobuf field bool internal_ip = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $internal_ip = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $cluster
+ * Information specifying a GKE Cluster. Format is
+ * `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}.
+ * @type bool $internal_ip
+ * Optional. If true, `cluster` is accessed using the private IP address of
+ * the control plane endpoint. Otherwise, the default IP address of the
+ * control plane endpoint is used. The default IP address is the private IP
+ * address for clusters with private control-plane endpoints and the public IP
+ * address otherwise.
+ * Only specify this option when `cluster` is a [private GKE
+ * cluster](https://cloud.google.com/kubernetes-engine/docs/concepts/private-cluster-concept).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Information specifying a GKE Cluster. Format is
+ * `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}.
+ *
+ * Generated from protobuf field string cluster = 1 [(.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getCluster()
+ {
+ return $this->cluster;
+ }
+
+ /**
+ * Information specifying a GKE Cluster. Format is
+ * `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}.
+ *
+ * Generated from protobuf field string cluster = 1 [(.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setCluster($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->cluster = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. If true, `cluster` is accessed using the private IP address of
+ * the control plane endpoint. Otherwise, the default IP address of the
+ * control plane endpoint is used. The default IP address is the private IP
+ * address for clusters with private control-plane endpoints and the public IP
+ * address otherwise.
+ * Only specify this option when `cluster` is a [private GKE
+ * cluster](https://cloud.google.com/kubernetes-engine/docs/concepts/private-cluster-concept).
+ *
+ * Generated from protobuf field bool internal_ip = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getInternalIp()
+ {
+ return $this->internal_ip;
+ }
+
+ /**
+ * Optional. If true, `cluster` is accessed using the private IP address of
+ * the control plane endpoint. Otherwise, the default IP address of the
+ * control plane endpoint is used. The default IP address is the private IP
+ * address for clusters with private control-plane endpoints and the public IP
+ * address otherwise.
+ * Only specify this option when `cluster` is a [private GKE
+ * cluster](https://cloud.google.com/kubernetes-engine/docs/concepts/private-cluster-concept).
+ *
+ * Generated from protobuf field bool internal_ip = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setInternalIp($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->internal_ip = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/IgnoreJobRequest.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/IgnoreJobRequest.php
new file mode 100644
index 000000000000..cd56c4a28233
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/IgnoreJobRequest.php
@@ -0,0 +1,163 @@
+google.cloud.deploy.v1.IgnoreJobRequest
+ */
+class IgnoreJobRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}.
+ *
+ * Generated from protobuf field string rollout = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $rollout = '';
+ /**
+ * Required. The phase ID the Job to ignore belongs to.
+ *
+ * Generated from protobuf field string phase_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $phase_id = '';
+ /**
+ * Required. The job ID for the Job to ignore.
+ *
+ * Generated from protobuf field string job_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $job_id = '';
+
+ /**
+ * @param string $rollout Required. Name of the Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}. Please see
+ * {@see CloudDeployClient::rolloutName()} for help formatting this field.
+ * @param string $phaseId Required. The phase ID the Job to ignore belongs to.
+ * @param string $jobId Required. The job ID for the Job to ignore.
+ *
+ * @return \Google\Cloud\Deploy\V1\IgnoreJobRequest
+ *
+ * @experimental
+ */
+ public static function build(string $rollout, string $phaseId, string $jobId): self
+ {
+ return (new self())
+ ->setRollout($rollout)
+ ->setPhaseId($phaseId)
+ ->setJobId($jobId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $rollout
+ * Required. Name of the Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}.
+ * @type string $phase_id
+ * Required. The phase ID the Job to ignore belongs to.
+ * @type string $job_id
+ * Required. The job ID for the Job to ignore.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}.
+ *
+ * Generated from protobuf field string rollout = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getRollout()
+ {
+ return $this->rollout;
+ }
+
+ /**
+ * Required. Name of the Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}.
+ *
+ * Generated from protobuf field string rollout = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setRollout($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->rollout = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The phase ID the Job to ignore belongs to.
+ *
+ * Generated from protobuf field string phase_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getPhaseId()
+ {
+ return $this->phase_id;
+ }
+
+ /**
+ * Required. The phase ID the Job to ignore belongs to.
+ *
+ * Generated from protobuf field string phase_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setPhaseId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->phase_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The job ID for the Job to ignore.
+ *
+ * Generated from protobuf field string job_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getJobId()
+ {
+ return $this->job_id;
+ }
+
+ /**
+ * Required. The job ID for the Job to ignore.
+ *
+ * Generated from protobuf field string job_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setJobId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->job_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/IgnoreJobResponse.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/IgnoreJobResponse.php
new file mode 100644
index 000000000000..a48bda5ffdf9
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/IgnoreJobResponse.php
@@ -0,0 +1,33 @@
+google.cloud.deploy.v1.IgnoreJobResponse
+ */
+class IgnoreJobResponse extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Job.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Job.php
new file mode 100644
index 000000000000..75dd8b791ae8
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Job.php
@@ -0,0 +1,318 @@
+google.cloud.deploy.v1.Job
+ */
+class Job extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The ID of the Job.
+ *
+ * Generated from protobuf field string id = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $id = '';
+ /**
+ * Output only. The current state of the Job.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Job.State state = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. Additional information on why the Job was skipped, if
+ * available.
+ *
+ * Generated from protobuf field string skip_message = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $skip_message = '';
+ /**
+ * Output only. The name of the `JobRun` responsible for the most recent
+ * invocation of this Job.
+ *
+ * Generated from protobuf field string job_run = 3 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ */
+ protected $job_run = '';
+ protected $job_type;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $id
+ * Output only. The ID of the Job.
+ * @type int $state
+ * Output only. The current state of the Job.
+ * @type string $skip_message
+ * Output only. Additional information on why the Job was skipped, if
+ * available.
+ * @type string $job_run
+ * Output only. The name of the `JobRun` responsible for the most recent
+ * invocation of this Job.
+ * @type \Google\Cloud\Deploy\V1\DeployJob $deploy_job
+ * Output only. A deploy Job.
+ * @type \Google\Cloud\Deploy\V1\VerifyJob $verify_job
+ * Output only. A verify Job.
+ * @type \Google\Cloud\Deploy\V1\CreateChildRolloutJob $create_child_rollout_job
+ * Output only. A createChildRollout Job.
+ * @type \Google\Cloud\Deploy\V1\AdvanceChildRolloutJob $advance_child_rollout_job
+ * Output only. An advanceChildRollout Job.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The ID of the Job.
+ *
+ * Generated from protobuf field string id = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getId()
+ {
+ return $this->id;
+ }
+
+ /**
+ * Output only. The ID of the Job.
+ *
+ * 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;
+ }
+
+ /**
+ * Output only. The current state of the Job.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Job.State state = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The current state of the Job.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Job.State state = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Deploy\V1\Job\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Additional information on why the Job was skipped, if
+ * available.
+ *
+ * Generated from protobuf field string skip_message = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getSkipMessage()
+ {
+ return $this->skip_message;
+ }
+
+ /**
+ * Output only. Additional information on why the Job was skipped, if
+ * available.
+ *
+ * Generated from protobuf field string skip_message = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setSkipMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->skip_message = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The name of the `JobRun` responsible for the most recent
+ * invocation of this Job.
+ *
+ * Generated from protobuf field string job_run = 3 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getJobRun()
+ {
+ return $this->job_run;
+ }
+
+ /**
+ * Output only. The name of the `JobRun` responsible for the most recent
+ * invocation of this Job.
+ *
+ * Generated from protobuf field string job_run = 3 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setJobRun($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->job_run = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. A deploy Job.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.DeployJob deploy_job = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Deploy\V1\DeployJob|null
+ */
+ public function getDeployJob()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasDeployJob()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * Output only. A deploy Job.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.DeployJob deploy_job = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Deploy\V1\DeployJob $var
+ * @return $this
+ */
+ public function setDeployJob($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\DeployJob::class);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. A verify Job.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.VerifyJob verify_job = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Deploy\V1\VerifyJob|null
+ */
+ public function getVerifyJob()
+ {
+ return $this->readOneof(5);
+ }
+
+ public function hasVerifyJob()
+ {
+ return $this->hasOneof(5);
+ }
+
+ /**
+ * Output only. A verify Job.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.VerifyJob verify_job = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Deploy\V1\VerifyJob $var
+ * @return $this
+ */
+ public function setVerifyJob($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\VerifyJob::class);
+ $this->writeOneof(5, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. A createChildRollout Job.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.CreateChildRolloutJob create_child_rollout_job = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Deploy\V1\CreateChildRolloutJob|null
+ */
+ public function getCreateChildRolloutJob()
+ {
+ return $this->readOneof(6);
+ }
+
+ public function hasCreateChildRolloutJob()
+ {
+ return $this->hasOneof(6);
+ }
+
+ /**
+ * Output only. A createChildRollout Job.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.CreateChildRolloutJob create_child_rollout_job = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Deploy\V1\CreateChildRolloutJob $var
+ * @return $this
+ */
+ public function setCreateChildRolloutJob($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\CreateChildRolloutJob::class);
+ $this->writeOneof(6, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. An advanceChildRollout Job.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.AdvanceChildRolloutJob advance_child_rollout_job = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Deploy\V1\AdvanceChildRolloutJob|null
+ */
+ public function getAdvanceChildRolloutJob()
+ {
+ return $this->readOneof(7);
+ }
+
+ public function hasAdvanceChildRolloutJob()
+ {
+ return $this->hasOneof(7);
+ }
+
+ /**
+ * Output only. An advanceChildRollout Job.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.AdvanceChildRolloutJob advance_child_rollout_job = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Deploy\V1\AdvanceChildRolloutJob $var
+ * @return $this
+ */
+ public function setAdvanceChildRolloutJob($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\AdvanceChildRolloutJob::class);
+ $this->writeOneof(7, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getJobType()
+ {
+ return $this->whichOneof("job_type");
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Job/State.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Job/State.php
new file mode 100644
index 000000000000..de523dfefaa6
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Job/State.php
@@ -0,0 +1,106 @@
+google.cloud.deploy.v1.Job.State
+ */
+class State
+{
+ /**
+ * The Job has an unspecified state.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The Job is waiting for an earlier Phase(s) or Job(s) to complete.
+ *
+ * Generated from protobuf enum PENDING = 1;
+ */
+ const PENDING = 1;
+ /**
+ * The Job is disabled.
+ *
+ * Generated from protobuf enum DISABLED = 2;
+ */
+ const DISABLED = 2;
+ /**
+ * The Job is in progress.
+ *
+ * Generated from protobuf enum IN_PROGRESS = 3;
+ */
+ const IN_PROGRESS = 3;
+ /**
+ * The Job succeeded.
+ *
+ * Generated from protobuf enum SUCCEEDED = 4;
+ */
+ const SUCCEEDED = 4;
+ /**
+ * The Job failed.
+ *
+ * Generated from protobuf enum FAILED = 5;
+ */
+ const FAILED = 5;
+ /**
+ * The Job was aborted.
+ *
+ * Generated from protobuf enum ABORTED = 6;
+ */
+ const ABORTED = 6;
+ /**
+ * The Job was skipped.
+ *
+ * Generated from protobuf enum SKIPPED = 7;
+ */
+ const SKIPPED = 7;
+ /**
+ * The Job was ignored.
+ *
+ * Generated from protobuf enum IGNORED = 8;
+ */
+ const IGNORED = 8;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::PENDING => 'PENDING',
+ self::DISABLED => 'DISABLED',
+ self::IN_PROGRESS => 'IN_PROGRESS',
+ self::SUCCEEDED => 'SUCCEEDED',
+ self::FAILED => 'FAILED',
+ self::ABORTED => 'ABORTED',
+ self::SKIPPED => 'SKIPPED',
+ self::IGNORED => 'IGNORED',
+ ];
+
+ 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\Deploy\V1\Job_State::class);
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/JobRun.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/JobRun.php
new file mode 100644
index 000000000000..ed375e513fd0
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/JobRun.php
@@ -0,0 +1,531 @@
+google.cloud.deploy.v1.JobRun
+ */
+class JobRun extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. Name of the `JobRun`. Format is
+ * projects/{project}/locations/{location}/
+ * deliveryPipelines/{deliveryPipeline}/releases/{releases}/rollouts/
+ * {rollouts}/jobRuns/{uuid}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $name = '';
+ /**
+ * Output only. Unique identifier of the `JobRun`.
+ *
+ * Generated from protobuf field string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $uid = '';
+ /**
+ * Output only. ID of the `Rollout` phase this `JobRun` belongs in.
+ *
+ * Generated from protobuf field string phase_id = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $phase_id = '';
+ /**
+ * Output only. ID of the `Rollout` job this `JobRun` corresponds to.
+ *
+ * Generated from protobuf field string job_id = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $job_id = '';
+ /**
+ * Output only. Time at which the `JobRun` was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. Time at which the `JobRun` was started.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $start_time = null;
+ /**
+ * Output only. Time at which the `JobRun` ended.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $end_time = null;
+ /**
+ * Output only. The current state of the `JobRun`.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.JobRun.State state = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. This checksum is computed by the server based on the value of
+ * other fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $etag = '';
+ protected $job_run;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Optional. Name of the `JobRun`. Format is
+ * projects/{project}/locations/{location}/
+ * deliveryPipelines/{deliveryPipeline}/releases/{releases}/rollouts/
+ * {rollouts}/jobRuns/{uuid}.
+ * @type string $uid
+ * Output only. Unique identifier of the `JobRun`.
+ * @type string $phase_id
+ * Output only. ID of the `Rollout` phase this `JobRun` belongs in.
+ * @type string $job_id
+ * Output only. ID of the `Rollout` job this `JobRun` corresponds to.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. Time at which the `JobRun` was created.
+ * @type \Google\Protobuf\Timestamp $start_time
+ * Output only. Time at which the `JobRun` was started.
+ * @type \Google\Protobuf\Timestamp $end_time
+ * Output only. Time at which the `JobRun` ended.
+ * @type int $state
+ * Output only. The current state of the `JobRun`.
+ * @type \Google\Cloud\Deploy\V1\DeployJobRun $deploy_job_run
+ * Output only. Information specific to a deploy `JobRun`.
+ * @type \Google\Cloud\Deploy\V1\VerifyJobRun $verify_job_run
+ * Output only. Information specific to a verify `JobRun`.
+ * @type \Google\Cloud\Deploy\V1\CreateChildRolloutJobRun $create_child_rollout_job_run
+ * Output only. Information specific to a createChildRollout `JobRun`.
+ * @type \Google\Cloud\Deploy\V1\AdvanceChildRolloutJobRun $advance_child_rollout_job_run
+ * Output only. Information specific to an advanceChildRollout `JobRun`
+ * @type string $etag
+ * Output only. This checksum is computed by the server based on the value of
+ * other fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. Name of the `JobRun`. Format is
+ * projects/{project}/locations/{location}/
+ * deliveryPipelines/{deliveryPipeline}/releases/{releases}/rollouts/
+ * {rollouts}/jobRuns/{uuid}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Optional. Name of the `JobRun`. Format is
+ * projects/{project}/locations/{location}/
+ * deliveryPipelines/{deliveryPipeline}/releases/{releases}/rollouts/
+ * {rollouts}/jobRuns/{uuid}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Unique identifier of the `JobRun`.
+ *
+ * Generated from protobuf field string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getUid()
+ {
+ return $this->uid;
+ }
+
+ /**
+ * Output only. Unique identifier of the `JobRun`.
+ *
+ * Generated from protobuf field string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setUid($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uid = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. ID of the `Rollout` phase this `JobRun` belongs in.
+ *
+ * Generated from protobuf field string phase_id = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getPhaseId()
+ {
+ return $this->phase_id;
+ }
+
+ /**
+ * Output only. ID of the `Rollout` phase this `JobRun` belongs in.
+ *
+ * Generated from protobuf field string phase_id = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setPhaseId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->phase_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. ID of the `Rollout` job this `JobRun` corresponds to.
+ *
+ * Generated from protobuf field string job_id = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getJobId()
+ {
+ return $this->job_id;
+ }
+
+ /**
+ * Output only. ID of the `Rollout` job this `JobRun` corresponds to.
+ *
+ * Generated from protobuf field string job_id = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setJobId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->job_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Time at which the `JobRun` was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 5 [(.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 at which the `JobRun` was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 5 [(.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 at which the `JobRun` was started.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 6 [(.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. Time at which the `JobRun` was started.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 6 [(.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. Time at which the `JobRun` ended.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 7 [(.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 at which the `JobRun` ended.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 7 [(.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 current state of the `JobRun`.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.JobRun.State state = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The current state of the `JobRun`.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.JobRun.State state = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Deploy\V1\JobRun\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Information specific to a deploy `JobRun`.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.DeployJobRun deploy_job_run = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Deploy\V1\DeployJobRun|null
+ */
+ public function getDeployJobRun()
+ {
+ return $this->readOneof(9);
+ }
+
+ public function hasDeployJobRun()
+ {
+ return $this->hasOneof(9);
+ }
+
+ /**
+ * Output only. Information specific to a deploy `JobRun`.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.DeployJobRun deploy_job_run = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Deploy\V1\DeployJobRun $var
+ * @return $this
+ */
+ public function setDeployJobRun($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\DeployJobRun::class);
+ $this->writeOneof(9, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. Information specific to a verify `JobRun`.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.VerifyJobRun verify_job_run = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Deploy\V1\VerifyJobRun|null
+ */
+ public function getVerifyJobRun()
+ {
+ return $this->readOneof(10);
+ }
+
+ public function hasVerifyJobRun()
+ {
+ return $this->hasOneof(10);
+ }
+
+ /**
+ * Output only. Information specific to a verify `JobRun`.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.VerifyJobRun verify_job_run = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Deploy\V1\VerifyJobRun $var
+ * @return $this
+ */
+ public function setVerifyJobRun($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\VerifyJobRun::class);
+ $this->writeOneof(10, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. Information specific to a createChildRollout `JobRun`.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.CreateChildRolloutJobRun create_child_rollout_job_run = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Deploy\V1\CreateChildRolloutJobRun|null
+ */
+ public function getCreateChildRolloutJobRun()
+ {
+ return $this->readOneof(12);
+ }
+
+ public function hasCreateChildRolloutJobRun()
+ {
+ return $this->hasOneof(12);
+ }
+
+ /**
+ * Output only. Information specific to a createChildRollout `JobRun`.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.CreateChildRolloutJobRun create_child_rollout_job_run = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Deploy\V1\CreateChildRolloutJobRun $var
+ * @return $this
+ */
+ public function setCreateChildRolloutJobRun($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\CreateChildRolloutJobRun::class);
+ $this->writeOneof(12, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. Information specific to an advanceChildRollout `JobRun`
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.AdvanceChildRolloutJobRun advance_child_rollout_job_run = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Deploy\V1\AdvanceChildRolloutJobRun|null
+ */
+ public function getAdvanceChildRolloutJobRun()
+ {
+ return $this->readOneof(13);
+ }
+
+ public function hasAdvanceChildRolloutJobRun()
+ {
+ return $this->hasOneof(13);
+ }
+
+ /**
+ * Output only. Information specific to an advanceChildRollout `JobRun`
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.AdvanceChildRolloutJobRun advance_child_rollout_job_run = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Deploy\V1\AdvanceChildRolloutJobRun $var
+ * @return $this
+ */
+ public function setAdvanceChildRolloutJobRun($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\AdvanceChildRolloutJobRun::class);
+ $this->writeOneof(13, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. This checksum is computed by the server based on the value of
+ * other fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getEtag()
+ {
+ return $this->etag;
+ }
+
+ /**
+ * Output only. This checksum is computed by the server based on the value of
+ * other fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setEtag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->etag = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getJobRun()
+ {
+ return $this->whichOneof("job_run");
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/JobRun/State.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/JobRun/State.php
new file mode 100644
index 000000000000..df8b7b7d61cf
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/JobRun/State.php
@@ -0,0 +1,85 @@
+google.cloud.deploy.v1.JobRun.State
+ */
+class State
+{
+ /**
+ * The `JobRun` has an unspecified state.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The `JobRun` is in progress.
+ *
+ * Generated from protobuf enum IN_PROGRESS = 1;
+ */
+ const IN_PROGRESS = 1;
+ /**
+ * The `JobRun` has succeeded.
+ *
+ * Generated from protobuf enum SUCCEEDED = 2;
+ */
+ const SUCCEEDED = 2;
+ /**
+ * The `JobRun` has failed.
+ *
+ * Generated from protobuf enum FAILED = 3;
+ */
+ const FAILED = 3;
+ /**
+ * The `JobRun` is terminating.
+ *
+ * Generated from protobuf enum TERMINATING = 4;
+ */
+ const TERMINATING = 4;
+ /**
+ * The `JobRun` was terminated.
+ *
+ * Generated from protobuf enum TERMINATED = 5;
+ */
+ const TERMINATED = 5;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::IN_PROGRESS => 'IN_PROGRESS',
+ self::SUCCEEDED => 'SUCCEEDED',
+ self::FAILED => 'FAILED',
+ self::TERMINATING => 'TERMINATING',
+ self::TERMINATED => 'TERMINATED',
+ ];
+
+ 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\Deploy\V1\JobRun_State::class);
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/JobRunNotificationEvent.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/JobRunNotificationEvent.php
new file mode 100644
index 000000000000..fc8518e97851
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/JobRunNotificationEvent.php
@@ -0,0 +1,273 @@
+google.cloud.deploy.v1.JobRunNotificationEvent
+ */
+class JobRunNotificationEvent extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Debug message for when a notification fails to send.
+ *
+ * Generated from protobuf field string message = 1;
+ */
+ protected $message = '';
+ /**
+ * The name of the `JobRun`.
+ *
+ * Generated from protobuf field string job_run = 2;
+ */
+ protected $job_run = '';
+ /**
+ * Unique identifier of the `DeliveryPipeline`.
+ *
+ * Generated from protobuf field string pipeline_uid = 3;
+ */
+ protected $pipeline_uid = '';
+ /**
+ * Unique identifier of the `Release`.
+ *
+ * Generated from protobuf field string release_uid = 4;
+ */
+ protected $release_uid = '';
+ /**
+ * Unique identifier of the `Rollout`.
+ *
+ * Generated from protobuf field string rollout_uid = 5;
+ */
+ protected $rollout_uid = '';
+ /**
+ * ID of the `Target`.
+ *
+ * Generated from protobuf field string target_id = 6;
+ */
+ protected $target_id = '';
+ /**
+ * Type of this notification, e.g. for a Pub/Sub failure.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Type type = 7;
+ */
+ protected $type = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $message
+ * Debug message for when a notification fails to send.
+ * @type string $job_run
+ * The name of the `JobRun`.
+ * @type string $pipeline_uid
+ * Unique identifier of the `DeliveryPipeline`.
+ * @type string $release_uid
+ * Unique identifier of the `Release`.
+ * @type string $rollout_uid
+ * Unique identifier of the `Rollout`.
+ * @type string $target_id
+ * ID of the `Target`.
+ * @type int $type
+ * Type of this notification, e.g. for a Pub/Sub failure.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\JobrunNotificationPayload::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Debug message for when a notification fails to send.
+ *
+ * Generated from protobuf field string message = 1;
+ * @return string
+ */
+ public function getMessage()
+ {
+ return $this->message;
+ }
+
+ /**
+ * Debug message for when a notification fails to send.
+ *
+ * Generated from protobuf field string message = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->message = $var;
+
+ return $this;
+ }
+
+ /**
+ * The name of the `JobRun`.
+ *
+ * Generated from protobuf field string job_run = 2;
+ * @return string
+ */
+ public function getJobRun()
+ {
+ return $this->job_run;
+ }
+
+ /**
+ * The name of the `JobRun`.
+ *
+ * Generated from protobuf field string job_run = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setJobRun($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->job_run = $var;
+
+ return $this;
+ }
+
+ /**
+ * Unique identifier of the `DeliveryPipeline`.
+ *
+ * Generated from protobuf field string pipeline_uid = 3;
+ * @return string
+ */
+ public function getPipelineUid()
+ {
+ return $this->pipeline_uid;
+ }
+
+ /**
+ * Unique identifier of the `DeliveryPipeline`.
+ *
+ * Generated from protobuf field string pipeline_uid = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPipelineUid($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->pipeline_uid = $var;
+
+ return $this;
+ }
+
+ /**
+ * Unique identifier of the `Release`.
+ *
+ * Generated from protobuf field string release_uid = 4;
+ * @return string
+ */
+ public function getReleaseUid()
+ {
+ return $this->release_uid;
+ }
+
+ /**
+ * Unique identifier of the `Release`.
+ *
+ * Generated from protobuf field string release_uid = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setReleaseUid($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->release_uid = $var;
+
+ return $this;
+ }
+
+ /**
+ * Unique identifier of the `Rollout`.
+ *
+ * Generated from protobuf field string rollout_uid = 5;
+ * @return string
+ */
+ public function getRolloutUid()
+ {
+ return $this->rollout_uid;
+ }
+
+ /**
+ * Unique identifier of the `Rollout`.
+ *
+ * Generated from protobuf field string rollout_uid = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setRolloutUid($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->rollout_uid = $var;
+
+ return $this;
+ }
+
+ /**
+ * ID of the `Target`.
+ *
+ * Generated from protobuf field string target_id = 6;
+ * @return string
+ */
+ public function getTargetId()
+ {
+ return $this->target_id;
+ }
+
+ /**
+ * ID of the `Target`.
+ *
+ * Generated from protobuf field string target_id = 6;
+ * @param string $var
+ * @return $this
+ */
+ public function setTargetId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->target_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Type of this notification, e.g. for a Pub/Sub failure.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Type type = 7;
+ * @return int
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * Type of this notification, e.g. for a Pub/Sub failure.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Type type = 7;
+ * @param int $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Deploy\V1\Type::class);
+ $this->type = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/JobRun_State.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/JobRun_State.php
new file mode 100644
index 000000000000..5a15b6a6bddb
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/JobRun_State.php
@@ -0,0 +1,16 @@
+google.cloud.deploy.v1.KubernetesConfig
+ */
+class KubernetesConfig extends \Google\Protobuf\Internal\Message
+{
+ protected $service_definition;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Deploy\V1\KubernetesConfig\GatewayServiceMesh $gateway_service_mesh
+ * Kubernetes Gateway API service mesh configuration.
+ * @type \Google\Cloud\Deploy\V1\KubernetesConfig\ServiceNetworking $service_networking
+ * Kubernetes Service networking configuration.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Kubernetes Gateway API service mesh configuration.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.KubernetesConfig.GatewayServiceMesh gateway_service_mesh = 1;
+ * @return \Google\Cloud\Deploy\V1\KubernetesConfig\GatewayServiceMesh|null
+ */
+ public function getGatewayServiceMesh()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasGatewayServiceMesh()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Kubernetes Gateway API service mesh configuration.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.KubernetesConfig.GatewayServiceMesh gateway_service_mesh = 1;
+ * @param \Google\Cloud\Deploy\V1\KubernetesConfig\GatewayServiceMesh $var
+ * @return $this
+ */
+ public function setGatewayServiceMesh($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\KubernetesConfig\GatewayServiceMesh::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Kubernetes Service networking configuration.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.KubernetesConfig.ServiceNetworking service_networking = 2;
+ * @return \Google\Cloud\Deploy\V1\KubernetesConfig\ServiceNetworking|null
+ */
+ public function getServiceNetworking()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasServiceNetworking()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Kubernetes Service networking configuration.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.KubernetesConfig.ServiceNetworking service_networking = 2;
+ * @param \Google\Cloud\Deploy\V1\KubernetesConfig\ServiceNetworking $var
+ * @return $this
+ */
+ public function setServiceNetworking($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\KubernetesConfig\ServiceNetworking::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getServiceDefinition()
+ {
+ return $this->whichOneof("service_definition");
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/KubernetesConfig/GatewayServiceMesh.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/KubernetesConfig/GatewayServiceMesh.php
new file mode 100644
index 000000000000..81ca9f2bc291
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/KubernetesConfig/GatewayServiceMesh.php
@@ -0,0 +1,142 @@
+google.cloud.deploy.v1.KubernetesConfig.GatewayServiceMesh
+ */
+class GatewayServiceMesh extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the Gateway API HTTPRoute.
+ *
+ * Generated from protobuf field string http_route = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $http_route = '';
+ /**
+ * Required. Name of the Kubernetes Service.
+ *
+ * Generated from protobuf field string service = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $service = '';
+ /**
+ * Required. Name of the Kubernetes Deployment whose traffic is managed by
+ * the specified HTTPRoute and Service.
+ *
+ * Generated from protobuf field string deployment = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $deployment = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $http_route
+ * Required. Name of the Gateway API HTTPRoute.
+ * @type string $service
+ * Required. Name of the Kubernetes Service.
+ * @type string $deployment
+ * Required. Name of the Kubernetes Deployment whose traffic is managed by
+ * the specified HTTPRoute and Service.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the Gateway API HTTPRoute.
+ *
+ * Generated from protobuf field string http_route = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getHttpRoute()
+ {
+ return $this->http_route;
+ }
+
+ /**
+ * Required. Name of the Gateway API HTTPRoute.
+ *
+ * Generated from protobuf field string http_route = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setHttpRoute($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->http_route = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Name of the Kubernetes Service.
+ *
+ * Generated from protobuf field string service = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ /**
+ * Required. Name of the Kubernetes Service.
+ *
+ * Generated from protobuf field string service = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Name of the Kubernetes Deployment whose traffic is managed by
+ * the specified HTTPRoute and Service.
+ *
+ * Generated from protobuf field string deployment = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getDeployment()
+ {
+ return $this->deployment;
+ }
+
+ /**
+ * Required. Name of the Kubernetes Deployment whose traffic is managed by
+ * the specified HTTPRoute and Service.
+ *
+ * Generated from protobuf field string deployment = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setDeployment($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->deployment = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(GatewayServiceMesh::class, \Google\Cloud\Deploy\V1\KubernetesConfig_GatewayServiceMesh::class);
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/KubernetesConfig/ServiceNetworking.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/KubernetesConfig/ServiceNetworking.php
new file mode 100644
index 000000000000..fb34262a2562
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/KubernetesConfig/ServiceNetworking.php
@@ -0,0 +1,108 @@
+google.cloud.deploy.v1.KubernetesConfig.ServiceNetworking
+ */
+class ServiceNetworking extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the Kubernetes Service.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $service = '';
+ /**
+ * Required. Name of the Kubernetes Deployment whose traffic is managed by
+ * the specified Service.
+ *
+ * Generated from protobuf field string deployment = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $deployment = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $service
+ * Required. Name of the Kubernetes Service.
+ * @type string $deployment
+ * Required. Name of the Kubernetes Deployment whose traffic is managed by
+ * the specified Service.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the Kubernetes Service.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ /**
+ * Required. Name of the Kubernetes Service.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Name of the Kubernetes Deployment whose traffic is managed by
+ * the specified Service.
+ *
+ * Generated from protobuf field string deployment = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getDeployment()
+ {
+ return $this->deployment;
+ }
+
+ /**
+ * Required. Name of the Kubernetes Deployment whose traffic is managed by
+ * the specified Service.
+ *
+ * Generated from protobuf field string deployment = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setDeployment($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->deployment = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(ServiceNetworking::class, \Google\Cloud\Deploy\V1\KubernetesConfig_ServiceNetworking::class);
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/KubernetesConfig_GatewayServiceMesh.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/KubernetesConfig_GatewayServiceMesh.php
new file mode 100644
index 000000000000..ae3a9bc9ef9d
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/KubernetesConfig_GatewayServiceMesh.php
@@ -0,0 +1,16 @@
+google.cloud.deploy.v1.ListDeliveryPipelinesRequest
+ */
+class ListDeliveryPipelinesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The parent, which owns this collection of pipelines. Format must
+ * be projects/{project_id}/locations/{location_name}.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * The maximum number of pipelines to return. The service may return
+ * fewer than this value. If unspecified, at most 50 pipelines will
+ * be returned. The maximum value is 1000; values above 1000 will be set
+ * to 1000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * A page token, received from a previous `ListDeliveryPipelines` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other provided parameters match
+ * the call that provided the page token.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+ /**
+ * Filter pipelines to be returned. See https://google.aip.dev/160 for more
+ * details.
+ *
+ * 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. The parent, which owns this collection of pipelines. Format must
+ * be projects/{project_id}/locations/{location_name}. Please see
+ * {@see CloudDeployClient::locationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Deploy\V1\ListDeliveryPipelinesRequest
+ *
+ * @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, which owns this collection of pipelines. Format must
+ * be projects/{project_id}/locations/{location_name}.
+ * @type int $page_size
+ * The maximum number of pipelines to return. The service may return
+ * fewer than this value. If unspecified, at most 50 pipelines will
+ * be returned. The maximum value is 1000; values above 1000 will be set
+ * to 1000.
+ * @type string $page_token
+ * A page token, received from a previous `ListDeliveryPipelines` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other provided parameters match
+ * the call that provided the page token.
+ * @type string $filter
+ * Filter pipelines to be returned. See https://google.aip.dev/160 for more
+ * details.
+ * @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\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The parent, which owns this collection of pipelines. Format must
+ * be projects/{project_id}/locations/{location_name}.
+ *
+ * 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, which owns this collection of pipelines. Format must
+ * be projects/{project_id}/locations/{location_name}.
+ *
+ * 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 pipelines to return. The service may return
+ * fewer than this value. If unspecified, at most 50 pipelines will
+ * be returned. The maximum value is 1000; values above 1000 will be set
+ * to 1000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The maximum number of pipelines to return. The service may return
+ * fewer than this value. If unspecified, at most 50 pipelines will
+ * be returned. The maximum value is 1000; values above 1000 will be set
+ * 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 `ListDeliveryPipelines` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other provided parameters 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 `ListDeliveryPipelines` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other provided parameters 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;
+ }
+
+ /**
+ * Filter pipelines to be returned. See https://google.aip.dev/160 for more
+ * details.
+ *
+ * Generated from protobuf field string filter = 4;
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Filter pipelines to be returned. See https://google.aip.dev/160 for more
+ * details.
+ *
+ * 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/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListDeliveryPipelinesResponse.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListDeliveryPipelinesResponse.php
new file mode 100644
index 000000000000..aade7781c825
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListDeliveryPipelinesResponse.php
@@ -0,0 +1,139 @@
+google.cloud.deploy.v1.ListDeliveryPipelinesResponse
+ */
+class ListDeliveryPipelinesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The `DeliveryPipeline` objects.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.DeliveryPipeline delivery_pipelines = 1;
+ */
+ private $delivery_pipelines;
+ /**
+ * A token, which 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\Deploy\V1\DeliveryPipeline>|\Google\Protobuf\Internal\RepeatedField $delivery_pipelines
+ * The `DeliveryPipeline` objects.
+ * @type string $next_page_token
+ * A token, which 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\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The `DeliveryPipeline` objects.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.DeliveryPipeline delivery_pipelines = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getDeliveryPipelines()
+ {
+ return $this->delivery_pipelines;
+ }
+
+ /**
+ * The `DeliveryPipeline` objects.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.DeliveryPipeline delivery_pipelines = 1;
+ * @param array<\Google\Cloud\Deploy\V1\DeliveryPipeline>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setDeliveryPipelines($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Deploy\V1\DeliveryPipeline::class);
+ $this->delivery_pipelines = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token, which 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, which 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/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListJobRunsRequest.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListJobRunsRequest.php
new file mode 100644
index 000000000000..de678b046e48
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListJobRunsRequest.php
@@ -0,0 +1,249 @@
+google.cloud.deploy.v1.ListJobRunsRequest
+ */
+class ListJobRunsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The `Rollout` which owns this collection of `JobRun` objects.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. The maximum number of `JobRun` objects to return. The service may
+ * return fewer than this value. If unspecified, at most 50 `JobRun` objects
+ * will be returned. The maximum value is 1000; values above 1000 will be set
+ * to 1000.
+ *
+ * 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 `ListJobRuns` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other provided parameters 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 results to be returned. See https://google.aip.dev/160 for
+ * more details.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+ /**
+ * Optional. Field to sort by. See https://google.aip.dev/132#ordering for
+ * more details.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $order_by = '';
+
+ /**
+ * @param string $parent Required. The `Rollout` which owns this collection of `JobRun` objects. Please see
+ * {@see CloudDeployClient::rolloutName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Deploy\V1\ListJobRunsRequest
+ *
+ * @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 `Rollout` which owns this collection of `JobRun` objects.
+ * @type int $page_size
+ * Optional. The maximum number of `JobRun` objects to return. The service may
+ * return fewer than this value. If unspecified, at most 50 `JobRun` objects
+ * will be returned. The maximum value is 1000; values above 1000 will be set
+ * to 1000.
+ * @type string $page_token
+ * Optional. A page token, received from a previous `ListJobRuns` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other provided parameters match the call that provided
+ * the page token.
+ * @type string $filter
+ * Optional. Filter results to be returned. See https://google.aip.dev/160 for
+ * more details.
+ * @type string $order_by
+ * Optional. Field to sort by. See https://google.aip.dev/132#ordering for
+ * more details.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The `Rollout` which owns this collection of `JobRun` objects.
+ *
+ * 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 `Rollout` which owns this collection of `JobRun` objects.
+ *
+ * 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 `JobRun` objects to return. The service may
+ * return fewer than this value. If unspecified, at most 50 `JobRun` objects
+ * will be returned. The maximum value is 1000; values above 1000 will be set
+ * to 1000.
+ *
+ * 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 `JobRun` objects to return. The service may
+ * return fewer than this value. If unspecified, at most 50 `JobRun` objects
+ * will be returned. The maximum value is 1000; values above 1000 will be set
+ * to 1000.
+ *
+ * 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 `ListJobRuns` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other provided parameters 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 `ListJobRuns` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other provided parameters 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 results to be returned. See https://google.aip.dev/160 for
+ * more details.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. Filter results to be returned. See https://google.aip.dev/160 for
+ * more details.
+ *
+ * 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. Field to sort by. See https://google.aip.dev/132#ordering for
+ * more details.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Optional. Field to sort by. See https://google.aip.dev/132#ordering for
+ * more details.
+ *
+ * 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/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListJobRunsResponse.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListJobRunsResponse.php
new file mode 100644
index 000000000000..c62986ce2dbe
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListJobRunsResponse.php
@@ -0,0 +1,139 @@
+google.cloud.deploy.v1.ListJobRunsResponse
+ */
+class ListJobRunsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The `JobRun` objects.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.JobRun job_runs = 1;
+ */
+ private $job_runs;
+ /**
+ * A token, which 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\Deploy\V1\JobRun>|\Google\Protobuf\Internal\RepeatedField $job_runs
+ * The `JobRun` objects.
+ * @type string $next_page_token
+ * A token, which 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\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The `JobRun` objects.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.JobRun job_runs = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getJobRuns()
+ {
+ return $this->job_runs;
+ }
+
+ /**
+ * The `JobRun` objects.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.JobRun job_runs = 1;
+ * @param array<\Google\Cloud\Deploy\V1\JobRun>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setJobRuns($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Deploy\V1\JobRun::class);
+ $this->job_runs = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token, which 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, which 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/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListReleasesRequest.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListReleasesRequest.php
new file mode 100644
index 000000000000..a133cfc5e498
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListReleasesRequest.php
@@ -0,0 +1,254 @@
+google.cloud.deploy.v1.ListReleasesRequest
+ */
+class ListReleasesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The `DeliveryPipeline` which owns this collection of `Release`
+ * objects.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. The maximum number of `Release` objects to return. The service
+ * may return fewer than this value. If unspecified, at most 50 `Release`
+ * objects will be returned. The maximum value is 1000; values above 1000 will
+ * be set to 1000.
+ *
+ * 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 `ListReleases` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other provided parameters 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 releases to be returned. See https://google.aip.dev/160
+ * for more details.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+ /**
+ * Optional. Field to sort by. See https://google.aip.dev/132#ordering for
+ * more details.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $order_by = '';
+
+ /**
+ * @param string $parent Required. The `DeliveryPipeline` which owns this collection of `Release`
+ * objects. Please see
+ * {@see CloudDeployClient::deliveryPipelineName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Deploy\V1\ListReleasesRequest
+ *
+ * @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 `DeliveryPipeline` which owns this collection of `Release`
+ * objects.
+ * @type int $page_size
+ * Optional. The maximum number of `Release` objects to return. The service
+ * may return fewer than this value. If unspecified, at most 50 `Release`
+ * objects will be returned. The maximum value is 1000; values above 1000 will
+ * be set to 1000.
+ * @type string $page_token
+ * Optional. A page token, received from a previous `ListReleases` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other provided parameters match
+ * the call that provided the page token.
+ * @type string $filter
+ * Optional. Filter releases to be returned. See https://google.aip.dev/160
+ * for more details.
+ * @type string $order_by
+ * Optional. Field to sort by. See https://google.aip.dev/132#ordering for
+ * more details.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The `DeliveryPipeline` which owns this collection of `Release`
+ * objects.
+ *
+ * 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 `DeliveryPipeline` which owns this collection of `Release`
+ * objects.
+ *
+ * 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 `Release` objects to return. The service
+ * may return fewer than this value. If unspecified, at most 50 `Release`
+ * objects will be returned. The maximum value is 1000; values above 1000 will
+ * be set to 1000.
+ *
+ * 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 `Release` objects to return. The service
+ * may return fewer than this value. If unspecified, at most 50 `Release`
+ * objects will be returned. The maximum value is 1000; values above 1000 will
+ * be set to 1000.
+ *
+ * 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 `ListReleases` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other provided parameters 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 `ListReleases` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other provided parameters 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 releases to be returned. See https://google.aip.dev/160
+ * for more details.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. Filter releases to be returned. See https://google.aip.dev/160
+ * for more details.
+ *
+ * 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. Field to sort by. See https://google.aip.dev/132#ordering for
+ * more details.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Optional. Field to sort by. See https://google.aip.dev/132#ordering for
+ * more details.
+ *
+ * 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/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListReleasesResponse.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListReleasesResponse.php
new file mode 100644
index 000000000000..72798b69fe4c
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListReleasesResponse.php
@@ -0,0 +1,139 @@
+google.cloud.deploy.v1.ListReleasesResponse
+ */
+class ListReleasesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The `Release` objects.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.Release releases = 1;
+ */
+ private $releases;
+ /**
+ * A token, which 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\Deploy\V1\Release>|\Google\Protobuf\Internal\RepeatedField $releases
+ * The `Release` objects.
+ * @type string $next_page_token
+ * A token, which 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\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The `Release` objects.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.Release releases = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getReleases()
+ {
+ return $this->releases;
+ }
+
+ /**
+ * The `Release` objects.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.Release releases = 1;
+ * @param array<\Google\Cloud\Deploy\V1\Release>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setReleases($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Deploy\V1\Release::class);
+ $this->releases = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token, which 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, which 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/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListRolloutsRequest.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListRolloutsRequest.php
new file mode 100644
index 000000000000..6209b04be8b5
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListRolloutsRequest.php
@@ -0,0 +1,249 @@
+google.cloud.deploy.v1.ListRolloutsRequest
+ */
+class ListRolloutsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The `Release` which owns this collection of `Rollout` objects.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. The maximum number of `Rollout` objects to return. The service
+ * may return fewer than this value. If unspecified, at most 50 `Rollout`
+ * objects will be returned. The maximum value is 1000; values above 1000 will
+ * be set to 1000.
+ *
+ * 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 `ListRollouts` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other provided parameters 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 rollouts to be returned. See https://google.aip.dev/160
+ * for more details.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+ /**
+ * Optional. Field to sort by. See https://google.aip.dev/132#ordering for
+ * more details.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $order_by = '';
+
+ /**
+ * @param string $parent Required. The `Release` which owns this collection of `Rollout` objects. Please see
+ * {@see CloudDeployClient::releaseName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Deploy\V1\ListRolloutsRequest
+ *
+ * @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 `Release` which owns this collection of `Rollout` objects.
+ * @type int $page_size
+ * Optional. The maximum number of `Rollout` objects to return. The service
+ * may return fewer than this value. If unspecified, at most 50 `Rollout`
+ * objects will be returned. The maximum value is 1000; values above 1000 will
+ * be set to 1000.
+ * @type string $page_token
+ * Optional. A page token, received from a previous `ListRollouts` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other provided parameters match
+ * the call that provided the page token.
+ * @type string $filter
+ * Optional. Filter rollouts to be returned. See https://google.aip.dev/160
+ * for more details.
+ * @type string $order_by
+ * Optional. Field to sort by. See https://google.aip.dev/132#ordering for
+ * more details.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The `Release` which owns this collection of `Rollout` objects.
+ *
+ * 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 `Release` which owns this collection of `Rollout` objects.
+ *
+ * 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 `Rollout` objects to return. The service
+ * may return fewer than this value. If unspecified, at most 50 `Rollout`
+ * objects will be returned. The maximum value is 1000; values above 1000 will
+ * be set to 1000.
+ *
+ * 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 `Rollout` objects to return. The service
+ * may return fewer than this value. If unspecified, at most 50 `Rollout`
+ * objects will be returned. The maximum value is 1000; values above 1000 will
+ * be set to 1000.
+ *
+ * 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 `ListRollouts` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other provided parameters 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 `ListRollouts` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other provided parameters 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 rollouts to be returned. See https://google.aip.dev/160
+ * for more details.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. Filter rollouts to be returned. See https://google.aip.dev/160
+ * for more details.
+ *
+ * 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. Field to sort by. See https://google.aip.dev/132#ordering for
+ * more details.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Optional. Field to sort by. See https://google.aip.dev/132#ordering for
+ * more details.
+ *
+ * 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/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListRolloutsResponse.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListRolloutsResponse.php
new file mode 100644
index 000000000000..fc25e3092666
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListRolloutsResponse.php
@@ -0,0 +1,139 @@
+google.cloud.deploy.v1.ListRolloutsResponse
+ */
+class ListRolloutsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The `Rollout` objects.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.Rollout rollouts = 1;
+ */
+ private $rollouts;
+ /**
+ * A token, which 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\Deploy\V1\Rollout>|\Google\Protobuf\Internal\RepeatedField $rollouts
+ * The `Rollout` objects.
+ * @type string $next_page_token
+ * A token, which 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\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The `Rollout` objects.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.Rollout rollouts = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRollouts()
+ {
+ return $this->rollouts;
+ }
+
+ /**
+ * The `Rollout` objects.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.Rollout rollouts = 1;
+ * @param array<\Google\Cloud\Deploy\V1\Rollout>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRollouts($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Deploy\V1\Rollout::class);
+ $this->rollouts = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token, which 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, which 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/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListTargetsRequest.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListTargetsRequest.php
new file mode 100644
index 000000000000..1f2724d162a1
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListTargetsRequest.php
@@ -0,0 +1,254 @@
+google.cloud.deploy.v1.ListTargetsRequest
+ */
+class ListTargetsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The parent, which owns this collection of targets. Format must be
+ * projects/{project_id}/locations/{location_name}.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. The maximum number of `Target` objects to return. The service may
+ * return fewer than this value. If unspecified, at most 50 `Target` objects
+ * will be returned. The maximum value is 1000; values above 1000 will be set
+ * to 1000.
+ *
+ * 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 `ListTargets` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other provided parameters 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 targets to be returned. See https://google.aip.dev/160 for
+ * more details.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+ /**
+ * Optional. Field to sort by. See https://google.aip.dev/132#ordering for
+ * more details.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $order_by = '';
+
+ /**
+ * @param string $parent Required. The parent, which owns this collection of targets. Format must be
+ * projects/{project_id}/locations/{location_name}. Please see
+ * {@see CloudDeployClient::locationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Deploy\V1\ListTargetsRequest
+ *
+ * @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, which owns this collection of targets. Format must be
+ * projects/{project_id}/locations/{location_name}.
+ * @type int $page_size
+ * Optional. The maximum number of `Target` objects to return. The service may
+ * return fewer than this value. If unspecified, at most 50 `Target` objects
+ * will be returned. The maximum value is 1000; values above 1000 will be set
+ * to 1000.
+ * @type string $page_token
+ * Optional. A page token, received from a previous `ListTargets` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other provided parameters match
+ * the call that provided the page token.
+ * @type string $filter
+ * Optional. Filter targets to be returned. See https://google.aip.dev/160 for
+ * more details.
+ * @type string $order_by
+ * Optional. Field to sort by. See https://google.aip.dev/132#ordering for
+ * more details.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The parent, which owns this collection of targets. Format must be
+ * projects/{project_id}/locations/{location_name}.
+ *
+ * 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, which owns this collection of targets. Format must be
+ * projects/{project_id}/locations/{location_name}.
+ *
+ * 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 `Target` objects to return. The service may
+ * return fewer than this value. If unspecified, at most 50 `Target` objects
+ * will be returned. The maximum value is 1000; values above 1000 will be set
+ * to 1000.
+ *
+ * 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 `Target` objects to return. The service may
+ * return fewer than this value. If unspecified, at most 50 `Target` objects
+ * will be returned. The maximum value is 1000; values above 1000 will be set
+ * to 1000.
+ *
+ * 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 `ListTargets` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other provided parameters 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 `ListTargets` call.
+ * Provide this to retrieve the subsequent page.
+ * When paginating, all other provided parameters 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 targets to be returned. See https://google.aip.dev/160 for
+ * more details.
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. Filter targets to be returned. See https://google.aip.dev/160 for
+ * more details.
+ *
+ * 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. Field to sort by. See https://google.aip.dev/132#ordering for
+ * more details.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Optional. Field to sort by. See https://google.aip.dev/132#ordering for
+ * more details.
+ *
+ * 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/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListTargetsResponse.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListTargetsResponse.php
new file mode 100644
index 000000000000..4c648ae25fd5
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ListTargetsResponse.php
@@ -0,0 +1,139 @@
+google.cloud.deploy.v1.ListTargetsResponse
+ */
+class ListTargetsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The `Target` objects.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.Target targets = 1;
+ */
+ private $targets;
+ /**
+ * A token, which 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\Deploy\V1\Target>|\Google\Protobuf\Internal\RepeatedField $targets
+ * The `Target` objects.
+ * @type string $next_page_token
+ * A token, which 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\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The `Target` objects.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.Target targets = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTargets()
+ {
+ return $this->targets;
+ }
+
+ /**
+ * The `Target` objects.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.Target targets = 1;
+ * @param array<\Google\Cloud\Deploy\V1\Target>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTargets($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Deploy\V1\Target::class);
+ $this->targets = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token, which 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, which 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/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Metadata.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Metadata.php
new file mode 100644
index 000000000000..e396c0225e35
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Metadata.php
@@ -0,0 +1,81 @@
+google.cloud.deploy.v1.Metadata
+ */
+class Metadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The name of the Cloud Run Service that is associated with a
+ * `Rollout`.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.CloudRunMetadata cloud_run = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $cloud_run = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Deploy\V1\CloudRunMetadata $cloud_run
+ * Output only. The name of the Cloud Run Service that is associated with a
+ * `Rollout`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The name of the Cloud Run Service that is associated with a
+ * `Rollout`.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.CloudRunMetadata cloud_run = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Deploy\V1\CloudRunMetadata|null
+ */
+ public function getCloudRun()
+ {
+ return $this->cloud_run;
+ }
+
+ public function hasCloudRun()
+ {
+ return isset($this->cloud_run);
+ }
+
+ public function clearCloudRun()
+ {
+ unset($this->cloud_run);
+ }
+
+ /**
+ * Output only. The name of the Cloud Run Service that is associated with a
+ * `Rollout`.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.CloudRunMetadata cloud_run = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Deploy\V1\CloudRunMetadata $var
+ * @return $this
+ */
+ public function setCloudRun($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\CloudRunMetadata::class);
+ $this->cloud_run = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/MultiTarget.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/MultiTarget.php
new file mode 100644
index 000000000000..339eb1798208
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/MultiTarget.php
@@ -0,0 +1,67 @@
+google.cloud.deploy.v1.MultiTarget
+ */
+class MultiTarget extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The target_ids of this multiTarget.
+ *
+ * Generated from protobuf field repeated string target_ids = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $target_ids;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $target_ids
+ * Required. The target_ids of this multiTarget.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The target_ids of this multiTarget.
+ *
+ * Generated from protobuf field repeated string target_ids = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTargetIds()
+ {
+ return $this->target_ids;
+ }
+
+ /**
+ * Required. The target_ids of this multiTarget.
+ *
+ * Generated from protobuf field repeated string target_ids = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTargetIds($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->target_ids = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/OperationMetadata.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/OperationMetadata.php
new file mode 100644
index 000000000000..2565328b1fe3
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/OperationMetadata.php
@@ -0,0 +1,307 @@
+google.cloud.deploy.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 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 = 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 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\Deploy\V1\CloudDeploy::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 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 = 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 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 = 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/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Phase.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Phase.php
new file mode 100644
index 000000000000..d4eb8041827c
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Phase.php
@@ -0,0 +1,215 @@
+google.cloud.deploy.v1.Phase
+ */
+class Phase extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The ID of the Phase.
+ *
+ * Generated from protobuf field string id = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $id = '';
+ /**
+ * Output only. Current state of the Phase.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Phase.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. Additional information on why the Phase was skipped, if
+ * available.
+ *
+ * Generated from protobuf field string skip_message = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $skip_message = '';
+ protected $jobs;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $id
+ * Output only. The ID of the Phase.
+ * @type int $state
+ * Output only. Current state of the Phase.
+ * @type string $skip_message
+ * Output only. Additional information on why the Phase was skipped, if
+ * available.
+ * @type \Google\Cloud\Deploy\V1\DeploymentJobs $deployment_jobs
+ * Output only. Deployment job composition.
+ * @type \Google\Cloud\Deploy\V1\ChildRolloutJobs $child_rollout_jobs
+ * Output only. ChildRollout job composition.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The ID of the Phase.
+ *
+ * Generated from protobuf field string id = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getId()
+ {
+ return $this->id;
+ }
+
+ /**
+ * Output only. The ID of the Phase.
+ *
+ * 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;
+ }
+
+ /**
+ * Output only. Current state of the Phase.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Phase.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. Current state of the Phase.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Phase.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Deploy\V1\Phase\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Additional information on why the Phase was skipped, if
+ * available.
+ *
+ * Generated from protobuf field string skip_message = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getSkipMessage()
+ {
+ return $this->skip_message;
+ }
+
+ /**
+ * Output only. Additional information on why the Phase was skipped, if
+ * available.
+ *
+ * Generated from protobuf field string skip_message = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setSkipMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->skip_message = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Deployment job composition.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.DeploymentJobs deployment_jobs = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Deploy\V1\DeploymentJobs|null
+ */
+ public function getDeploymentJobs()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasDeploymentJobs()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * Output only. Deployment job composition.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.DeploymentJobs deployment_jobs = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Deploy\V1\DeploymentJobs $var
+ * @return $this
+ */
+ public function setDeploymentJobs($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\DeploymentJobs::class);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. ChildRollout job composition.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.ChildRolloutJobs child_rollout_jobs = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Deploy\V1\ChildRolloutJobs|null
+ */
+ public function getChildRolloutJobs()
+ {
+ return $this->readOneof(5);
+ }
+
+ public function hasChildRolloutJobs()
+ {
+ return $this->hasOneof(5);
+ }
+
+ /**
+ * Output only. ChildRollout job composition.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.ChildRolloutJobs child_rollout_jobs = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Deploy\V1\ChildRolloutJobs $var
+ * @return $this
+ */
+ public function setChildRolloutJobs($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\ChildRolloutJobs::class);
+ $this->writeOneof(5, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getJobs()
+ {
+ return $this->whichOneof("jobs");
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Phase/State.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Phase/State.php
new file mode 100644
index 000000000000..0685882739b8
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Phase/State.php
@@ -0,0 +1,92 @@
+google.cloud.deploy.v1.Phase.State
+ */
+class State
+{
+ /**
+ * The Phase has an unspecified state.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The Phase is waiting for an earlier Phase(s) to complete.
+ *
+ * Generated from protobuf enum PENDING = 1;
+ */
+ const PENDING = 1;
+ /**
+ * The Phase is in progress.
+ *
+ * Generated from protobuf enum IN_PROGRESS = 2;
+ */
+ const IN_PROGRESS = 2;
+ /**
+ * The Phase has succeeded.
+ *
+ * Generated from protobuf enum SUCCEEDED = 3;
+ */
+ const SUCCEEDED = 3;
+ /**
+ * The Phase has failed.
+ *
+ * Generated from protobuf enum FAILED = 4;
+ */
+ const FAILED = 4;
+ /**
+ * The Phase was aborted.
+ *
+ * Generated from protobuf enum ABORTED = 5;
+ */
+ const ABORTED = 5;
+ /**
+ * The Phase was skipped.
+ *
+ * Generated from protobuf enum SKIPPED = 6;
+ */
+ const SKIPPED = 6;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::PENDING => 'PENDING',
+ self::IN_PROGRESS => 'IN_PROGRESS',
+ self::SUCCEEDED => 'SUCCEEDED',
+ self::FAILED => 'FAILED',
+ self::ABORTED => 'ABORTED',
+ self::SKIPPED => 'SKIPPED',
+ ];
+
+ 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\Deploy\V1\Phase_State::class);
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Phase_State.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Phase_State.php
new file mode 100644
index 000000000000..3eb783441d76
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Phase_State.php
@@ -0,0 +1,16 @@
+google.cloud.deploy.v1.PipelineCondition
+ */
+class PipelineCondition extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Details around the Pipeline's overall status.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.PipelineReadyCondition pipeline_ready_condition = 1;
+ */
+ protected $pipeline_ready_condition = null;
+ /**
+ * Details around targets enumerated in the pipeline.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.TargetsPresentCondition targets_present_condition = 3;
+ */
+ protected $targets_present_condition = null;
+ /**
+ * Details on the whether the targets enumerated in the pipeline are of the
+ * same type.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.TargetsTypeCondition targets_type_condition = 4;
+ */
+ protected $targets_type_condition = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Deploy\V1\PipelineReadyCondition $pipeline_ready_condition
+ * Details around the Pipeline's overall status.
+ * @type \Google\Cloud\Deploy\V1\TargetsPresentCondition $targets_present_condition
+ * Details around targets enumerated in the pipeline.
+ * @type \Google\Cloud\Deploy\V1\TargetsTypeCondition $targets_type_condition
+ * Details on the whether the targets enumerated in the pipeline are of the
+ * same type.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Details around the Pipeline's overall status.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.PipelineReadyCondition pipeline_ready_condition = 1;
+ * @return \Google\Cloud\Deploy\V1\PipelineReadyCondition|null
+ */
+ public function getPipelineReadyCondition()
+ {
+ return $this->pipeline_ready_condition;
+ }
+
+ public function hasPipelineReadyCondition()
+ {
+ return isset($this->pipeline_ready_condition);
+ }
+
+ public function clearPipelineReadyCondition()
+ {
+ unset($this->pipeline_ready_condition);
+ }
+
+ /**
+ * Details around the Pipeline's overall status.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.PipelineReadyCondition pipeline_ready_condition = 1;
+ * @param \Google\Cloud\Deploy\V1\PipelineReadyCondition $var
+ * @return $this
+ */
+ public function setPipelineReadyCondition($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\PipelineReadyCondition::class);
+ $this->pipeline_ready_condition = $var;
+
+ return $this;
+ }
+
+ /**
+ * Details around targets enumerated in the pipeline.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.TargetsPresentCondition targets_present_condition = 3;
+ * @return \Google\Cloud\Deploy\V1\TargetsPresentCondition|null
+ */
+ public function getTargetsPresentCondition()
+ {
+ return $this->targets_present_condition;
+ }
+
+ public function hasTargetsPresentCondition()
+ {
+ return isset($this->targets_present_condition);
+ }
+
+ public function clearTargetsPresentCondition()
+ {
+ unset($this->targets_present_condition);
+ }
+
+ /**
+ * Details around targets enumerated in the pipeline.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.TargetsPresentCondition targets_present_condition = 3;
+ * @param \Google\Cloud\Deploy\V1\TargetsPresentCondition $var
+ * @return $this
+ */
+ public function setTargetsPresentCondition($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\TargetsPresentCondition::class);
+ $this->targets_present_condition = $var;
+
+ return $this;
+ }
+
+ /**
+ * Details on the whether the targets enumerated in the pipeline are of the
+ * same type.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.TargetsTypeCondition targets_type_condition = 4;
+ * @return \Google\Cloud\Deploy\V1\TargetsTypeCondition|null
+ */
+ public function getTargetsTypeCondition()
+ {
+ return $this->targets_type_condition;
+ }
+
+ public function hasTargetsTypeCondition()
+ {
+ return isset($this->targets_type_condition);
+ }
+
+ public function clearTargetsTypeCondition()
+ {
+ unset($this->targets_type_condition);
+ }
+
+ /**
+ * Details on the whether the targets enumerated in the pipeline are of the
+ * same type.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.TargetsTypeCondition targets_type_condition = 4;
+ * @param \Google\Cloud\Deploy\V1\TargetsTypeCondition $var
+ * @return $this
+ */
+ public function setTargetsTypeCondition($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\TargetsTypeCondition::class);
+ $this->targets_type_condition = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/PipelineReadyCondition.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/PipelineReadyCondition.php
new file mode 100644
index 000000000000..5ed4775bcce0
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/PipelineReadyCondition.php
@@ -0,0 +1,124 @@
+google.cloud.deploy.v1.PipelineReadyCondition
+ */
+class PipelineReadyCondition extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * True if the Pipeline is in a valid state. Otherwise at least one condition
+ * in `PipelineCondition` is in an invalid state. Iterate over those
+ * conditions and see which condition(s) has status = false to find out what
+ * is wrong with the Pipeline.
+ *
+ * Generated from protobuf field bool status = 3;
+ */
+ protected $status = false;
+ /**
+ * Last time the condition was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 4;
+ */
+ protected $update_time = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $status
+ * True if the Pipeline is in a valid state. Otherwise at least one condition
+ * in `PipelineCondition` is in an invalid state. Iterate over those
+ * conditions and see which condition(s) has status = false to find out what
+ * is wrong with the Pipeline.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Last time the condition was updated.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * True if the Pipeline is in a valid state. Otherwise at least one condition
+ * in `PipelineCondition` is in an invalid state. Iterate over those
+ * conditions and see which condition(s) has status = false to find out what
+ * is wrong with the Pipeline.
+ *
+ * Generated from protobuf field bool status = 3;
+ * @return bool
+ */
+ public function getStatus()
+ {
+ return $this->status;
+ }
+
+ /**
+ * True if the Pipeline is in a valid state. Otherwise at least one condition
+ * in `PipelineCondition` is in an invalid state. Iterate over those
+ * conditions and see which condition(s) has status = false to find out what
+ * is wrong with the Pipeline.
+ *
+ * Generated from protobuf field bool status = 3;
+ * @param bool $var
+ * @return $this
+ */
+ public function setStatus($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->status = $var;
+
+ return $this;
+ }
+
+ /**
+ * Last time the condition was updated.
+ *
+ * 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);
+ }
+
+ /**
+ * Last time the condition was updated.
+ *
+ * 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;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/PrivatePool.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/PrivatePool.php
new file mode 100644
index 000000000000..b7a8ae63ba44
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/PrivatePool.php
@@ -0,0 +1,159 @@
+google.cloud.deploy.v1.PrivatePool
+ */
+class PrivatePool extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name of the Cloud Build worker pool to use. The format
+ * is `projects/{project}/locations/{location}/workerPools/{pool}`.
+ *
+ * Generated from protobuf field string worker_pool = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $worker_pool = '';
+ /**
+ * Optional. Google service account to use for execution. If unspecified,
+ * the project execution service account
+ * (-compute@developer.gserviceaccount.com) will be used.
+ *
+ * Generated from protobuf field string service_account = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $service_account = '';
+ /**
+ * Optional. Cloud Storage location where execution outputs should be stored.
+ * This can either be a bucket ("gs://my-bucket") or a path within a bucket
+ * ("gs://my-bucket/my-dir").
+ * If unspecified, a default bucket located in the same region will be used.
+ *
+ * Generated from protobuf field string artifact_storage = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $artifact_storage = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $worker_pool
+ * Required. Resource name of the Cloud Build worker pool to use. The format
+ * is `projects/{project}/locations/{location}/workerPools/{pool}`.
+ * @type string $service_account
+ * Optional. Google service account to use for execution. If unspecified,
+ * the project execution service account
+ * (-compute@developer.gserviceaccount.com) will be used.
+ * @type string $artifact_storage
+ * Optional. Cloud Storage location where execution outputs should be stored.
+ * This can either be a bucket ("gs://my-bucket") or a path within a bucket
+ * ("gs://my-bucket/my-dir").
+ * If unspecified, a default bucket located in the same region will be used.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name of the Cloud Build worker pool to use. The format
+ * is `projects/{project}/locations/{location}/workerPools/{pool}`.
+ *
+ * Generated from protobuf field string worker_pool = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getWorkerPool()
+ {
+ return $this->worker_pool;
+ }
+
+ /**
+ * Required. Resource name of the Cloud Build worker pool to use. The format
+ * is `projects/{project}/locations/{location}/workerPools/{pool}`.
+ *
+ * Generated from protobuf field string worker_pool = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setWorkerPool($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->worker_pool = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Google service account to use for execution. If unspecified,
+ * the project execution service account
+ * (-compute@developer.gserviceaccount.com) will be used.
+ *
+ * Generated from protobuf field string service_account = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getServiceAccount()
+ {
+ return $this->service_account;
+ }
+
+ /**
+ * Optional. Google service account to use for execution. If unspecified,
+ * the project execution service account
+ * (-compute@developer.gserviceaccount.com) will be used.
+ *
+ * Generated from protobuf field string service_account = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setServiceAccount($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service_account = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Cloud Storage location where execution outputs should be stored.
+ * This can either be a bucket ("gs://my-bucket") or a path within a bucket
+ * ("gs://my-bucket/my-dir").
+ * If unspecified, a default bucket located in the same region will be used.
+ *
+ * Generated from protobuf field string artifact_storage = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getArtifactStorage()
+ {
+ return $this->artifact_storage;
+ }
+
+ /**
+ * Optional. Cloud Storage location where execution outputs should be stored.
+ * This can either be a bucket ("gs://my-bucket") or a path within a bucket
+ * ("gs://my-bucket/my-dir").
+ * If unspecified, a default bucket located in the same region will be used.
+ *
+ * Generated from protobuf field string artifact_storage = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setArtifactStorage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->artifact_storage = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release.php
new file mode 100644
index 000000000000..dee979a9229d
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release.php
@@ -0,0 +1,853 @@
+google.cloud.deploy.v1.Release
+ */
+class Release extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. Name of the `Release`. Format is projects/{project}/
+ * locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/[a-z][a-z0-9\-]{0,62}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $name = '';
+ /**
+ * Output only. Unique identifier of the `Release`.
+ *
+ * Generated from protobuf field string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $uid = '';
+ /**
+ * Description of the `Release`. Max length is 255 characters.
+ *
+ * Generated from protobuf field string description = 3;
+ */
+ protected $description = '';
+ /**
+ * User annotations. These attributes can only be set and used by the
+ * user, and not by Google Cloud Deploy. See
+ * https://google.aip.dev/128#annotations for more details such as format and
+ * size limitations.
+ *
+ * Generated from protobuf field map annotations = 4;
+ */
+ private $annotations;
+ /**
+ * Labels are attributes that can be set and used by both the
+ * user and by Google Cloud Deploy. Labels must meet the following
+ * constraints:
+ * * Keys and values can contain only lowercase letters, numeric characters,
+ * underscores, and dashes.
+ * * All characters must use UTF-8 encoding, and international characters are
+ * allowed.
+ * * Keys must start with a lowercase letter or international character.
+ * * Each resource is limited to a maximum of 64 labels.
+ * Both keys and values are additionally constrained to be <= 128 bytes.
+ *
+ * Generated from protobuf field map labels = 5;
+ */
+ private $labels;
+ /**
+ * Output only. Indicates whether this is an abandoned release.
+ *
+ * Generated from protobuf field bool abandoned = 23 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $abandoned = false;
+ /**
+ * Output only. Time at which the `Release` was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. Time at which the render began.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp render_start_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $render_start_time = null;
+ /**
+ * Output only. Time at which the render completed.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp render_end_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $render_end_time = null;
+ /**
+ * Cloud Storage URI of tar.gz archive containing Skaffold configuration.
+ *
+ * Generated from protobuf field string skaffold_config_uri = 17;
+ */
+ protected $skaffold_config_uri = '';
+ /**
+ * Filepath of the Skaffold config inside of the config URI.
+ *
+ * Generated from protobuf field string skaffold_config_path = 9;
+ */
+ protected $skaffold_config_path = '';
+ /**
+ * List of artifacts to pass through to Skaffold command.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.BuildArtifact build_artifacts = 10;
+ */
+ private $build_artifacts;
+ /**
+ * Output only. Snapshot of the parent pipeline taken at release creation
+ * time.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.DeliveryPipeline delivery_pipeline_snapshot = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $delivery_pipeline_snapshot = null;
+ /**
+ * Output only. Snapshot of the targets taken at release creation time.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.Target target_snapshots = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $target_snapshots;
+ /**
+ * Output only. Current state of the render operation.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Release.RenderState render_state = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $render_state = 0;
+ /**
+ * This checksum is computed by the server based on the value of other
+ * fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 16;
+ */
+ protected $etag = '';
+ /**
+ * The Skaffold version to use when operating on this release, such as
+ * "1.20.0". Not all versions are valid; Google Cloud Deploy supports a
+ * specific set of versions.
+ * If unset, the most recent supported Skaffold version will be used.
+ *
+ * Generated from protobuf field string skaffold_version = 19;
+ */
+ protected $skaffold_version = '';
+ /**
+ * Output only. Map from target ID to the target artifacts created
+ * during the render operation.
+ *
+ * Generated from protobuf field map target_artifacts = 20 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $target_artifacts;
+ /**
+ * Output only. Map from target ID to details of the render operation for that
+ * target.
+ *
+ * Generated from protobuf field map target_renders = 22 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $target_renders;
+ /**
+ * Output only. Information around the state of the Release.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Release.ReleaseCondition condition = 24 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $condition = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Optional. Name of the `Release`. Format is projects/{project}/
+ * locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/[a-z][a-z0-9\-]{0,62}.
+ * @type string $uid
+ * Output only. Unique identifier of the `Release`.
+ * @type string $description
+ * Description of the `Release`. Max length is 255 characters.
+ * @type array|\Google\Protobuf\Internal\MapField $annotations
+ * User annotations. These attributes can only be set and used by the
+ * user, and not by Google Cloud Deploy. See
+ * https://google.aip.dev/128#annotations for more details such as format and
+ * size limitations.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * Labels are attributes that can be set and used by both the
+ * user and by Google Cloud Deploy. Labels must meet the following
+ * constraints:
+ * * Keys and values can contain only lowercase letters, numeric characters,
+ * underscores, and dashes.
+ * * All characters must use UTF-8 encoding, and international characters are
+ * allowed.
+ * * Keys must start with a lowercase letter or international character.
+ * * Each resource is limited to a maximum of 64 labels.
+ * Both keys and values are additionally constrained to be <= 128 bytes.
+ * @type bool $abandoned
+ * Output only. Indicates whether this is an abandoned release.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. Time at which the `Release` was created.
+ * @type \Google\Protobuf\Timestamp $render_start_time
+ * Output only. Time at which the render began.
+ * @type \Google\Protobuf\Timestamp $render_end_time
+ * Output only. Time at which the render completed.
+ * @type string $skaffold_config_uri
+ * Cloud Storage URI of tar.gz archive containing Skaffold configuration.
+ * @type string $skaffold_config_path
+ * Filepath of the Skaffold config inside of the config URI.
+ * @type array<\Google\Cloud\Deploy\V1\BuildArtifact>|\Google\Protobuf\Internal\RepeatedField $build_artifacts
+ * List of artifacts to pass through to Skaffold command.
+ * @type \Google\Cloud\Deploy\V1\DeliveryPipeline $delivery_pipeline_snapshot
+ * Output only. Snapshot of the parent pipeline taken at release creation
+ * time.
+ * @type array<\Google\Cloud\Deploy\V1\Target>|\Google\Protobuf\Internal\RepeatedField $target_snapshots
+ * Output only. Snapshot of the targets taken at release creation time.
+ * @type int $render_state
+ * Output only. Current state of the render operation.
+ * @type string $etag
+ * This checksum is computed by the server based on the value of other
+ * fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ * @type string $skaffold_version
+ * The Skaffold version to use when operating on this release, such as
+ * "1.20.0". Not all versions are valid; Google Cloud Deploy supports a
+ * specific set of versions.
+ * If unset, the most recent supported Skaffold version will be used.
+ * @type array|\Google\Protobuf\Internal\MapField $target_artifacts
+ * Output only. Map from target ID to the target artifacts created
+ * during the render operation.
+ * @type array|\Google\Protobuf\Internal\MapField $target_renders
+ * Output only. Map from target ID to details of the render operation for that
+ * target.
+ * @type \Google\Cloud\Deploy\V1\Release\ReleaseCondition $condition
+ * Output only. Information around the state of the Release.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. Name of the `Release`. Format is projects/{project}/
+ * locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/[a-z][a-z0-9\-]{0,62}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Optional. Name of the `Release`. Format is projects/{project}/
+ * locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/[a-z][a-z0-9\-]{0,62}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Unique identifier of the `Release`.
+ *
+ * Generated from protobuf field string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getUid()
+ {
+ return $this->uid;
+ }
+
+ /**
+ * Output only. Unique identifier of the `Release`.
+ *
+ * Generated from protobuf field string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setUid($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uid = $var;
+
+ return $this;
+ }
+
+ /**
+ * Description of the `Release`. Max length is 255 characters.
+ *
+ * Generated from protobuf field string description = 3;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Description of the `Release`. Max length is 255 characters.
+ *
+ * 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;
+ }
+
+ /**
+ * User annotations. These attributes can only be set and used by the
+ * user, and not by Google Cloud Deploy. See
+ * https://google.aip.dev/128#annotations for more details such as format and
+ * size limitations.
+ *
+ * Generated from protobuf field map annotations = 4;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getAnnotations()
+ {
+ return $this->annotations;
+ }
+
+ /**
+ * User annotations. These attributes can only be set and used by the
+ * user, and not by Google Cloud Deploy. See
+ * https://google.aip.dev/128#annotations for more details such as format and
+ * size limitations.
+ *
+ * Generated from protobuf field map annotations = 4;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setAnnotations($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->annotations = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Labels are attributes that can be set and used by both the
+ * user and by Google Cloud Deploy. Labels must meet the following
+ * constraints:
+ * * Keys and values can contain only lowercase letters, numeric characters,
+ * underscores, and dashes.
+ * * All characters must use UTF-8 encoding, and international characters are
+ * allowed.
+ * * Keys must start with a lowercase letter or international character.
+ * * Each resource is limited to a maximum of 64 labels.
+ * Both keys and values are additionally constrained to be <= 128 bytes.
+ *
+ * Generated from protobuf field map labels = 5;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * Labels are attributes that can be set and used by both the
+ * user and by Google Cloud Deploy. Labels must meet the following
+ * constraints:
+ * * Keys and values can contain only lowercase letters, numeric characters,
+ * underscores, and dashes.
+ * * All characters must use UTF-8 encoding, and international characters are
+ * allowed.
+ * * Keys must start with a lowercase letter or international character.
+ * * Each resource is limited to a maximum of 64 labels.
+ * Both keys and values are additionally constrained to be <= 128 bytes.
+ *
+ * Generated from protobuf field map labels = 5;
+ * @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;
+ }
+
+ /**
+ * Output only. Indicates whether this is an abandoned release.
+ *
+ * Generated from protobuf field bool abandoned = 23 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return bool
+ */
+ public function getAbandoned()
+ {
+ return $this->abandoned;
+ }
+
+ /**
+ * Output only. Indicates whether this is an abandoned release.
+ *
+ * Generated from protobuf field bool abandoned = 23 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param bool $var
+ * @return $this
+ */
+ public function setAbandoned($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->abandoned = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Time at which the `Release` was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.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 at which the `Release` was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.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 at which the render began.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp render_start_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getRenderStartTime()
+ {
+ return $this->render_start_time;
+ }
+
+ public function hasRenderStartTime()
+ {
+ return isset($this->render_start_time);
+ }
+
+ public function clearRenderStartTime()
+ {
+ unset($this->render_start_time);
+ }
+
+ /**
+ * Output only. Time at which the render began.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp render_start_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setRenderStartTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->render_start_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Time at which the render completed.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp render_end_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getRenderEndTime()
+ {
+ return $this->render_end_time;
+ }
+
+ public function hasRenderEndTime()
+ {
+ return isset($this->render_end_time);
+ }
+
+ public function clearRenderEndTime()
+ {
+ unset($this->render_end_time);
+ }
+
+ /**
+ * Output only. Time at which the render completed.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp render_end_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setRenderEndTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->render_end_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Cloud Storage URI of tar.gz archive containing Skaffold configuration.
+ *
+ * Generated from protobuf field string skaffold_config_uri = 17;
+ * @return string
+ */
+ public function getSkaffoldConfigUri()
+ {
+ return $this->skaffold_config_uri;
+ }
+
+ /**
+ * Cloud Storage URI of tar.gz archive containing Skaffold configuration.
+ *
+ * Generated from protobuf field string skaffold_config_uri = 17;
+ * @param string $var
+ * @return $this
+ */
+ public function setSkaffoldConfigUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->skaffold_config_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * Filepath of the Skaffold config inside of the config URI.
+ *
+ * Generated from protobuf field string skaffold_config_path = 9;
+ * @return string
+ */
+ public function getSkaffoldConfigPath()
+ {
+ return $this->skaffold_config_path;
+ }
+
+ /**
+ * Filepath of the Skaffold config inside of the config URI.
+ *
+ * Generated from protobuf field string skaffold_config_path = 9;
+ * @param string $var
+ * @return $this
+ */
+ public function setSkaffoldConfigPath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->skaffold_config_path = $var;
+
+ return $this;
+ }
+
+ /**
+ * List of artifacts to pass through to Skaffold command.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.BuildArtifact build_artifacts = 10;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getBuildArtifacts()
+ {
+ return $this->build_artifacts;
+ }
+
+ /**
+ * List of artifacts to pass through to Skaffold command.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.BuildArtifact build_artifacts = 10;
+ * @param array<\Google\Cloud\Deploy\V1\BuildArtifact>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setBuildArtifacts($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Deploy\V1\BuildArtifact::class);
+ $this->build_artifacts = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Snapshot of the parent pipeline taken at release creation
+ * time.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.DeliveryPipeline delivery_pipeline_snapshot = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Deploy\V1\DeliveryPipeline|null
+ */
+ public function getDeliveryPipelineSnapshot()
+ {
+ return $this->delivery_pipeline_snapshot;
+ }
+
+ public function hasDeliveryPipelineSnapshot()
+ {
+ return isset($this->delivery_pipeline_snapshot);
+ }
+
+ public function clearDeliveryPipelineSnapshot()
+ {
+ unset($this->delivery_pipeline_snapshot);
+ }
+
+ /**
+ * Output only. Snapshot of the parent pipeline taken at release creation
+ * time.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.DeliveryPipeline delivery_pipeline_snapshot = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Deploy\V1\DeliveryPipeline $var
+ * @return $this
+ */
+ public function setDeliveryPipelineSnapshot($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\DeliveryPipeline::class);
+ $this->delivery_pipeline_snapshot = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Snapshot of the targets taken at release creation time.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.Target target_snapshots = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTargetSnapshots()
+ {
+ return $this->target_snapshots;
+ }
+
+ /**
+ * Output only. Snapshot of the targets taken at release creation time.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.Target target_snapshots = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array<\Google\Cloud\Deploy\V1\Target>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTargetSnapshots($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Deploy\V1\Target::class);
+ $this->target_snapshots = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Current state of the render operation.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Release.RenderState render_state = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getRenderState()
+ {
+ return $this->render_state;
+ }
+
+ /**
+ * Output only. Current state of the render operation.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Release.RenderState render_state = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setRenderState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Deploy\V1\Release\RenderState::class);
+ $this->render_state = $var;
+
+ return $this;
+ }
+
+ /**
+ * This checksum is computed by the server based on the value of other
+ * fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 16;
+ * @return string
+ */
+ public function getEtag()
+ {
+ return $this->etag;
+ }
+
+ /**
+ * This checksum is computed by the server based on the value of other
+ * fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 16;
+ * @param string $var
+ * @return $this
+ */
+ public function setEtag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->etag = $var;
+
+ return $this;
+ }
+
+ /**
+ * The Skaffold version to use when operating on this release, such as
+ * "1.20.0". Not all versions are valid; Google Cloud Deploy supports a
+ * specific set of versions.
+ * If unset, the most recent supported Skaffold version will be used.
+ *
+ * Generated from protobuf field string skaffold_version = 19;
+ * @return string
+ */
+ public function getSkaffoldVersion()
+ {
+ return $this->skaffold_version;
+ }
+
+ /**
+ * The Skaffold version to use when operating on this release, such as
+ * "1.20.0". Not all versions are valid; Google Cloud Deploy supports a
+ * specific set of versions.
+ * If unset, the most recent supported Skaffold version will be used.
+ *
+ * Generated from protobuf field string skaffold_version = 19;
+ * @param string $var
+ * @return $this
+ */
+ public function setSkaffoldVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->skaffold_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Map from target ID to the target artifacts created
+ * during the render operation.
+ *
+ * Generated from protobuf field map target_artifacts = 20 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getTargetArtifacts()
+ {
+ return $this->target_artifacts;
+ }
+
+ /**
+ * Output only. Map from target ID to the target artifacts created
+ * during the render operation.
+ *
+ * Generated from protobuf field map target_artifacts = 20 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setTargetArtifacts($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Deploy\V1\TargetArtifact::class);
+ $this->target_artifacts = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Map from target ID to details of the render operation for that
+ * target.
+ *
+ * Generated from protobuf field map target_renders = 22 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getTargetRenders()
+ {
+ return $this->target_renders;
+ }
+
+ /**
+ * Output only. Map from target ID to details of the render operation for that
+ * target.
+ *
+ * Generated from protobuf field map target_renders = 22 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setTargetRenders($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Deploy\V1\Release\TargetRender::class);
+ $this->target_renders = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Information around the state of the Release.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Release.ReleaseCondition condition = 24 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Deploy\V1\Release\ReleaseCondition|null
+ */
+ public function getCondition()
+ {
+ return $this->condition;
+ }
+
+ public function hasCondition()
+ {
+ return isset($this->condition);
+ }
+
+ public function clearCondition()
+ {
+ unset($this->condition);
+ }
+
+ /**
+ * Output only. Information around the state of the Release.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Release.ReleaseCondition condition = 24 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Deploy\V1\Release\ReleaseCondition $var
+ * @return $this
+ */
+ public function setCondition($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\Release\ReleaseCondition::class);
+ $this->condition = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release/ReleaseCondition.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release/ReleaseCondition.php
new file mode 100644
index 000000000000..3a52391afa45
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release/ReleaseCondition.php
@@ -0,0 +1,128 @@
+google.cloud.deploy.v1.Release.ReleaseCondition
+ */
+class ReleaseCondition extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Details around the Releases's overall status.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Release.ReleaseReadyCondition release_ready_condition = 1;
+ */
+ protected $release_ready_condition = null;
+ /**
+ * Details around the support state of the release's skaffold
+ * version.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Release.SkaffoldSupportedCondition skaffold_supported_condition = 2;
+ */
+ protected $skaffold_supported_condition = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Deploy\V1\Release\ReleaseReadyCondition $release_ready_condition
+ * Details around the Releases's overall status.
+ * @type \Google\Cloud\Deploy\V1\Release\SkaffoldSupportedCondition $skaffold_supported_condition
+ * Details around the support state of the release's skaffold
+ * version.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Details around the Releases's overall status.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Release.ReleaseReadyCondition release_ready_condition = 1;
+ * @return \Google\Cloud\Deploy\V1\Release\ReleaseReadyCondition|null
+ */
+ public function getReleaseReadyCondition()
+ {
+ return $this->release_ready_condition;
+ }
+
+ public function hasReleaseReadyCondition()
+ {
+ return isset($this->release_ready_condition);
+ }
+
+ public function clearReleaseReadyCondition()
+ {
+ unset($this->release_ready_condition);
+ }
+
+ /**
+ * Details around the Releases's overall status.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Release.ReleaseReadyCondition release_ready_condition = 1;
+ * @param \Google\Cloud\Deploy\V1\Release\ReleaseReadyCondition $var
+ * @return $this
+ */
+ public function setReleaseReadyCondition($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\Release\ReleaseReadyCondition::class);
+ $this->release_ready_condition = $var;
+
+ return $this;
+ }
+
+ /**
+ * Details around the support state of the release's skaffold
+ * version.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Release.SkaffoldSupportedCondition skaffold_supported_condition = 2;
+ * @return \Google\Cloud\Deploy\V1\Release\SkaffoldSupportedCondition|null
+ */
+ public function getSkaffoldSupportedCondition()
+ {
+ return $this->skaffold_supported_condition;
+ }
+
+ public function hasSkaffoldSupportedCondition()
+ {
+ return isset($this->skaffold_supported_condition);
+ }
+
+ public function clearSkaffoldSupportedCondition()
+ {
+ unset($this->skaffold_supported_condition);
+ }
+
+ /**
+ * Details around the support state of the release's skaffold
+ * version.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Release.SkaffoldSupportedCondition skaffold_supported_condition = 2;
+ * @param \Google\Cloud\Deploy\V1\Release\SkaffoldSupportedCondition $var
+ * @return $this
+ */
+ public function setSkaffoldSupportedCondition($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\Release\SkaffoldSupportedCondition::class);
+ $this->skaffold_supported_condition = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(ReleaseCondition::class, \Google\Cloud\Deploy\V1\Release_ReleaseCondition::class);
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release/ReleaseReadyCondition.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release/ReleaseReadyCondition.php
new file mode 100644
index 000000000000..067f272f1658
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release/ReleaseReadyCondition.php
@@ -0,0 +1,84 @@
+google.cloud.deploy.v1.Release.ReleaseReadyCondition
+ */
+class ReleaseReadyCondition extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * True if the Release is in a valid state. Otherwise at least one condition
+ * in `ReleaseCondition` is in an invalid state. Iterate over those
+ * conditions and see which condition(s) has status = false to find out what
+ * is wrong with the Release.
+ *
+ * Generated from protobuf field bool status = 1;
+ */
+ protected $status = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $status
+ * True if the Release is in a valid state. Otherwise at least one condition
+ * in `ReleaseCondition` is in an invalid state. Iterate over those
+ * conditions and see which condition(s) has status = false to find out what
+ * is wrong with the Release.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * True if the Release is in a valid state. Otherwise at least one condition
+ * in `ReleaseCondition` is in an invalid state. Iterate over those
+ * conditions and see which condition(s) has status = false to find out what
+ * is wrong with the Release.
+ *
+ * Generated from protobuf field bool status = 1;
+ * @return bool
+ */
+ public function getStatus()
+ {
+ return $this->status;
+ }
+
+ /**
+ * True if the Release is in a valid state. Otherwise at least one condition
+ * in `ReleaseCondition` is in an invalid state. Iterate over those
+ * conditions and see which condition(s) has status = false to find out what
+ * is wrong with the Release.
+ *
+ * Generated from protobuf field bool status = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setStatus($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->status = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(ReleaseReadyCondition::class, \Google\Cloud\Deploy\V1\Release_ReleaseReadyCondition::class);
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release/RenderState.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release/RenderState.php
new file mode 100644
index 000000000000..37282c517e76
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release/RenderState.php
@@ -0,0 +1,71 @@
+google.cloud.deploy.v1.Release.RenderState
+ */
+class RenderState
+{
+ /**
+ * The render state is unspecified.
+ *
+ * Generated from protobuf enum RENDER_STATE_UNSPECIFIED = 0;
+ */
+ const RENDER_STATE_UNSPECIFIED = 0;
+ /**
+ * All rendering operations have completed successfully.
+ *
+ * Generated from protobuf enum SUCCEEDED = 1;
+ */
+ const SUCCEEDED = 1;
+ /**
+ * All rendering operations have completed, and one or more have failed.
+ *
+ * Generated from protobuf enum FAILED = 2;
+ */
+ const FAILED = 2;
+ /**
+ * Rendering has started and is not complete.
+ *
+ * Generated from protobuf enum IN_PROGRESS = 3;
+ */
+ const IN_PROGRESS = 3;
+
+ private static $valueToName = [
+ self::RENDER_STATE_UNSPECIFIED => 'RENDER_STATE_UNSPECIFIED',
+ self::SUCCEEDED => 'SUCCEEDED',
+ self::FAILED => 'FAILED',
+ self::IN_PROGRESS => 'IN_PROGRESS',
+ ];
+
+ 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(RenderState::class, \Google\Cloud\Deploy\V1\Release_RenderState::class);
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release/SkaffoldSupportedCondition.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release/SkaffoldSupportedCondition.php
new file mode 100644
index 000000000000..bd1a0c9bdaf7
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release/SkaffoldSupportedCondition.php
@@ -0,0 +1,201 @@
+google.cloud.deploy.v1.Release.SkaffoldSupportedCondition
+ */
+class SkaffoldSupportedCondition extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * True if the version of skaffold used by this release is supported.
+ *
+ * Generated from protobuf field bool status = 1;
+ */
+ protected $status = false;
+ /**
+ * The skaffold support state for this release's version of skaffold.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.SkaffoldSupportState skaffold_support_state = 2;
+ */
+ protected $skaffold_support_state = 0;
+ /**
+ * The time at which this release's version of skaffold will enter
+ * maintenance mode.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp maintenance_mode_time = 3;
+ */
+ protected $maintenance_mode_time = null;
+ /**
+ * The time at which this release's version of skaffold will no longer be
+ * supported.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp support_expiration_time = 4;
+ */
+ protected $support_expiration_time = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $status
+ * True if the version of skaffold used by this release is supported.
+ * @type int $skaffold_support_state
+ * The skaffold support state for this release's version of skaffold.
+ * @type \Google\Protobuf\Timestamp $maintenance_mode_time
+ * The time at which this release's version of skaffold will enter
+ * maintenance mode.
+ * @type \Google\Protobuf\Timestamp $support_expiration_time
+ * The time at which this release's version of skaffold will no longer be
+ * supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * True if the version of skaffold used by this release is supported.
+ *
+ * Generated from protobuf field bool status = 1;
+ * @return bool
+ */
+ public function getStatus()
+ {
+ return $this->status;
+ }
+
+ /**
+ * True if the version of skaffold used by this release is supported.
+ *
+ * Generated from protobuf field bool status = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setStatus($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->status = $var;
+
+ return $this;
+ }
+
+ /**
+ * The skaffold support state for this release's version of skaffold.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.SkaffoldSupportState skaffold_support_state = 2;
+ * @return int
+ */
+ public function getSkaffoldSupportState()
+ {
+ return $this->skaffold_support_state;
+ }
+
+ /**
+ * The skaffold support state for this release's version of skaffold.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.SkaffoldSupportState skaffold_support_state = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setSkaffoldSupportState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Deploy\V1\SkaffoldSupportState::class);
+ $this->skaffold_support_state = $var;
+
+ return $this;
+ }
+
+ /**
+ * The time at which this release's version of skaffold will enter
+ * maintenance mode.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp maintenance_mode_time = 3;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getMaintenanceModeTime()
+ {
+ return $this->maintenance_mode_time;
+ }
+
+ public function hasMaintenanceModeTime()
+ {
+ return isset($this->maintenance_mode_time);
+ }
+
+ public function clearMaintenanceModeTime()
+ {
+ unset($this->maintenance_mode_time);
+ }
+
+ /**
+ * The time at which this release's version of skaffold will enter
+ * maintenance mode.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp maintenance_mode_time = 3;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setMaintenanceModeTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->maintenance_mode_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * The time at which this release's version of skaffold will no longer be
+ * supported.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp support_expiration_time = 4;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getSupportExpirationTime()
+ {
+ return $this->support_expiration_time;
+ }
+
+ public function hasSupportExpirationTime()
+ {
+ return isset($this->support_expiration_time);
+ }
+
+ public function clearSupportExpirationTime()
+ {
+ unset($this->support_expiration_time);
+ }
+
+ /**
+ * The time at which this release's version of skaffold will no longer be
+ * supported.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp support_expiration_time = 4;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setSupportExpirationTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->support_expiration_time = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(SkaffoldSupportedCondition::class, \Google\Cloud\Deploy\V1\Release_SkaffoldSupportedCondition::class);
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release/TargetRender.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release/TargetRender.php
new file mode 100644
index 000000000000..6042ed840749
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release/TargetRender.php
@@ -0,0 +1,232 @@
+google.cloud.deploy.v1.Release.TargetRender
+ */
+class TargetRender extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The resource name of the Cloud Build `Build` object that is
+ * used to render the manifest for this target. Format is
+ * `projects/{project}/locations/{location}/builds/{build}`.
+ *
+ * Generated from protobuf field string rendering_build = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ */
+ protected $rendering_build = '';
+ /**
+ * Output only. Current state of the render operation for this Target.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Release.TargetRender.TargetRenderState rendering_state = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $rendering_state = 0;
+ /**
+ * Output only. Metadata related to the `Release` render for this Target.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.RenderMetadata metadata = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $metadata = null;
+ /**
+ * Output only. Reason this render failed. This will always be unspecified
+ * while the render in progress.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Release.TargetRender.FailureCause failure_cause = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $failure_cause = 0;
+ /**
+ * Output only. Additional information about the render failure, if
+ * available.
+ *
+ * Generated from protobuf field string failure_message = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $failure_message = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $rendering_build
+ * Output only. The resource name of the Cloud Build `Build` object that is
+ * used to render the manifest for this target. Format is
+ * `projects/{project}/locations/{location}/builds/{build}`.
+ * @type int $rendering_state
+ * Output only. Current state of the render operation for this Target.
+ * @type \Google\Cloud\Deploy\V1\RenderMetadata $metadata
+ * Output only. Metadata related to the `Release` render for this Target.
+ * @type int $failure_cause
+ * Output only. Reason this render failed. This will always be unspecified
+ * while the render in progress.
+ * @type string $failure_message
+ * Output only. Additional information about the render failure, if
+ * available.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The resource name of the Cloud Build `Build` object that is
+ * used to render the manifest for this target. Format is
+ * `projects/{project}/locations/{location}/builds/{build}`.
+ *
+ * Generated from protobuf field string rendering_build = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getRenderingBuild()
+ {
+ return $this->rendering_build;
+ }
+
+ /**
+ * Output only. The resource name of the Cloud Build `Build` object that is
+ * used to render the manifest for this target. Format is
+ * `projects/{project}/locations/{location}/builds/{build}`.
+ *
+ * Generated from protobuf field string rendering_build = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setRenderingBuild($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->rendering_build = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Current state of the render operation for this Target.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Release.TargetRender.TargetRenderState rendering_state = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getRenderingState()
+ {
+ return $this->rendering_state;
+ }
+
+ /**
+ * Output only. Current state of the render operation for this Target.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Release.TargetRender.TargetRenderState rendering_state = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setRenderingState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Deploy\V1\Release\TargetRender\TargetRenderState::class);
+ $this->rendering_state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Metadata related to the `Release` render for this Target.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.RenderMetadata metadata = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Deploy\V1\RenderMetadata|null
+ */
+ public function getMetadata()
+ {
+ return $this->metadata;
+ }
+
+ public function hasMetadata()
+ {
+ return isset($this->metadata);
+ }
+
+ public function clearMetadata()
+ {
+ unset($this->metadata);
+ }
+
+ /**
+ * Output only. Metadata related to the `Release` render for this Target.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.RenderMetadata metadata = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Deploy\V1\RenderMetadata $var
+ * @return $this
+ */
+ public function setMetadata($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\RenderMetadata::class);
+ $this->metadata = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Reason this render failed. This will always be unspecified
+ * while the render in progress.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Release.TargetRender.FailureCause failure_cause = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getFailureCause()
+ {
+ return $this->failure_cause;
+ }
+
+ /**
+ * Output only. Reason this render failed. This will always be unspecified
+ * while the render in progress.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Release.TargetRender.FailureCause failure_cause = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setFailureCause($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Deploy\V1\Release\TargetRender\FailureCause::class);
+ $this->failure_cause = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Additional information about the render failure, if
+ * available.
+ *
+ * Generated from protobuf field string failure_message = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getFailureMessage()
+ {
+ return $this->failure_message;
+ }
+
+ /**
+ * Output only. Additional information about the render failure, if
+ * available.
+ *
+ * Generated from protobuf field string failure_message = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setFailureMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->failure_message = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(TargetRender::class, \Google\Cloud\Deploy\V1\Release_TargetRender::class);
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release/TargetRender/FailureCause.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release/TargetRender/FailureCause.php
new file mode 100644
index 000000000000..704f445643cf
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release/TargetRender/FailureCause.php
@@ -0,0 +1,75 @@
+google.cloud.deploy.v1.Release.TargetRender.FailureCause
+ */
+class FailureCause
+{
+ /**
+ * No reason for failure is specified.
+ *
+ * Generated from protobuf enum FAILURE_CAUSE_UNSPECIFIED = 0;
+ */
+ const FAILURE_CAUSE_UNSPECIFIED = 0;
+ /**
+ * Cloud Build is not available, either because it is not enabled or
+ * because Google Cloud Deploy has insufficient permissions. See [required
+ * permission](/deploy/docs/cloud-deploy-service-account#required_permissions).
+ *
+ * Generated from protobuf enum CLOUD_BUILD_UNAVAILABLE = 1;
+ */
+ const CLOUD_BUILD_UNAVAILABLE = 1;
+ /**
+ * The render operation did not complete successfully; check Cloud Build
+ * logs.
+ *
+ * Generated from protobuf enum EXECUTION_FAILED = 2;
+ */
+ const EXECUTION_FAILED = 2;
+ /**
+ * Cloud Build failed to fulfill Google Cloud Deploy's request. See
+ * failure_message for additional details.
+ *
+ * Generated from protobuf enum CLOUD_BUILD_REQUEST_FAILED = 3;
+ */
+ const CLOUD_BUILD_REQUEST_FAILED = 3;
+
+ private static $valueToName = [
+ self::FAILURE_CAUSE_UNSPECIFIED => 'FAILURE_CAUSE_UNSPECIFIED',
+ self::CLOUD_BUILD_UNAVAILABLE => 'CLOUD_BUILD_UNAVAILABLE',
+ self::EXECUTION_FAILED => 'EXECUTION_FAILED',
+ self::CLOUD_BUILD_REQUEST_FAILED => 'CLOUD_BUILD_REQUEST_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(FailureCause::class, \Google\Cloud\Deploy\V1\Release_TargetRender_FailureCause::class);
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release/TargetRender/TargetRenderState.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release/TargetRender/TargetRenderState.php
new file mode 100644
index 000000000000..3f4840b1272f
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release/TargetRender/TargetRenderState.php
@@ -0,0 +1,71 @@
+google.cloud.deploy.v1.Release.TargetRender.TargetRenderState
+ */
+class TargetRenderState
+{
+ /**
+ * The render operation state is unspecified.
+ *
+ * Generated from protobuf enum TARGET_RENDER_STATE_UNSPECIFIED = 0;
+ */
+ const TARGET_RENDER_STATE_UNSPECIFIED = 0;
+ /**
+ * The render operation has completed successfully.
+ *
+ * Generated from protobuf enum SUCCEEDED = 1;
+ */
+ const SUCCEEDED = 1;
+ /**
+ * The render operation has failed.
+ *
+ * Generated from protobuf enum FAILED = 2;
+ */
+ const FAILED = 2;
+ /**
+ * The render operation is in progress.
+ *
+ * Generated from protobuf enum IN_PROGRESS = 3;
+ */
+ const IN_PROGRESS = 3;
+
+ private static $valueToName = [
+ self::TARGET_RENDER_STATE_UNSPECIFIED => 'TARGET_RENDER_STATE_UNSPECIFIED',
+ self::SUCCEEDED => 'SUCCEEDED',
+ self::FAILED => 'FAILED',
+ self::IN_PROGRESS => 'IN_PROGRESS',
+ ];
+
+ 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(TargetRenderState::class, \Google\Cloud\Deploy\V1\Release_TargetRender_TargetRenderState::class);
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ReleaseNotificationEvent.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ReleaseNotificationEvent.php
new file mode 100644
index 000000000000..7a299e666d70
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ReleaseNotificationEvent.php
@@ -0,0 +1,137 @@
+google.cloud.deploy.v1.ReleaseNotificationEvent
+ */
+class ReleaseNotificationEvent extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Debug message for when a notification fails to send.
+ *
+ * Generated from protobuf field string message = 1;
+ */
+ protected $message = '';
+ /**
+ * The name of the `Release`.
+ *
+ * Generated from protobuf field string release = 2;
+ */
+ protected $release = '';
+ /**
+ * Type of this notification, e.g. for a Pub/Sub failure.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Type type = 3;
+ */
+ protected $type = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $message
+ * Debug message for when a notification fails to send.
+ * @type string $release
+ * The name of the `Release`.
+ * @type int $type
+ * Type of this notification, e.g. for a Pub/Sub failure.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\ReleaseNotificationPayload::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Debug message for when a notification fails to send.
+ *
+ * Generated from protobuf field string message = 1;
+ * @return string
+ */
+ public function getMessage()
+ {
+ return $this->message;
+ }
+
+ /**
+ * Debug message for when a notification fails to send.
+ *
+ * Generated from protobuf field string message = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->message = $var;
+
+ return $this;
+ }
+
+ /**
+ * The name of the `Release`.
+ *
+ * Generated from protobuf field string release = 2;
+ * @return string
+ */
+ public function getRelease()
+ {
+ return $this->release;
+ }
+
+ /**
+ * The name of the `Release`.
+ *
+ * Generated from protobuf field string release = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setRelease($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->release = $var;
+
+ return $this;
+ }
+
+ /**
+ * Type of this notification, e.g. for a Pub/Sub failure.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Type type = 3;
+ * @return int
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * Type of this notification, e.g. for a Pub/Sub failure.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Type type = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Deploy\V1\Type::class);
+ $this->type = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ReleaseRenderEvent.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ReleaseRenderEvent.php
new file mode 100644
index 000000000000..4add01825a29
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/ReleaseRenderEvent.php
@@ -0,0 +1,106 @@
+google.cloud.deploy.v1.ReleaseRenderEvent
+ */
+class ReleaseRenderEvent extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Debug message for when a render transition occurs. Provides further
+ * details as rendering progresses through render states.
+ *
+ * Generated from protobuf field string message = 1;
+ */
+ protected $message = '';
+ /**
+ * The name of the `Release`.
+ *
+ * Generated from protobuf field string release = 2;
+ */
+ protected $release = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $message
+ * Debug message for when a render transition occurs. Provides further
+ * details as rendering progresses through render states.
+ * @type string $release
+ * The name of the `Release`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\ReleaseRenderPayload::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Debug message for when a render transition occurs. Provides further
+ * details as rendering progresses through render states.
+ *
+ * Generated from protobuf field string message = 1;
+ * @return string
+ */
+ public function getMessage()
+ {
+ return $this->message;
+ }
+
+ /**
+ * Debug message for when a render transition occurs. Provides further
+ * details as rendering progresses through render states.
+ *
+ * Generated from protobuf field string message = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->message = $var;
+
+ return $this;
+ }
+
+ /**
+ * The name of the `Release`.
+ *
+ * Generated from protobuf field string release = 2;
+ * @return string
+ */
+ public function getRelease()
+ {
+ return $this->release;
+ }
+
+ /**
+ * The name of the `Release`.
+ *
+ * Generated from protobuf field string release = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setRelease($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->release = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release_ReleaseCondition.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release_ReleaseCondition.php
new file mode 100644
index 000000000000..0219b398cfe8
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Release_ReleaseCondition.php
@@ -0,0 +1,16 @@
+google.cloud.deploy.v1.RenderMetadata
+ */
+class RenderMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. Metadata associated with rendering for Cloud Run.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.CloudRunRenderMetadata cloud_run = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $cloud_run = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Deploy\V1\CloudRunRenderMetadata $cloud_run
+ * Output only. Metadata associated with rendering for Cloud Run.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Metadata associated with rendering for Cloud Run.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.CloudRunRenderMetadata cloud_run = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Deploy\V1\CloudRunRenderMetadata|null
+ */
+ public function getCloudRun()
+ {
+ return $this->cloud_run;
+ }
+
+ public function hasCloudRun()
+ {
+ return isset($this->cloud_run);
+ }
+
+ public function clearCloudRun()
+ {
+ unset($this->cloud_run);
+ }
+
+ /**
+ * Output only. Metadata associated with rendering for Cloud Run.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.CloudRunRenderMetadata cloud_run = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Deploy\V1\CloudRunRenderMetadata $var
+ * @return $this
+ */
+ public function setCloudRun($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\CloudRunRenderMetadata::class);
+ $this->cloud_run = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/RetryJobRequest.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/RetryJobRequest.php
new file mode 100644
index 000000000000..ee1db2272aab
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/RetryJobRequest.php
@@ -0,0 +1,163 @@
+google.cloud.deploy.v1.RetryJobRequest
+ */
+class RetryJobRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}.
+ *
+ * Generated from protobuf field string rollout = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $rollout = '';
+ /**
+ * Required. The phase ID the Job to retry belongs to.
+ *
+ * Generated from protobuf field string phase_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $phase_id = '';
+ /**
+ * Required. The job ID for the Job to retry.
+ *
+ * Generated from protobuf field string job_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $job_id = '';
+
+ /**
+ * @param string $rollout Required. Name of the Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}. Please see
+ * {@see CloudDeployClient::rolloutName()} for help formatting this field.
+ * @param string $phaseId Required. The phase ID the Job to retry belongs to.
+ * @param string $jobId Required. The job ID for the Job to retry.
+ *
+ * @return \Google\Cloud\Deploy\V1\RetryJobRequest
+ *
+ * @experimental
+ */
+ public static function build(string $rollout, string $phaseId, string $jobId): self
+ {
+ return (new self())
+ ->setRollout($rollout)
+ ->setPhaseId($phaseId)
+ ->setJobId($jobId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $rollout
+ * Required. Name of the Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}.
+ * @type string $phase_id
+ * Required. The phase ID the Job to retry belongs to.
+ * @type string $job_id
+ * Required. The job ID for the Job to retry.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}.
+ *
+ * Generated from protobuf field string rollout = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getRollout()
+ {
+ return $this->rollout;
+ }
+
+ /**
+ * Required. Name of the Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}.
+ *
+ * Generated from protobuf field string rollout = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setRollout($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->rollout = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The phase ID the Job to retry belongs to.
+ *
+ * Generated from protobuf field string phase_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getPhaseId()
+ {
+ return $this->phase_id;
+ }
+
+ /**
+ * Required. The phase ID the Job to retry belongs to.
+ *
+ * Generated from protobuf field string phase_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setPhaseId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->phase_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The job ID for the Job to retry.
+ *
+ * Generated from protobuf field string job_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getJobId()
+ {
+ return $this->job_id;
+ }
+
+ /**
+ * Required. The job ID for the Job to retry.
+ *
+ * Generated from protobuf field string job_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setJobId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->job_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/RetryJobResponse.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/RetryJobResponse.php
new file mode 100644
index 000000000000..3058f4b1d9e7
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/RetryJobResponse.php
@@ -0,0 +1,33 @@
+google.cloud.deploy.v1.RetryJobResponse
+ */
+class RetryJobResponse extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Rollout.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Rollout.php
new file mode 100644
index 000000000000..a94a0f0e86b3
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Rollout.php
@@ -0,0 +1,866 @@
+google.cloud.deploy.v1.Rollout
+ */
+class Rollout extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. Name of the `Rollout`. Format is projects/{project}/
+ * locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/[a-z][a-z0-9\-]{0,62}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $name = '';
+ /**
+ * Output only. Unique identifier of the `Rollout`.
+ *
+ * Generated from protobuf field string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $uid = '';
+ /**
+ * Description of the `Rollout` for user purposes. Max length is 255
+ * characters.
+ *
+ * Generated from protobuf field string description = 3;
+ */
+ protected $description = '';
+ /**
+ * User annotations. These attributes can only be set and used by the
+ * user, and not by Google Cloud Deploy. See
+ * https://google.aip.dev/128#annotations for more details such as format and
+ * size limitations.
+ *
+ * Generated from protobuf field map annotations = 4;
+ */
+ private $annotations;
+ /**
+ * Labels are attributes that can be set and used by both the
+ * user and by Google Cloud Deploy. Labels must meet the following
+ * constraints:
+ * * Keys and values can contain only lowercase letters, numeric characters,
+ * underscores, and dashes.
+ * * All characters must use UTF-8 encoding, and international characters are
+ * allowed.
+ * * Keys must start with a lowercase letter or international character.
+ * * Each resource is limited to a maximum of 64 labels.
+ * Both keys and values are additionally constrained to be <= 128 bytes.
+ *
+ * Generated from protobuf field map labels = 5;
+ */
+ private $labels;
+ /**
+ * Output only. Time at which the `Rollout` was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. Time at which the `Rollout` was approved.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp approve_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $approve_time = null;
+ /**
+ * Output only. Time at which the `Rollout` was enqueued.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp enqueue_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $enqueue_time = null;
+ /**
+ * Output only. Time at which the `Rollout` started deploying.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp deploy_start_time = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $deploy_start_time = null;
+ /**
+ * Output only. Time at which the `Rollout` finished deploying.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp deploy_end_time = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $deploy_end_time = null;
+ /**
+ * Required. The ID of Target to which this `Rollout` is deploying.
+ *
+ * Generated from protobuf field string target_id = 18 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $target_id = '';
+ /**
+ * Output only. Approval state of the `Rollout`.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Rollout.ApprovalState approval_state = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $approval_state = 0;
+ /**
+ * Output only. Current state of the `Rollout`.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Rollout.State state = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. Additional information about the rollout failure, if
+ * available.
+ *
+ * Generated from protobuf field string failure_reason = 14 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $failure_reason = '';
+ /**
+ * Output only. The resource name of the Cloud Build `Build` object that is
+ * used to deploy the Rollout. Format is
+ * `projects/{project}/locations/{location}/builds/{build}`.
+ *
+ * Generated from protobuf field string deploying_build = 17 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ */
+ protected $deploying_build = '';
+ /**
+ * This checksum is computed by the server based on the value of other
+ * fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 16;
+ */
+ protected $etag = '';
+ /**
+ * Output only. The reason this rollout failed. This will always be
+ * unspecified while the rollout is in progress.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Rollout.FailureCause deploy_failure_cause = 19 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $deploy_failure_cause = 0;
+ /**
+ * Output only. The phases that represent the workflows of this `Rollout`.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.Phase phases = 23 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $phases;
+ /**
+ * Output only. Metadata contains information about the rollout.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Metadata metadata = 24 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $metadata = null;
+ /**
+ * Output only. Name of the `ControllerRollout`. Format is projects/{project}/
+ * locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/[a-z][a-z0-9\-]{0,62}.
+ *
+ * Generated from protobuf field string controller_rollout = 25 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $controller_rollout = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Optional. Name of the `Rollout`. Format is projects/{project}/
+ * locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/[a-z][a-z0-9\-]{0,62}.
+ * @type string $uid
+ * Output only. Unique identifier of the `Rollout`.
+ * @type string $description
+ * Description of the `Rollout` for user purposes. Max length is 255
+ * characters.
+ * @type array|\Google\Protobuf\Internal\MapField $annotations
+ * User annotations. These attributes can only be set and used by the
+ * user, and not by Google Cloud Deploy. See
+ * https://google.aip.dev/128#annotations for more details such as format and
+ * size limitations.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * Labels are attributes that can be set and used by both the
+ * user and by Google Cloud Deploy. Labels must meet the following
+ * constraints:
+ * * Keys and values can contain only lowercase letters, numeric characters,
+ * underscores, and dashes.
+ * * All characters must use UTF-8 encoding, and international characters are
+ * allowed.
+ * * Keys must start with a lowercase letter or international character.
+ * * Each resource is limited to a maximum of 64 labels.
+ * Both keys and values are additionally constrained to be <= 128 bytes.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. Time at which the `Rollout` was created.
+ * @type \Google\Protobuf\Timestamp $approve_time
+ * Output only. Time at which the `Rollout` was approved.
+ * @type \Google\Protobuf\Timestamp $enqueue_time
+ * Output only. Time at which the `Rollout` was enqueued.
+ * @type \Google\Protobuf\Timestamp $deploy_start_time
+ * Output only. Time at which the `Rollout` started deploying.
+ * @type \Google\Protobuf\Timestamp $deploy_end_time
+ * Output only. Time at which the `Rollout` finished deploying.
+ * @type string $target_id
+ * Required. The ID of Target to which this `Rollout` is deploying.
+ * @type int $approval_state
+ * Output only. Approval state of the `Rollout`.
+ * @type int $state
+ * Output only. Current state of the `Rollout`.
+ * @type string $failure_reason
+ * Output only. Additional information about the rollout failure, if
+ * available.
+ * @type string $deploying_build
+ * Output only. The resource name of the Cloud Build `Build` object that is
+ * used to deploy the Rollout. Format is
+ * `projects/{project}/locations/{location}/builds/{build}`.
+ * @type string $etag
+ * This checksum is computed by the server based on the value of other
+ * fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ * @type int $deploy_failure_cause
+ * Output only. The reason this rollout failed. This will always be
+ * unspecified while the rollout is in progress.
+ * @type array<\Google\Cloud\Deploy\V1\Phase>|\Google\Protobuf\Internal\RepeatedField $phases
+ * Output only. The phases that represent the workflows of this `Rollout`.
+ * @type \Google\Cloud\Deploy\V1\Metadata $metadata
+ * Output only. Metadata contains information about the rollout.
+ * @type string $controller_rollout
+ * Output only. Name of the `ControllerRollout`. Format is projects/{project}/
+ * locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/[a-z][a-z0-9\-]{0,62}.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. Name of the `Rollout`. Format is projects/{project}/
+ * locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/[a-z][a-z0-9\-]{0,62}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Optional. Name of the `Rollout`. Format is projects/{project}/
+ * locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/[a-z][a-z0-9\-]{0,62}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Unique identifier of the `Rollout`.
+ *
+ * Generated from protobuf field string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getUid()
+ {
+ return $this->uid;
+ }
+
+ /**
+ * Output only. Unique identifier of the `Rollout`.
+ *
+ * Generated from protobuf field string uid = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setUid($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uid = $var;
+
+ return $this;
+ }
+
+ /**
+ * Description of the `Rollout` for user purposes. Max length is 255
+ * characters.
+ *
+ * Generated from protobuf field string description = 3;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Description of the `Rollout` for user purposes. Max length is 255
+ * characters.
+ *
+ * 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;
+ }
+
+ /**
+ * User annotations. These attributes can only be set and used by the
+ * user, and not by Google Cloud Deploy. See
+ * https://google.aip.dev/128#annotations for more details such as format and
+ * size limitations.
+ *
+ * Generated from protobuf field map annotations = 4;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getAnnotations()
+ {
+ return $this->annotations;
+ }
+
+ /**
+ * User annotations. These attributes can only be set and used by the
+ * user, and not by Google Cloud Deploy. See
+ * https://google.aip.dev/128#annotations for more details such as format and
+ * size limitations.
+ *
+ * Generated from protobuf field map annotations = 4;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setAnnotations($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->annotations = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Labels are attributes that can be set and used by both the
+ * user and by Google Cloud Deploy. Labels must meet the following
+ * constraints:
+ * * Keys and values can contain only lowercase letters, numeric characters,
+ * underscores, and dashes.
+ * * All characters must use UTF-8 encoding, and international characters are
+ * allowed.
+ * * Keys must start with a lowercase letter or international character.
+ * * Each resource is limited to a maximum of 64 labels.
+ * Both keys and values are additionally constrained to be <= 128 bytes.
+ *
+ * Generated from protobuf field map labels = 5;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * Labels are attributes that can be set and used by both the
+ * user and by Google Cloud Deploy. Labels must meet the following
+ * constraints:
+ * * Keys and values can contain only lowercase letters, numeric characters,
+ * underscores, and dashes.
+ * * All characters must use UTF-8 encoding, and international characters are
+ * allowed.
+ * * Keys must start with a lowercase letter or international character.
+ * * Each resource is limited to a maximum of 64 labels.
+ * Both keys and values are additionally constrained to be <= 128 bytes.
+ *
+ * Generated from protobuf field map labels = 5;
+ * @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;
+ }
+
+ /**
+ * Output only. Time at which the `Rollout` was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.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 at which the `Rollout` was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.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 at which the `Rollout` was approved.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp approve_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getApproveTime()
+ {
+ return $this->approve_time;
+ }
+
+ public function hasApproveTime()
+ {
+ return isset($this->approve_time);
+ }
+
+ public function clearApproveTime()
+ {
+ unset($this->approve_time);
+ }
+
+ /**
+ * Output only. Time at which the `Rollout` was approved.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp approve_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setApproveTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->approve_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Time at which the `Rollout` was enqueued.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp enqueue_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getEnqueueTime()
+ {
+ return $this->enqueue_time;
+ }
+
+ public function hasEnqueueTime()
+ {
+ return isset($this->enqueue_time);
+ }
+
+ public function clearEnqueueTime()
+ {
+ unset($this->enqueue_time);
+ }
+
+ /**
+ * Output only. Time at which the `Rollout` was enqueued.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp enqueue_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setEnqueueTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->enqueue_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Time at which the `Rollout` started deploying.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp deploy_start_time = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getDeployStartTime()
+ {
+ return $this->deploy_start_time;
+ }
+
+ public function hasDeployStartTime()
+ {
+ return isset($this->deploy_start_time);
+ }
+
+ public function clearDeployStartTime()
+ {
+ unset($this->deploy_start_time);
+ }
+
+ /**
+ * Output only. Time at which the `Rollout` started deploying.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp deploy_start_time = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setDeployStartTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->deploy_start_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Time at which the `Rollout` finished deploying.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp deploy_end_time = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getDeployEndTime()
+ {
+ return $this->deploy_end_time;
+ }
+
+ public function hasDeployEndTime()
+ {
+ return isset($this->deploy_end_time);
+ }
+
+ public function clearDeployEndTime()
+ {
+ unset($this->deploy_end_time);
+ }
+
+ /**
+ * Output only. Time at which the `Rollout` finished deploying.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp deploy_end_time = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setDeployEndTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->deploy_end_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The ID of Target to which this `Rollout` is deploying.
+ *
+ * Generated from protobuf field string target_id = 18 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getTargetId()
+ {
+ return $this->target_id;
+ }
+
+ /**
+ * Required. The ID of Target to which this `Rollout` is deploying.
+ *
+ * Generated from protobuf field string target_id = 18 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setTargetId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->target_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Approval state of the `Rollout`.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Rollout.ApprovalState approval_state = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getApprovalState()
+ {
+ return $this->approval_state;
+ }
+
+ /**
+ * Output only. Approval state of the `Rollout`.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Rollout.ApprovalState approval_state = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setApprovalState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Deploy\V1\Rollout\ApprovalState::class);
+ $this->approval_state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Current state of the `Rollout`.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Rollout.State state = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. Current state of the `Rollout`.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Rollout.State state = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Deploy\V1\Rollout\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Additional information about the rollout failure, if
+ * available.
+ *
+ * Generated from protobuf field string failure_reason = 14 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getFailureReason()
+ {
+ return $this->failure_reason;
+ }
+
+ /**
+ * Output only. Additional information about the rollout failure, if
+ * available.
+ *
+ * Generated from protobuf field string failure_reason = 14 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setFailureReason($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->failure_reason = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The resource name of the Cloud Build `Build` object that is
+ * used to deploy the Rollout. Format is
+ * `projects/{project}/locations/{location}/builds/{build}`.
+ *
+ * Generated from protobuf field string deploying_build = 17 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getDeployingBuild()
+ {
+ return $this->deploying_build;
+ }
+
+ /**
+ * Output only. The resource name of the Cloud Build `Build` object that is
+ * used to deploy the Rollout. Format is
+ * `projects/{project}/locations/{location}/builds/{build}`.
+ *
+ * Generated from protobuf field string deploying_build = 17 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setDeployingBuild($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->deploying_build = $var;
+
+ return $this;
+ }
+
+ /**
+ * This checksum is computed by the server based on the value of other
+ * fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 16;
+ * @return string
+ */
+ public function getEtag()
+ {
+ return $this->etag;
+ }
+
+ /**
+ * This checksum is computed by the server based on the value of other
+ * fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 16;
+ * @param string $var
+ * @return $this
+ */
+ public function setEtag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->etag = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The reason this rollout failed. This will always be
+ * unspecified while the rollout is in progress.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Rollout.FailureCause deploy_failure_cause = 19 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getDeployFailureCause()
+ {
+ return $this->deploy_failure_cause;
+ }
+
+ /**
+ * Output only. The reason this rollout failed. This will always be
+ * unspecified while the rollout is in progress.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Rollout.FailureCause deploy_failure_cause = 19 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setDeployFailureCause($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Deploy\V1\Rollout\FailureCause::class);
+ $this->deploy_failure_cause = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The phases that represent the workflows of this `Rollout`.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.Phase phases = 23 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getPhases()
+ {
+ return $this->phases;
+ }
+
+ /**
+ * Output only. The phases that represent the workflows of this `Rollout`.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.Phase phases = 23 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array<\Google\Cloud\Deploy\V1\Phase>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setPhases($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Deploy\V1\Phase::class);
+ $this->phases = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Metadata contains information about the rollout.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Metadata metadata = 24 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Deploy\V1\Metadata|null
+ */
+ public function getMetadata()
+ {
+ return $this->metadata;
+ }
+
+ public function hasMetadata()
+ {
+ return isset($this->metadata);
+ }
+
+ public function clearMetadata()
+ {
+ unset($this->metadata);
+ }
+
+ /**
+ * Output only. Metadata contains information about the rollout.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Metadata metadata = 24 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Deploy\V1\Metadata $var
+ * @return $this
+ */
+ public function setMetadata($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\Metadata::class);
+ $this->metadata = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Name of the `ControllerRollout`. Format is projects/{project}/
+ * locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/[a-z][a-z0-9\-]{0,62}.
+ *
+ * Generated from protobuf field string controller_rollout = 25 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getControllerRollout()
+ {
+ return $this->controller_rollout;
+ }
+
+ /**
+ * Output only. Name of the `ControllerRollout`. Format is projects/{project}/
+ * locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/[a-z][a-z0-9\-]{0,62}.
+ *
+ * Generated from protobuf field string controller_rollout = 25 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setControllerRollout($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->controller_rollout = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Rollout/ApprovalState.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Rollout/ApprovalState.php
new file mode 100644
index 000000000000..c0fb8336f4e8
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Rollout/ApprovalState.php
@@ -0,0 +1,78 @@
+google.cloud.deploy.v1.Rollout.ApprovalState
+ */
+class ApprovalState
+{
+ /**
+ * The `Rollout` has an unspecified approval state.
+ *
+ * Generated from protobuf enum APPROVAL_STATE_UNSPECIFIED = 0;
+ */
+ const APPROVAL_STATE_UNSPECIFIED = 0;
+ /**
+ * The `Rollout` requires approval.
+ *
+ * Generated from protobuf enum NEEDS_APPROVAL = 1;
+ */
+ const NEEDS_APPROVAL = 1;
+ /**
+ * The `Rollout` does not require approval.
+ *
+ * Generated from protobuf enum DOES_NOT_NEED_APPROVAL = 2;
+ */
+ const DOES_NOT_NEED_APPROVAL = 2;
+ /**
+ * The `Rollout` has been approved.
+ *
+ * Generated from protobuf enum APPROVED = 3;
+ */
+ const APPROVED = 3;
+ /**
+ * The `Rollout` has been rejected.
+ *
+ * Generated from protobuf enum REJECTED = 4;
+ */
+ const REJECTED = 4;
+
+ private static $valueToName = [
+ self::APPROVAL_STATE_UNSPECIFIED => 'APPROVAL_STATE_UNSPECIFIED',
+ self::NEEDS_APPROVAL => 'NEEDS_APPROVAL',
+ self::DOES_NOT_NEED_APPROVAL => 'DOES_NOT_NEED_APPROVAL',
+ self::APPROVED => 'APPROVED',
+ self::REJECTED => 'REJECTED',
+ ];
+
+ 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(ApprovalState::class, \Google\Cloud\Deploy\V1\Rollout_ApprovalState::class);
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Rollout/FailureCause.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Rollout/FailureCause.php
new file mode 100644
index 000000000000..77bd8fee0694
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Rollout/FailureCause.php
@@ -0,0 +1,103 @@
+google.cloud.deploy.v1.Rollout.FailureCause
+ */
+class FailureCause
+{
+ /**
+ * No reason for failure is specified.
+ *
+ * Generated from protobuf enum FAILURE_CAUSE_UNSPECIFIED = 0;
+ */
+ const FAILURE_CAUSE_UNSPECIFIED = 0;
+ /**
+ * Cloud Build is not available, either because it is not enabled or because
+ * Cloud Deploy has insufficient permissions. See [required
+ * permission](/deploy/docs/cloud-deploy-service-account#required_permissions).
+ *
+ * Generated from protobuf enum CLOUD_BUILD_UNAVAILABLE = 1;
+ */
+ const CLOUD_BUILD_UNAVAILABLE = 1;
+ /**
+ * The deploy operation did not complete successfully; check Cloud Build
+ * logs.
+ *
+ * Generated from protobuf enum EXECUTION_FAILED = 2;
+ */
+ const EXECUTION_FAILED = 2;
+ /**
+ * Deployment did not complete within the alloted time.
+ *
+ * Generated from protobuf enum DEADLINE_EXCEEDED = 3;
+ */
+ const DEADLINE_EXCEEDED = 3;
+ /**
+ * Release is in a failed state.
+ *
+ * Generated from protobuf enum RELEASE_FAILED = 4;
+ */
+ const RELEASE_FAILED = 4;
+ /**
+ * Release is abandoned.
+ *
+ * Generated from protobuf enum RELEASE_ABANDONED = 5;
+ */
+ const RELEASE_ABANDONED = 5;
+ /**
+ * No skaffold verify configuration was found.
+ *
+ * Generated from protobuf enum VERIFICATION_CONFIG_NOT_FOUND = 6;
+ */
+ const VERIFICATION_CONFIG_NOT_FOUND = 6;
+ /**
+ * Cloud Build failed to fulfill Google Cloud Deploy's request. See
+ * failure_message for additional details.
+ *
+ * Generated from protobuf enum CLOUD_BUILD_REQUEST_FAILED = 7;
+ */
+ const CLOUD_BUILD_REQUEST_FAILED = 7;
+
+ private static $valueToName = [
+ self::FAILURE_CAUSE_UNSPECIFIED => 'FAILURE_CAUSE_UNSPECIFIED',
+ self::CLOUD_BUILD_UNAVAILABLE => 'CLOUD_BUILD_UNAVAILABLE',
+ self::EXECUTION_FAILED => 'EXECUTION_FAILED',
+ self::DEADLINE_EXCEEDED => 'DEADLINE_EXCEEDED',
+ self::RELEASE_FAILED => 'RELEASE_FAILED',
+ self::RELEASE_ABANDONED => 'RELEASE_ABANDONED',
+ self::VERIFICATION_CONFIG_NOT_FOUND => 'VERIFICATION_CONFIG_NOT_FOUND',
+ self::CLOUD_BUILD_REQUEST_FAILED => 'CLOUD_BUILD_REQUEST_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(FailureCause::class, \Google\Cloud\Deploy\V1\Rollout_FailureCause::class);
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Rollout/State.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Rollout/State.php
new file mode 100644
index 000000000000..d92e91477504
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Rollout/State.php
@@ -0,0 +1,121 @@
+google.cloud.deploy.v1.Rollout.State
+ */
+class State
+{
+ /**
+ * The `Rollout` has an unspecified state.
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * The `Rollout` has completed successfully.
+ *
+ * Generated from protobuf enum SUCCEEDED = 1;
+ */
+ const SUCCEEDED = 1;
+ /**
+ * The `Rollout` has failed.
+ *
+ * Generated from protobuf enum FAILED = 2;
+ */
+ const FAILED = 2;
+ /**
+ * The `Rollout` is being deployed.
+ *
+ * Generated from protobuf enum IN_PROGRESS = 3;
+ */
+ const IN_PROGRESS = 3;
+ /**
+ * The `Rollout` needs approval.
+ *
+ * Generated from protobuf enum PENDING_APPROVAL = 4;
+ */
+ const PENDING_APPROVAL = 4;
+ /**
+ * An approver rejected the `Rollout`.
+ *
+ * Generated from protobuf enum APPROVAL_REJECTED = 5;
+ */
+ const APPROVAL_REJECTED = 5;
+ /**
+ * The `Rollout` is waiting for an earlier Rollout(s) to complete on this
+ * `Target`.
+ *
+ * Generated from protobuf enum PENDING = 6;
+ */
+ const PENDING = 6;
+ /**
+ * The `Rollout` is waiting for the `Release` to be fully rendered.
+ *
+ * Generated from protobuf enum PENDING_RELEASE = 7;
+ */
+ const PENDING_RELEASE = 7;
+ /**
+ * The `Rollout` is in the process of being cancelled.
+ *
+ * Generated from protobuf enum CANCELLING = 8;
+ */
+ const CANCELLING = 8;
+ /**
+ * The `Rollout` has been cancelled.
+ *
+ * Generated from protobuf enum CANCELLED = 9;
+ */
+ const CANCELLED = 9;
+ /**
+ * The `Rollout` is halted.
+ *
+ * Generated from protobuf enum HALTED = 10;
+ */
+ const HALTED = 10;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::SUCCEEDED => 'SUCCEEDED',
+ self::FAILED => 'FAILED',
+ self::IN_PROGRESS => 'IN_PROGRESS',
+ self::PENDING_APPROVAL => 'PENDING_APPROVAL',
+ self::APPROVAL_REJECTED => 'APPROVAL_REJECTED',
+ self::PENDING => 'PENDING',
+ self::PENDING_RELEASE => 'PENDING_RELEASE',
+ self::CANCELLING => 'CANCELLING',
+ self::CANCELLED => 'CANCELLED',
+ self::HALTED => 'HALTED',
+ ];
+
+ 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\Deploy\V1\Rollout_State::class);
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/RolloutNotificationEvent.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/RolloutNotificationEvent.php
new file mode 100644
index 000000000000..bea716943e4c
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/RolloutNotificationEvent.php
@@ -0,0 +1,239 @@
+google.cloud.deploy.v1.RolloutNotificationEvent
+ */
+class RolloutNotificationEvent extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Debug message for when a notification fails to send.
+ *
+ * Generated from protobuf field string message = 1;
+ */
+ protected $message = '';
+ /**
+ * Unique identifier of the `DeliveryPipeline`.
+ *
+ * Generated from protobuf field string pipeline_uid = 2;
+ */
+ protected $pipeline_uid = '';
+ /**
+ * Unique identifier of the `Release`.
+ *
+ * Generated from protobuf field string release_uid = 3;
+ */
+ protected $release_uid = '';
+ /**
+ * The name of the `Rollout`.
+ *
+ * Generated from protobuf field string rollout = 4;
+ */
+ protected $rollout = '';
+ /**
+ * Type of this notification, e.g. for a Pub/Sub failure.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Type type = 5;
+ */
+ protected $type = 0;
+ /**
+ * ID of the `Target` that the rollout is deployed to.
+ *
+ * Generated from protobuf field string target_id = 6;
+ */
+ protected $target_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $message
+ * Debug message for when a notification fails to send.
+ * @type string $pipeline_uid
+ * Unique identifier of the `DeliveryPipeline`.
+ * @type string $release_uid
+ * Unique identifier of the `Release`.
+ * @type string $rollout
+ * The name of the `Rollout`.
+ * @type int $type
+ * Type of this notification, e.g. for a Pub/Sub failure.
+ * @type string $target_id
+ * ID of the `Target` that the rollout is deployed to.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\RolloutNotificationPayload::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Debug message for when a notification fails to send.
+ *
+ * Generated from protobuf field string message = 1;
+ * @return string
+ */
+ public function getMessage()
+ {
+ return $this->message;
+ }
+
+ /**
+ * Debug message for when a notification fails to send.
+ *
+ * Generated from protobuf field string message = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->message = $var;
+
+ return $this;
+ }
+
+ /**
+ * Unique identifier of the `DeliveryPipeline`.
+ *
+ * Generated from protobuf field string pipeline_uid = 2;
+ * @return string
+ */
+ public function getPipelineUid()
+ {
+ return $this->pipeline_uid;
+ }
+
+ /**
+ * Unique identifier of the `DeliveryPipeline`.
+ *
+ * Generated from protobuf field string pipeline_uid = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setPipelineUid($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->pipeline_uid = $var;
+
+ return $this;
+ }
+
+ /**
+ * Unique identifier of the `Release`.
+ *
+ * Generated from protobuf field string release_uid = 3;
+ * @return string
+ */
+ public function getReleaseUid()
+ {
+ return $this->release_uid;
+ }
+
+ /**
+ * Unique identifier of the `Release`.
+ *
+ * Generated from protobuf field string release_uid = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setReleaseUid($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->release_uid = $var;
+
+ return $this;
+ }
+
+ /**
+ * The name of the `Rollout`.
+ *
+ * Generated from protobuf field string rollout = 4;
+ * @return string
+ */
+ public function getRollout()
+ {
+ return $this->rollout;
+ }
+
+ /**
+ * The name of the `Rollout`.
+ *
+ * Generated from protobuf field string rollout = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setRollout($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->rollout = $var;
+
+ return $this;
+ }
+
+ /**
+ * Type of this notification, e.g. for a Pub/Sub failure.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Type type = 5;
+ * @return int
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * Type of this notification, e.g. for a Pub/Sub failure.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Type type = 5;
+ * @param int $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Deploy\V1\Type::class);
+ $this->type = $var;
+
+ return $this;
+ }
+
+ /**
+ * ID of the `Target` that the rollout is deployed to.
+ *
+ * Generated from protobuf field string target_id = 6;
+ * @return string
+ */
+ public function getTargetId()
+ {
+ return $this->target_id;
+ }
+
+ /**
+ * ID of the `Target` that the rollout is deployed to.
+ *
+ * Generated from protobuf field string target_id = 6;
+ * @param string $var
+ * @return $this
+ */
+ public function setTargetId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->target_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Rollout_ApprovalState.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Rollout_ApprovalState.php
new file mode 100644
index 000000000000..7d7474584780
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Rollout_ApprovalState.php
@@ -0,0 +1,16 @@
+google.cloud.deploy.v1.RuntimeConfig
+ */
+class RuntimeConfig extends \Google\Protobuf\Internal\Message
+{
+ protected $runtime_config;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Deploy\V1\KubernetesConfig $kubernetes
+ * Kubernetes runtime configuration.
+ * @type \Google\Cloud\Deploy\V1\CloudRunConfig $cloud_run
+ * Cloud Run runtime configuration.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Kubernetes runtime configuration.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.KubernetesConfig kubernetes = 1;
+ * @return \Google\Cloud\Deploy\V1\KubernetesConfig|null
+ */
+ public function getKubernetes()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasKubernetes()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Kubernetes runtime configuration.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.KubernetesConfig kubernetes = 1;
+ * @param \Google\Cloud\Deploy\V1\KubernetesConfig $var
+ * @return $this
+ */
+ public function setKubernetes($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\KubernetesConfig::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Cloud Run runtime configuration.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.CloudRunConfig cloud_run = 2;
+ * @return \Google\Cloud\Deploy\V1\CloudRunConfig|null
+ */
+ public function getCloudRun()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasCloudRun()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Cloud Run runtime configuration.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.CloudRunConfig cloud_run = 2;
+ * @param \Google\Cloud\Deploy\V1\CloudRunConfig $var
+ * @return $this
+ */
+ public function setCloudRun($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\CloudRunConfig::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getRuntimeConfig()
+ {
+ return $this->whichOneof("runtime_config");
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/SerialPipeline.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/SerialPipeline.php
new file mode 100644
index 000000000000..df68b2ffa1d9
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/SerialPipeline.php
@@ -0,0 +1,71 @@
+google.cloud.deploy.v1.SerialPipeline
+ */
+class SerialPipeline extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Each stage specifies configuration for a `Target`. The ordering
+ * of this list defines the promotion flow.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.Stage stages = 1;
+ */
+ private $stages;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Deploy\V1\Stage>|\Google\Protobuf\Internal\RepeatedField $stages
+ * Each stage specifies configuration for a `Target`. The ordering
+ * of this list defines the promotion flow.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Each stage specifies configuration for a `Target`. The ordering
+ * of this list defines the promotion flow.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.Stage stages = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getStages()
+ {
+ return $this->stages;
+ }
+
+ /**
+ * Each stage specifies configuration for a `Target`. The ordering
+ * of this list defines the promotion flow.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.Stage stages = 1;
+ * @param array<\Google\Cloud\Deploy\V1\Stage>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setStages($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Deploy\V1\Stage::class);
+ $this->stages = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/SkaffoldSupportState.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/SkaffoldSupportState.php
new file mode 100644
index 000000000000..dcc57086c6cd
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/SkaffoldSupportState.php
@@ -0,0 +1,68 @@
+google.cloud.deploy.v1.SkaffoldSupportState
+ */
+class SkaffoldSupportState
+{
+ /**
+ * Default value. This value is unused.
+ *
+ * Generated from protobuf enum SKAFFOLD_SUPPORT_STATE_UNSPECIFIED = 0;
+ */
+ const SKAFFOLD_SUPPORT_STATE_UNSPECIFIED = 0;
+ /**
+ * This skaffold version is currently supported.
+ *
+ * Generated from protobuf enum SKAFFOLD_SUPPORT_STATE_SUPPORTED = 1;
+ */
+ const SKAFFOLD_SUPPORT_STATE_SUPPORTED = 1;
+ /**
+ * This skaffold version is in maintenance mode.
+ *
+ * Generated from protobuf enum SKAFFOLD_SUPPORT_STATE_MAINTENANCE_MODE = 2;
+ */
+ const SKAFFOLD_SUPPORT_STATE_MAINTENANCE_MODE = 2;
+ /**
+ * This skaffold version is no longer supported.
+ *
+ * Generated from protobuf enum SKAFFOLD_SUPPORT_STATE_UNSUPPORTED = 3;
+ */
+ const SKAFFOLD_SUPPORT_STATE_UNSUPPORTED = 3;
+
+ private static $valueToName = [
+ self::SKAFFOLD_SUPPORT_STATE_UNSPECIFIED => 'SKAFFOLD_SUPPORT_STATE_UNSPECIFIED',
+ self::SKAFFOLD_SUPPORT_STATE_SUPPORTED => 'SKAFFOLD_SUPPORT_STATE_SUPPORTED',
+ self::SKAFFOLD_SUPPORT_STATE_MAINTENANCE_MODE => 'SKAFFOLD_SUPPORT_STATE_MAINTENANCE_MODE',
+ self::SKAFFOLD_SUPPORT_STATE_UNSUPPORTED => 'SKAFFOLD_SUPPORT_STATE_UNSUPPORTED',
+ ];
+
+ 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/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/SkaffoldVersion.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/SkaffoldVersion.php
new file mode 100644
index 000000000000..99cf896c1e45
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/SkaffoldVersion.php
@@ -0,0 +1,199 @@
+google.cloud.deploy.v1.SkaffoldVersion
+ */
+class SkaffoldVersion extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Release version number. For example, "1.20.3".
+ *
+ * Generated from protobuf field string version = 1;
+ */
+ protected $version = '';
+ /**
+ * The time at which this version of skaffold will enter maintenance mode.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp maintenance_mode_time = 3;
+ */
+ protected $maintenance_mode_time = null;
+ /**
+ * The time at which this version of skaffold will no longer be supported.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp support_expiration_time = 4;
+ */
+ protected $support_expiration_time = null;
+ /**
+ * Date when this version is expected to no longer be supported.
+ *
+ * Generated from protobuf field .google.type.Date support_end_date = 2;
+ */
+ protected $support_end_date = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $version
+ * Release version number. For example, "1.20.3".
+ * @type \Google\Protobuf\Timestamp $maintenance_mode_time
+ * The time at which this version of skaffold will enter maintenance mode.
+ * @type \Google\Protobuf\Timestamp $support_expiration_time
+ * The time at which this version of skaffold will no longer be supported.
+ * @type \Google\Type\Date $support_end_date
+ * Date when this version is expected to no longer be supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Release version number. For example, "1.20.3".
+ *
+ * Generated from protobuf field string version = 1;
+ * @return string
+ */
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ /**
+ * Release version number. For example, "1.20.3".
+ *
+ * Generated from protobuf field string version = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->version = $var;
+
+ return $this;
+ }
+
+ /**
+ * The time at which this version of skaffold will enter maintenance mode.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp maintenance_mode_time = 3;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getMaintenanceModeTime()
+ {
+ return $this->maintenance_mode_time;
+ }
+
+ public function hasMaintenanceModeTime()
+ {
+ return isset($this->maintenance_mode_time);
+ }
+
+ public function clearMaintenanceModeTime()
+ {
+ unset($this->maintenance_mode_time);
+ }
+
+ /**
+ * The time at which this version of skaffold will enter maintenance mode.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp maintenance_mode_time = 3;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setMaintenanceModeTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->maintenance_mode_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * The time at which this version of skaffold will no longer be supported.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp support_expiration_time = 4;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getSupportExpirationTime()
+ {
+ return $this->support_expiration_time;
+ }
+
+ public function hasSupportExpirationTime()
+ {
+ return isset($this->support_expiration_time);
+ }
+
+ public function clearSupportExpirationTime()
+ {
+ unset($this->support_expiration_time);
+ }
+
+ /**
+ * The time at which this version of skaffold will no longer be supported.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp support_expiration_time = 4;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setSupportExpirationTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->support_expiration_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Date when this version is expected to no longer be supported.
+ *
+ * Generated from protobuf field .google.type.Date support_end_date = 2;
+ * @return \Google\Type\Date|null
+ */
+ public function getSupportEndDate()
+ {
+ return $this->support_end_date;
+ }
+
+ public function hasSupportEndDate()
+ {
+ return isset($this->support_end_date);
+ }
+
+ public function clearSupportEndDate()
+ {
+ unset($this->support_end_date);
+ }
+
+ /**
+ * Date when this version is expected to no longer be supported.
+ *
+ * Generated from protobuf field .google.type.Date support_end_date = 2;
+ * @param \Google\Type\Date $var
+ * @return $this
+ */
+ public function setSupportEndDate($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Date::class);
+ $this->support_end_date = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Stage.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Stage.php
new file mode 100644
index 000000000000..debad7f632f9
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Stage.php
@@ -0,0 +1,169 @@
+google.cloud.deploy.v1.Stage
+ */
+class Stage extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The target_id to which this stage points. This field refers exclusively to
+ * the last segment of a target name. For example, this field would just be
+ * `my-target` (rather than
+ * `projects/project/locations/location/targets/my-target`). The location of
+ * the `Target` is inferred to be the same as the location of the
+ * `DeliveryPipeline` that contains this `Stage`.
+ *
+ * Generated from protobuf field string target_id = 1;
+ */
+ protected $target_id = '';
+ /**
+ * Skaffold profiles to use when rendering the manifest for this stage's
+ * `Target`.
+ *
+ * Generated from protobuf field repeated string profiles = 2;
+ */
+ private $profiles;
+ /**
+ * Optional. The strategy to use for a `Rollout` to this stage.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Strategy strategy = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $strategy = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $target_id
+ * The target_id to which this stage points. This field refers exclusively to
+ * the last segment of a target name. For example, this field would just be
+ * `my-target` (rather than
+ * `projects/project/locations/location/targets/my-target`). The location of
+ * the `Target` is inferred to be the same as the location of the
+ * `DeliveryPipeline` that contains this `Stage`.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $profiles
+ * Skaffold profiles to use when rendering the manifest for this stage's
+ * `Target`.
+ * @type \Google\Cloud\Deploy\V1\Strategy $strategy
+ * Optional. The strategy to use for a `Rollout` to this stage.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The target_id to which this stage points. This field refers exclusively to
+ * the last segment of a target name. For example, this field would just be
+ * `my-target` (rather than
+ * `projects/project/locations/location/targets/my-target`). The location of
+ * the `Target` is inferred to be the same as the location of the
+ * `DeliveryPipeline` that contains this `Stage`.
+ *
+ * Generated from protobuf field string target_id = 1;
+ * @return string
+ */
+ public function getTargetId()
+ {
+ return $this->target_id;
+ }
+
+ /**
+ * The target_id to which this stage points. This field refers exclusively to
+ * the last segment of a target name. For example, this field would just be
+ * `my-target` (rather than
+ * `projects/project/locations/location/targets/my-target`). The location of
+ * the `Target` is inferred to be the same as the location of the
+ * `DeliveryPipeline` that contains this `Stage`.
+ *
+ * Generated from protobuf field string target_id = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setTargetId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->target_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Skaffold profiles to use when rendering the manifest for this stage's
+ * `Target`.
+ *
+ * Generated from protobuf field repeated string profiles = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getProfiles()
+ {
+ return $this->profiles;
+ }
+
+ /**
+ * Skaffold profiles to use when rendering the manifest for this stage's
+ * `Target`.
+ *
+ * Generated from protobuf field repeated string profiles = 2;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setProfiles($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->profiles = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The strategy to use for a `Rollout` to this stage.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Strategy strategy = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\Deploy\V1\Strategy|null
+ */
+ public function getStrategy()
+ {
+ return $this->strategy;
+ }
+
+ public function hasStrategy()
+ {
+ return isset($this->strategy);
+ }
+
+ public function clearStrategy()
+ {
+ unset($this->strategy);
+ }
+
+ /**
+ * Optional. The strategy to use for a `Rollout` to this stage.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Strategy strategy = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\Deploy\V1\Strategy $var
+ * @return $this
+ */
+ public function setStrategy($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\Strategy::class);
+ $this->strategy = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Standard.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Standard.php
new file mode 100644
index 000000000000..0ec4ae2a2adf
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Standard.php
@@ -0,0 +1,67 @@
+google.cloud.deploy.v1.Standard
+ */
+class Standard extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Whether to verify a deployment.
+ *
+ * Generated from protobuf field bool verify = 1;
+ */
+ protected $verify = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $verify
+ * Whether to verify a deployment.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Whether to verify a deployment.
+ *
+ * Generated from protobuf field bool verify = 1;
+ * @return bool
+ */
+ public function getVerify()
+ {
+ return $this->verify;
+ }
+
+ /**
+ * Whether to verify a deployment.
+ *
+ * Generated from protobuf field bool verify = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setVerify($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->verify = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Strategy.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Strategy.php
new file mode 100644
index 000000000000..3d4f9641a71f
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Strategy.php
@@ -0,0 +1,114 @@
+google.cloud.deploy.v1.Strategy
+ */
+class Strategy extends \Google\Protobuf\Internal\Message
+{
+ protected $deployment_strategy;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Deploy\V1\Standard $standard
+ * Standard deployment strategy executes a single deploy and allows
+ * verifying the deployment.
+ * @type \Google\Cloud\Deploy\V1\Canary $canary
+ * Canary deployment strategy provides progressive percentage based
+ * deployments to a Target.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Standard deployment strategy executes a single deploy and allows
+ * verifying the deployment.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Standard standard = 1;
+ * @return \Google\Cloud\Deploy\V1\Standard|null
+ */
+ public function getStandard()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasStandard()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Standard deployment strategy executes a single deploy and allows
+ * verifying the deployment.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Standard standard = 1;
+ * @param \Google\Cloud\Deploy\V1\Standard $var
+ * @return $this
+ */
+ public function setStandard($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\Standard::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Canary deployment strategy provides progressive percentage based
+ * deployments to a Target.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Canary canary = 2;
+ * @return \Google\Cloud\Deploy\V1\Canary|null
+ */
+ public function getCanary()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasCanary()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Canary deployment strategy provides progressive percentage based
+ * deployments to a Target.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Canary canary = 2;
+ * @param \Google\Cloud\Deploy\V1\Canary $var
+ * @return $this
+ */
+ public function setCanary($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\Canary::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getDeploymentStrategy()
+ {
+ return $this->whichOneof("deployment_strategy");
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Target.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Target.php
new file mode 100644
index 000000000000..aef262730a78
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Target.php
@@ -0,0 +1,654 @@
+google.cloud.deploy.v1.Target
+ */
+class Target extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. Name of the `Target`. Format is
+ * projects/{project}/locations/{location}/targets/[a-z][a-z0-9\-]{0,62}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $name = '';
+ /**
+ * Output only. Resource id of the `Target`.
+ *
+ * Generated from protobuf field string target_id = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $target_id = '';
+ /**
+ * Output only. Unique identifier of the `Target`.
+ *
+ * Generated from protobuf field string uid = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $uid = '';
+ /**
+ * Optional. Description of the `Target`. Max length is 255 characters.
+ *
+ * Generated from protobuf field string description = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $description = '';
+ /**
+ * Optional. User annotations. These attributes can only be set and used by
+ * the user, and not by Google Cloud Deploy. See
+ * https://google.aip.dev/128#annotations for more details such as format and
+ * size limitations.
+ *
+ * Generated from protobuf field map annotations = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $annotations;
+ /**
+ * Optional. Labels are attributes that can be set and used by both the
+ * user and by Google Cloud Deploy. Labels must meet the following
+ * constraints:
+ * * Keys and values can contain only lowercase letters, numeric characters,
+ * underscores, and dashes.
+ * * All characters must use UTF-8 encoding, and international characters are
+ * allowed.
+ * * Keys must start with a lowercase letter or international character.
+ * * Each resource is limited to a maximum of 64 labels.
+ * Both keys and values are additionally constrained to be <= 128 bytes.
+ *
+ * Generated from protobuf field map labels = 6 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $labels;
+ /**
+ * Optional. Whether or not the `Target` requires approval.
+ *
+ * Generated from protobuf field bool require_approval = 13 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $require_approval = false;
+ /**
+ * Output only. Time at which the `Target` was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. Most recent time at which the `Target` was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * Optional. This checksum is computed by the server based on the value of
+ * other fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 12 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $etag = '';
+ /**
+ * Configurations for all execution that relates to this `Target`.
+ * Each `ExecutionEnvironmentUsage` value may only be used in a single
+ * configuration; using the same value multiple times is an error.
+ * When one or more configurations are specified, they must include the
+ * `RENDER` and `DEPLOY` `ExecutionEnvironmentUsage` values.
+ * When no configurations are specified, execution will use the default
+ * specified in `DefaultPool`.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.ExecutionConfig execution_configs = 16;
+ */
+ private $execution_configs;
+ protected $deployment_target;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Optional. Name of the `Target`. Format is
+ * projects/{project}/locations/{location}/targets/[a-z][a-z0-9\-]{0,62}.
+ * @type string $target_id
+ * Output only. Resource id of the `Target`.
+ * @type string $uid
+ * Output only. Unique identifier of the `Target`.
+ * @type string $description
+ * Optional. Description of the `Target`. Max length is 255 characters.
+ * @type array|\Google\Protobuf\Internal\MapField $annotations
+ * Optional. User annotations. These attributes can only be set and used by
+ * the user, and not by Google Cloud Deploy. See
+ * https://google.aip.dev/128#annotations for more details such as format and
+ * size limitations.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * Optional. Labels are attributes that can be set and used by both the
+ * user and by Google Cloud Deploy. Labels must meet the following
+ * constraints:
+ * * Keys and values can contain only lowercase letters, numeric characters,
+ * underscores, and dashes.
+ * * All characters must use UTF-8 encoding, and international characters are
+ * allowed.
+ * * Keys must start with a lowercase letter or international character.
+ * * Each resource is limited to a maximum of 64 labels.
+ * Both keys and values are additionally constrained to be <= 128 bytes.
+ * @type bool $require_approval
+ * Optional. Whether or not the `Target` requires approval.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. Time at which the `Target` was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. Most recent time at which the `Target` was updated.
+ * @type \Google\Cloud\Deploy\V1\GkeCluster $gke
+ * Information specifying a GKE Cluster.
+ * @type \Google\Cloud\Deploy\V1\AnthosCluster $anthos_cluster
+ * Information specifying an Anthos Cluster.
+ * @type \Google\Cloud\Deploy\V1\CloudRunLocation $run
+ * Information specifying a Cloud Run deployment target.
+ * @type \Google\Cloud\Deploy\V1\MultiTarget $multi_target
+ * Information specifying a multiTarget.
+ * @type string $etag
+ * Optional. This checksum is computed by the server based on the value of
+ * other fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ * @type array<\Google\Cloud\Deploy\V1\ExecutionConfig>|\Google\Protobuf\Internal\RepeatedField $execution_configs
+ * Configurations for all execution that relates to this `Target`.
+ * Each `ExecutionEnvironmentUsage` value may only be used in a single
+ * configuration; using the same value multiple times is an error.
+ * When one or more configurations are specified, they must include the
+ * `RENDER` and `DEPLOY` `ExecutionEnvironmentUsage` values.
+ * When no configurations are specified, execution will use the default
+ * specified in `DefaultPool`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. Name of the `Target`. Format is
+ * projects/{project}/locations/{location}/targets/[a-z][a-z0-9\-]{0,62}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Optional. Name of the `Target`. Format is
+ * projects/{project}/locations/{location}/targets/[a-z][a-z0-9\-]{0,62}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Resource id of the `Target`.
+ *
+ * Generated from protobuf field string target_id = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getTargetId()
+ {
+ return $this->target_id;
+ }
+
+ /**
+ * Output only. Resource id of the `Target`.
+ *
+ * Generated from protobuf field string target_id = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setTargetId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->target_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Unique identifier of the `Target`.
+ *
+ * Generated from protobuf field string uid = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getUid()
+ {
+ return $this->uid;
+ }
+
+ /**
+ * Output only. Unique identifier of the `Target`.
+ *
+ * Generated from protobuf field string uid = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setUid($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uid = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Description of the `Target`. Max length is 255 characters.
+ *
+ * Generated from protobuf field string description = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Optional. Description of the `Target`. Max length is 255 characters.
+ *
+ * Generated from protobuf field string description = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. User annotations. These attributes can only be set and used by
+ * the user, and not by Google Cloud Deploy. See
+ * https://google.aip.dev/128#annotations for more details such as format and
+ * size limitations.
+ *
+ * Generated from protobuf field map annotations = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getAnnotations()
+ {
+ return $this->annotations;
+ }
+
+ /**
+ * Optional. User annotations. These attributes can only be set and used by
+ * the user, and not by Google Cloud Deploy. See
+ * https://google.aip.dev/128#annotations for more details such as format and
+ * size limitations.
+ *
+ * Generated from protobuf field map annotations = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setAnnotations($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->annotations = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Labels are attributes that can be set and used by both the
+ * user and by Google Cloud Deploy. Labels must meet the following
+ * constraints:
+ * * Keys and values can contain only lowercase letters, numeric characters,
+ * underscores, and dashes.
+ * * All characters must use UTF-8 encoding, and international characters are
+ * allowed.
+ * * Keys must start with a lowercase letter or international character.
+ * * Each resource is limited to a maximum of 64 labels.
+ * Both keys and values are additionally constrained to be <= 128 bytes.
+ *
+ * Generated from protobuf field map labels = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * Optional. Labels are attributes that can be set and used by both the
+ * user and by Google Cloud Deploy. Labels must meet the following
+ * constraints:
+ * * Keys and values can contain only lowercase letters, numeric characters,
+ * underscores, and dashes.
+ * * All characters must use UTF-8 encoding, and international characters are
+ * allowed.
+ * * Keys must start with a lowercase letter or international character.
+ * * Each resource is limited to a maximum of 64 labels.
+ * Both keys and values are additionally constrained to be <= 128 bytes.
+ *
+ * Generated from protobuf field map labels = 6 [(.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. Whether or not the `Target` requires approval.
+ *
+ * Generated from protobuf field bool require_approval = 13 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getRequireApproval()
+ {
+ return $this->require_approval;
+ }
+
+ /**
+ * Optional. Whether or not the `Target` requires approval.
+ *
+ * Generated from protobuf field bool require_approval = 13 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setRequireApproval($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->require_approval = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Time at which the `Target` was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 8 [(.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 at which the `Target` was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 8 [(.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. Most recent time at which the `Target` was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 9 [(.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. Most recent time at which the `Target` was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 9 [(.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;
+ }
+
+ /**
+ * Information specifying a GKE Cluster.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.GkeCluster gke = 15;
+ * @return \Google\Cloud\Deploy\V1\GkeCluster|null
+ */
+ public function getGke()
+ {
+ return $this->readOneof(15);
+ }
+
+ public function hasGke()
+ {
+ return $this->hasOneof(15);
+ }
+
+ /**
+ * Information specifying a GKE Cluster.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.GkeCluster gke = 15;
+ * @param \Google\Cloud\Deploy\V1\GkeCluster $var
+ * @return $this
+ */
+ public function setGke($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\GkeCluster::class);
+ $this->writeOneof(15, $var);
+
+ return $this;
+ }
+
+ /**
+ * Information specifying an Anthos Cluster.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.AnthosCluster anthos_cluster = 17;
+ * @return \Google\Cloud\Deploy\V1\AnthosCluster|null
+ */
+ public function getAnthosCluster()
+ {
+ return $this->readOneof(17);
+ }
+
+ public function hasAnthosCluster()
+ {
+ return $this->hasOneof(17);
+ }
+
+ /**
+ * Information specifying an Anthos Cluster.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.AnthosCluster anthos_cluster = 17;
+ * @param \Google\Cloud\Deploy\V1\AnthosCluster $var
+ * @return $this
+ */
+ public function setAnthosCluster($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\AnthosCluster::class);
+ $this->writeOneof(17, $var);
+
+ return $this;
+ }
+
+ /**
+ * Information specifying a Cloud Run deployment target.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.CloudRunLocation run = 18;
+ * @return \Google\Cloud\Deploy\V1\CloudRunLocation|null
+ */
+ public function getRun()
+ {
+ return $this->readOneof(18);
+ }
+
+ public function hasRun()
+ {
+ return $this->hasOneof(18);
+ }
+
+ /**
+ * Information specifying a Cloud Run deployment target.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.CloudRunLocation run = 18;
+ * @param \Google\Cloud\Deploy\V1\CloudRunLocation $var
+ * @return $this
+ */
+ public function setRun($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\CloudRunLocation::class);
+ $this->writeOneof(18, $var);
+
+ return $this;
+ }
+
+ /**
+ * Information specifying a multiTarget.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.MultiTarget multi_target = 19;
+ * @return \Google\Cloud\Deploy\V1\MultiTarget|null
+ */
+ public function getMultiTarget()
+ {
+ return $this->readOneof(19);
+ }
+
+ public function hasMultiTarget()
+ {
+ return $this->hasOneof(19);
+ }
+
+ /**
+ * Information specifying a multiTarget.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.MultiTarget multi_target = 19;
+ * @param \Google\Cloud\Deploy\V1\MultiTarget $var
+ * @return $this
+ */
+ public function setMultiTarget($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\MultiTarget::class);
+ $this->writeOneof(19, $var);
+
+ return $this;
+ }
+
+ /**
+ * Optional. This checksum is computed by the server based on the value of
+ * other fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 12 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getEtag()
+ {
+ return $this->etag;
+ }
+
+ /**
+ * Optional. This checksum is computed by the server based on the value of
+ * other fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 12 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setEtag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->etag = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configurations for all execution that relates to this `Target`.
+ * Each `ExecutionEnvironmentUsage` value may only be used in a single
+ * configuration; using the same value multiple times is an error.
+ * When one or more configurations are specified, they must include the
+ * `RENDER` and `DEPLOY` `ExecutionEnvironmentUsage` values.
+ * When no configurations are specified, execution will use the default
+ * specified in `DefaultPool`.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.ExecutionConfig execution_configs = 16;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getExecutionConfigs()
+ {
+ return $this->execution_configs;
+ }
+
+ /**
+ * Configurations for all execution that relates to this `Target`.
+ * Each `ExecutionEnvironmentUsage` value may only be used in a single
+ * configuration; using the same value multiple times is an error.
+ * When one or more configurations are specified, they must include the
+ * `RENDER` and `DEPLOY` `ExecutionEnvironmentUsage` values.
+ * When no configurations are specified, execution will use the default
+ * specified in `DefaultPool`.
+ *
+ * Generated from protobuf field repeated .google.cloud.deploy.v1.ExecutionConfig execution_configs = 16;
+ * @param array<\Google\Cloud\Deploy\V1\ExecutionConfig>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setExecutionConfigs($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Deploy\V1\ExecutionConfig::class);
+ $this->execution_configs = $arr;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getDeploymentTarget()
+ {
+ return $this->whichOneof("deployment_target");
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/TargetArtifact.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/TargetArtifact.php
new file mode 100644
index 000000000000..dcca9ff5bfa5
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/TargetArtifact.php
@@ -0,0 +1,187 @@
+google.cloud.deploy.v1.TargetArtifact
+ */
+class TargetArtifact extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. File path of the resolved Skaffold configuration relative to
+ * the URI.
+ *
+ * Generated from protobuf field string skaffold_config_path = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $skaffold_config_path = '';
+ /**
+ * Output only. File path of the rendered manifest relative to the URI.
+ *
+ * Generated from protobuf field string manifest_path = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $manifest_path = '';
+ /**
+ * Output only. Map from the phase ID to the phase artifacts for the `Target`.
+ *
+ * Generated from protobuf field map phase_artifacts = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $phase_artifacts;
+ protected $uri;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $artifact_uri
+ * Output only. URI of a directory containing the artifacts. This contains
+ * deployment configuration used by Skaffold during a rollout, and all
+ * paths are relative to this location.
+ * @type string $skaffold_config_path
+ * Output only. File path of the resolved Skaffold configuration relative to
+ * the URI.
+ * @type string $manifest_path
+ * Output only. File path of the rendered manifest relative to the URI.
+ * @type array|\Google\Protobuf\Internal\MapField $phase_artifacts
+ * Output only. Map from the phase ID to the phase artifacts for the `Target`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. URI of a directory containing the artifacts. This contains
+ * deployment configuration used by Skaffold during a rollout, and all
+ * paths are relative to this location.
+ *
+ * Generated from protobuf field string artifact_uri = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getArtifactUri()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasArtifactUri()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * Output only. URI of a directory containing the artifacts. This contains
+ * deployment configuration used by Skaffold during a rollout, and all
+ * paths are relative to this location.
+ *
+ * Generated from protobuf field string artifact_uri = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setArtifactUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. File path of the resolved Skaffold configuration relative to
+ * the URI.
+ *
+ * Generated from protobuf field string skaffold_config_path = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getSkaffoldConfigPath()
+ {
+ return $this->skaffold_config_path;
+ }
+
+ /**
+ * Output only. File path of the resolved Skaffold configuration relative to
+ * the URI.
+ *
+ * Generated from protobuf field string skaffold_config_path = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setSkaffoldConfigPath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->skaffold_config_path = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. File path of the rendered manifest relative to the URI.
+ *
+ * Generated from protobuf field string manifest_path = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getManifestPath()
+ {
+ return $this->manifest_path;
+ }
+
+ /**
+ * Output only. File path of the rendered manifest relative to the URI.
+ *
+ * Generated from protobuf field string manifest_path = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setManifestPath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->manifest_path = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Map from the phase ID to the phase artifacts for the `Target`.
+ *
+ * Generated from protobuf field map phase_artifacts = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getPhaseArtifacts()
+ {
+ return $this->phase_artifacts;
+ }
+
+ /**
+ * Output only. Map from the phase ID to the phase artifacts for the `Target`.
+ *
+ * Generated from protobuf field map phase_artifacts = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setPhaseArtifacts($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Deploy\V1\TargetArtifact\PhaseArtifact::class);
+ $this->phase_artifacts = $arr;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getUri()
+ {
+ return $this->whichOneof("uri");
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/TargetArtifact/PhaseArtifact.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/TargetArtifact/PhaseArtifact.php
new file mode 100644
index 000000000000..27736c6008e0
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/TargetArtifact/PhaseArtifact.php
@@ -0,0 +1,146 @@
+google.cloud.deploy.v1.TargetArtifact.PhaseArtifact
+ */
+class PhaseArtifact extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. File path of the resolved Skaffold configuration relative to
+ * the URI.
+ *
+ * Generated from protobuf field string skaffold_config_path = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $skaffold_config_path = '';
+ /**
+ * Output only. File path of the rendered manifest relative to the URI.
+ *
+ * Generated from protobuf field string manifest_path = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $manifest_path = '';
+ /**
+ * Output only. File path of the directory of rendered job manifests
+ * relative to the URI. This is only set if it is applicable.
+ *
+ * Generated from protobuf field string job_manifests_path = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $job_manifests_path = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $skaffold_config_path
+ * Output only. File path of the resolved Skaffold configuration relative to
+ * the URI.
+ * @type string $manifest_path
+ * Output only. File path of the rendered manifest relative to the URI.
+ * @type string $job_manifests_path
+ * Output only. File path of the directory of rendered job manifests
+ * relative to the URI. This is only set if it is applicable.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. File path of the resolved Skaffold configuration relative to
+ * the URI.
+ *
+ * Generated from protobuf field string skaffold_config_path = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getSkaffoldConfigPath()
+ {
+ return $this->skaffold_config_path;
+ }
+
+ /**
+ * Output only. File path of the resolved Skaffold configuration relative to
+ * the URI.
+ *
+ * Generated from protobuf field string skaffold_config_path = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setSkaffoldConfigPath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->skaffold_config_path = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. File path of the rendered manifest relative to the URI.
+ *
+ * Generated from protobuf field string manifest_path = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getManifestPath()
+ {
+ return $this->manifest_path;
+ }
+
+ /**
+ * Output only. File path of the rendered manifest relative to the URI.
+ *
+ * Generated from protobuf field string manifest_path = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setManifestPath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->manifest_path = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. File path of the directory of rendered job manifests
+ * relative to the URI. This is only set if it is applicable.
+ *
+ * Generated from protobuf field string job_manifests_path = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getJobManifestsPath()
+ {
+ return $this->job_manifests_path;
+ }
+
+ /**
+ * Output only. File path of the directory of rendered job manifests
+ * relative to the URI. This is only set if it is applicable.
+ *
+ * Generated from protobuf field string job_manifests_path = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setJobManifestsPath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->job_manifests_path = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(PhaseArtifact::class, \Google\Cloud\Deploy\V1\TargetArtifact_PhaseArtifact::class);
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/TargetArtifact_PhaseArtifact.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/TargetArtifact_PhaseArtifact.php
new file mode 100644
index 000000000000..738c557eaa50
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/TargetArtifact_PhaseArtifact.php
@@ -0,0 +1,16 @@
+google.cloud.deploy.v1.TargetNotificationEvent
+ */
+class TargetNotificationEvent extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Debug message for when a notification fails to send.
+ *
+ * Generated from protobuf field string message = 1;
+ */
+ protected $message = '';
+ /**
+ * The name of the `Target`.
+ *
+ * Generated from protobuf field string target = 2;
+ */
+ protected $target = '';
+ /**
+ * Type of this notification, e.g. for a Pub/Sub failure.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Type type = 3;
+ */
+ protected $type = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $message
+ * Debug message for when a notification fails to send.
+ * @type string $target
+ * The name of the `Target`.
+ * @type int $type
+ * Type of this notification, e.g. for a Pub/Sub failure.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\TargetNotificationPayload::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Debug message for when a notification fails to send.
+ *
+ * Generated from protobuf field string message = 1;
+ * @return string
+ */
+ public function getMessage()
+ {
+ return $this->message;
+ }
+
+ /**
+ * Debug message for when a notification fails to send.
+ *
+ * Generated from protobuf field string message = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->message = $var;
+
+ return $this;
+ }
+
+ /**
+ * The name of the `Target`.
+ *
+ * Generated from protobuf field string target = 2;
+ * @return string
+ */
+ public function getTarget()
+ {
+ return $this->target;
+ }
+
+ /**
+ * The name of the `Target`.
+ *
+ * Generated from protobuf field string target = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setTarget($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->target = $var;
+
+ return $this;
+ }
+
+ /**
+ * Type of this notification, e.g. for a Pub/Sub failure.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Type type = 3;
+ * @return int
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * Type of this notification, e.g. for a Pub/Sub failure.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Type type = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Deploy\V1\Type::class);
+ $this->type = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/TargetsPresentCondition.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/TargetsPresentCondition.php
new file mode 100644
index 000000000000..42d2afcce4d4
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/TargetsPresentCondition.php
@@ -0,0 +1,150 @@
+google.cloud.deploy.v1.TargetsPresentCondition
+ */
+class TargetsPresentCondition extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * True if there aren't any missing Targets.
+ *
+ * Generated from protobuf field bool status = 1;
+ */
+ protected $status = false;
+ /**
+ * The list of Target names that do not exist. For example,
+ * projects/{project_id}/locations/{location_name}/targets/{target_name}.
+ *
+ * Generated from protobuf field repeated string missing_targets = 2 [(.google.api.resource_reference) = {
+ */
+ private $missing_targets;
+ /**
+ * Last time the condition was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 4;
+ */
+ protected $update_time = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $status
+ * True if there aren't any missing Targets.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $missing_targets
+ * The list of Target names that do not exist. For example,
+ * projects/{project_id}/locations/{location_name}/targets/{target_name}.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Last time the condition was updated.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * True if there aren't any missing Targets.
+ *
+ * Generated from protobuf field bool status = 1;
+ * @return bool
+ */
+ public function getStatus()
+ {
+ return $this->status;
+ }
+
+ /**
+ * True if there aren't any missing Targets.
+ *
+ * Generated from protobuf field bool status = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setStatus($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->status = $var;
+
+ return $this;
+ }
+
+ /**
+ * The list of Target names that do not exist. For example,
+ * projects/{project_id}/locations/{location_name}/targets/{target_name}.
+ *
+ * Generated from protobuf field repeated string missing_targets = 2 [(.google.api.resource_reference) = {
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getMissingTargets()
+ {
+ return $this->missing_targets;
+ }
+
+ /**
+ * The list of Target names that do not exist. For example,
+ * projects/{project_id}/locations/{location_name}/targets/{target_name}.
+ *
+ * Generated from protobuf field repeated string missing_targets = 2 [(.google.api.resource_reference) = {
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setMissingTargets($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->missing_targets = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Last time the condition was updated.
+ *
+ * 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);
+ }
+
+ /**
+ * Last time the condition was updated.
+ *
+ * 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;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/TargetsTypeCondition.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/TargetsTypeCondition.php
new file mode 100644
index 000000000000..34705dbf6df7
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/TargetsTypeCondition.php
@@ -0,0 +1,110 @@
+google.cloud.deploy.v1.TargetsTypeCondition
+ */
+class TargetsTypeCondition extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * True if the targets are all a comparable type. For example this is true if
+ * all targets are GKE clusters. This is false if some targets are Cloud Run
+ * targets and others are GKE clusters.
+ *
+ * Generated from protobuf field bool status = 1;
+ */
+ protected $status = false;
+ /**
+ * Human readable error message.
+ *
+ * Generated from protobuf field string error_details = 2;
+ */
+ protected $error_details = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $status
+ * True if the targets are all a comparable type. For example this is true if
+ * all targets are GKE clusters. This is false if some targets are Cloud Run
+ * targets and others are GKE clusters.
+ * @type string $error_details
+ * Human readable error message.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * True if the targets are all a comparable type. For example this is true if
+ * all targets are GKE clusters. This is false if some targets are Cloud Run
+ * targets and others are GKE clusters.
+ *
+ * Generated from protobuf field bool status = 1;
+ * @return bool
+ */
+ public function getStatus()
+ {
+ return $this->status;
+ }
+
+ /**
+ * True if the targets are all a comparable type. For example this is true if
+ * all targets are GKE clusters. This is false if some targets are Cloud Run
+ * targets and others are GKE clusters.
+ *
+ * Generated from protobuf field bool status = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setStatus($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->status = $var;
+
+ return $this;
+ }
+
+ /**
+ * Human readable error message.
+ *
+ * Generated from protobuf field string error_details = 2;
+ * @return string
+ */
+ public function getErrorDetails()
+ {
+ return $this->error_details;
+ }
+
+ /**
+ * Human readable error message.
+ *
+ * Generated from protobuf field string error_details = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setErrorDetails($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->error_details = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/TerminateJobRunRequest.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/TerminateJobRunRequest.php
new file mode 100644
index 000000000000..b62abe4c5205
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/TerminateJobRunRequest.php
@@ -0,0 +1,91 @@
+google.cloud.deploy.v1.TerminateJobRunRequest
+ */
+class TerminateJobRunRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the `JobRun`. Format must be
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}/jobRuns/{jobRun}.
+ *
+ * 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 `JobRun`. Format must be
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}/jobRuns/{jobRun}. Please see
+ * {@see CloudDeployClient::jobRunName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Deploy\V1\TerminateJobRunRequest
+ *
+ * @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 `JobRun`. Format must be
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}/jobRuns/{jobRun}.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the `JobRun`. Format must be
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}/jobRuns/{jobRun}.
+ *
+ * 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 `JobRun`. Format must be
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}/jobRuns/{jobRun}.
+ *
+ * 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/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/TerminateJobRunResponse.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/TerminateJobRunResponse.php
new file mode 100644
index 000000000000..7053edb3af40
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/TerminateJobRunResponse.php
@@ -0,0 +1,33 @@
+google.cloud.deploy.v1.TerminateJobRunResponse
+ */
+class TerminateJobRunResponse extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Type.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Type.php
new file mode 100644
index 000000000000..c9a88c026ee3
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/Type.php
@@ -0,0 +1,61 @@
+google.cloud.deploy.v1.Type
+ */
+class Type
+{
+ /**
+ * Type is unspecified.
+ *
+ * Generated from protobuf enum TYPE_UNSPECIFIED = 0;
+ */
+ const TYPE_UNSPECIFIED = 0;
+ /**
+ * A Pub/Sub notification failed to be sent.
+ *
+ * Generated from protobuf enum TYPE_PUBSUB_NOTIFICATION_FAILURE = 1;
+ */
+ const TYPE_PUBSUB_NOTIFICATION_FAILURE = 1;
+ /**
+ * Deprecated: This field is never used. Use release_render log type instead.
+ *
+ * Generated from protobuf enum TYPE_RENDER_STATUES_CHANGE = 2 [deprecated = true];
+ */
+ const TYPE_RENDER_STATUES_CHANGE = 2;
+
+ private static $valueToName = [
+ self::TYPE_UNSPECIFIED => 'TYPE_UNSPECIFIED',
+ self::TYPE_PUBSUB_NOTIFICATION_FAILURE => 'TYPE_PUBSUB_NOTIFICATION_FAILURE',
+ self::TYPE_RENDER_STATUES_CHANGE => 'TYPE_RENDER_STATUES_CHANGE',
+ ];
+
+ 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/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/UpdateDeliveryPipelineRequest.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/UpdateDeliveryPipelineRequest.php
new file mode 100644
index 000000000000..aeb37ae971d4
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/UpdateDeliveryPipelineRequest.php
@@ -0,0 +1,306 @@
+google.cloud.deploy.v1.UpdateDeliveryPipelineRequest
+ */
+class UpdateDeliveryPipelineRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * `DeliveryPipeline` 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. If the
+ * user does not provide a mask then all fields will be overwritten.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. The `DeliveryPipeline` to update.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.DeliveryPipeline delivery_pipeline = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $delivery_pipeline = null;
+ /**
+ * Optional. A 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 = '';
+ /**
+ * Optional. If set to true, updating a `DeliveryPipeline` that does not exist
+ * will result in the creation of a new `DeliveryPipeline`.
+ *
+ * Generated from protobuf field bool allow_missing = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $allow_missing = false;
+ /**
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ *
+ * Generated from protobuf field bool validate_only = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $validate_only = false;
+
+ /**
+ * @param \Google\Cloud\Deploy\V1\DeliveryPipeline $deliveryPipeline Required. The `DeliveryPipeline` to update.
+ * @param \Google\Protobuf\FieldMask $updateMask Required. Field mask is used to specify the fields to be overwritten in the
+ * `DeliveryPipeline` 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. If the
+ * user does not provide a mask then all fields will be overwritten.
+ *
+ * @return \Google\Cloud\Deploy\V1\UpdateDeliveryPipelineRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\Deploy\V1\DeliveryPipeline $deliveryPipeline, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setDeliveryPipeline($deliveryPipeline)
+ ->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
+ * `DeliveryPipeline` 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. If the
+ * user does not provide a mask then all fields will be overwritten.
+ * @type \Google\Cloud\Deploy\V1\DeliveryPipeline $delivery_pipeline
+ * Required. The `DeliveryPipeline` to update.
+ * @type string $request_id
+ * Optional. A 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).
+ * @type bool $allow_missing
+ * Optional. If set to true, updating a `DeliveryPipeline` that does not exist
+ * will result in the creation of a new `DeliveryPipeline`.
+ * @type bool $validate_only
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * `DeliveryPipeline` 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. If the
+ * user does not provide a mask then all fields will be overwritten.
+ *
+ * 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
+ * `DeliveryPipeline` 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. If the
+ * user does not provide a mask then all fields will be overwritten.
+ *
+ * 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 `DeliveryPipeline` to update.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.DeliveryPipeline delivery_pipeline = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Deploy\V1\DeliveryPipeline|null
+ */
+ public function getDeliveryPipeline()
+ {
+ return $this->delivery_pipeline;
+ }
+
+ public function hasDeliveryPipeline()
+ {
+ return isset($this->delivery_pipeline);
+ }
+
+ public function clearDeliveryPipeline()
+ {
+ unset($this->delivery_pipeline);
+ }
+
+ /**
+ * Required. The `DeliveryPipeline` to update.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.DeliveryPipeline delivery_pipeline = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Deploy\V1\DeliveryPipeline $var
+ * @return $this
+ */
+ public function setDeliveryPipeline($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\DeliveryPipeline::class);
+ $this->delivery_pipeline = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A 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. A 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;
+ }
+
+ /**
+ * Optional. If set to true, updating a `DeliveryPipeline` that does not exist
+ * will result in the creation of a new `DeliveryPipeline`.
+ *
+ * Generated from protobuf field bool allow_missing = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getAllowMissing()
+ {
+ return $this->allow_missing;
+ }
+
+ /**
+ * Optional. If set to true, updating a `DeliveryPipeline` that does not exist
+ * will result in the creation of a new `DeliveryPipeline`.
+ *
+ * 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;
+ }
+
+ /**
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ *
+ * Generated from protobuf field bool validate_only = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getValidateOnly()
+ {
+ return $this->validate_only;
+ }
+
+ /**
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ *
+ * Generated from protobuf field bool validate_only = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setValidateOnly($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->validate_only = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/UpdateTargetRequest.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/UpdateTargetRequest.php
new file mode 100644
index 000000000000..4c89a30a7366
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/UpdateTargetRequest.php
@@ -0,0 +1,306 @@
+google.cloud.deploy.v1.UpdateTargetRequest
+ */
+class UpdateTargetRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * Target 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. If the
+ * user does not provide a mask then all fields will be overwritten.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. The `Target` to update.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Target target = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $target = null;
+ /**
+ * Optional. A 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 = '';
+ /**
+ * Optional. If set to true, updating a `Target` that does not exist will
+ * result in the creation of a new `Target`.
+ *
+ * Generated from protobuf field bool allow_missing = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $allow_missing = false;
+ /**
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ *
+ * Generated from protobuf field bool validate_only = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $validate_only = false;
+
+ /**
+ * @param \Google\Cloud\Deploy\V1\Target $target Required. The `Target` to update.
+ * @param \Google\Protobuf\FieldMask $updateMask Required. Field mask is used to specify the fields to be overwritten in the
+ * Target 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. If the
+ * user does not provide a mask then all fields will be overwritten.
+ *
+ * @return \Google\Cloud\Deploy\V1\UpdateTargetRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\Deploy\V1\Target $target, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setTarget($target)
+ ->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
+ * Target 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. If the
+ * user does not provide a mask then all fields will be overwritten.
+ * @type \Google\Cloud\Deploy\V1\Target $target
+ * Required. The `Target` to update.
+ * @type string $request_id
+ * Optional. A 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).
+ * @type bool $allow_missing
+ * Optional. If set to true, updating a `Target` that does not exist will
+ * result in the creation of a new `Target`.
+ * @type bool $validate_only
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * Target 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. If the
+ * user does not provide a mask then all fields will be overwritten.
+ *
+ * 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
+ * Target 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. If the
+ * user does not provide a mask then all fields will be overwritten.
+ *
+ * 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 `Target` to update.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Target target = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Deploy\V1\Target|null
+ */
+ public function getTarget()
+ {
+ return $this->target;
+ }
+
+ public function hasTarget()
+ {
+ return isset($this->target);
+ }
+
+ public function clearTarget()
+ {
+ unset($this->target);
+ }
+
+ /**
+ * Required. The `Target` to update.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.Target target = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Deploy\V1\Target $var
+ * @return $this
+ */
+ public function setTarget($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Deploy\V1\Target::class);
+ $this->target = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A 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. A 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;
+ }
+
+ /**
+ * Optional. If set to true, updating a `Target` that does not exist will
+ * result in the creation of a new `Target`.
+ *
+ * Generated from protobuf field bool allow_missing = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getAllowMissing()
+ {
+ return $this->allow_missing;
+ }
+
+ /**
+ * Optional. If set to true, updating a `Target` that does not exist will
+ * result in the creation of a new `Target`.
+ *
+ * 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;
+ }
+
+ /**
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ *
+ * Generated from protobuf field bool validate_only = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getValidateOnly()
+ {
+ return $this->validate_only;
+ }
+
+ /**
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ *
+ * Generated from protobuf field bool validate_only = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setValidateOnly($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->validate_only = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/VerifyJob.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/VerifyJob.php
new file mode 100644
index 000000000000..acbf1fc38199
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/VerifyJob.php
@@ -0,0 +1,33 @@
+google.cloud.deploy.v1.VerifyJob
+ */
+class VerifyJob extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/VerifyJobRun.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/VerifyJobRun.php
new file mode 100644
index 000000000000..437fc9ef6c97
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/VerifyJobRun.php
@@ -0,0 +1,223 @@
+google.cloud.deploy.v1.VerifyJobRun
+ */
+class VerifyJobRun extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The resource name of the Cloud Build `Build` object that is
+ * used to verify. Format is
+ * projects/{project}/locations/{location}/builds/{build}.
+ *
+ * Generated from protobuf field string build = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ */
+ protected $build = '';
+ /**
+ * Output only. URI of a directory containing the verify artifacts. This
+ * contains the Skaffold event log.
+ *
+ * Generated from protobuf field string artifact_uri = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $artifact_uri = '';
+ /**
+ * Output only. File path of the Skaffold event log relative to the artifact
+ * URI.
+ *
+ * Generated from protobuf field string event_log_path = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $event_log_path = '';
+ /**
+ * Output only. The reason the verify failed. This will always be unspecified
+ * while the verify is in progress or if it succeeded.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.VerifyJobRun.FailureCause failure_cause = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $failure_cause = 0;
+ /**
+ * Output only. Additional information about the verify failure, if available.
+ *
+ * Generated from protobuf field string failure_message = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $failure_message = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $build
+ * Output only. The resource name of the Cloud Build `Build` object that is
+ * used to verify. Format is
+ * projects/{project}/locations/{location}/builds/{build}.
+ * @type string $artifact_uri
+ * Output only. URI of a directory containing the verify artifacts. This
+ * contains the Skaffold event log.
+ * @type string $event_log_path
+ * Output only. File path of the Skaffold event log relative to the artifact
+ * URI.
+ * @type int $failure_cause
+ * Output only. The reason the verify failed. This will always be unspecified
+ * while the verify is in progress or if it succeeded.
+ * @type string $failure_message
+ * Output only. Additional information about the verify failure, if available.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Deploy\V1\CloudDeploy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The resource name of the Cloud Build `Build` object that is
+ * used to verify. Format is
+ * projects/{project}/locations/{location}/builds/{build}.
+ *
+ * Generated from protobuf field string build = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getBuild()
+ {
+ return $this->build;
+ }
+
+ /**
+ * Output only. The resource name of the Cloud Build `Build` object that is
+ * used to verify. Format is
+ * projects/{project}/locations/{location}/builds/{build}.
+ *
+ * Generated from protobuf field string build = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setBuild($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->build = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. URI of a directory containing the verify artifacts. This
+ * contains the Skaffold event log.
+ *
+ * Generated from protobuf field string artifact_uri = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getArtifactUri()
+ {
+ return $this->artifact_uri;
+ }
+
+ /**
+ * Output only. URI of a directory containing the verify artifacts. This
+ * contains the Skaffold event log.
+ *
+ * Generated from protobuf field string artifact_uri = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setArtifactUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->artifact_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. File path of the Skaffold event log relative to the artifact
+ * URI.
+ *
+ * Generated from protobuf field string event_log_path = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getEventLogPath()
+ {
+ return $this->event_log_path;
+ }
+
+ /**
+ * Output only. File path of the Skaffold event log relative to the artifact
+ * URI.
+ *
+ * Generated from protobuf field string event_log_path = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setEventLogPath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->event_log_path = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The reason the verify failed. This will always be unspecified
+ * while the verify is in progress or if it succeeded.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.VerifyJobRun.FailureCause failure_cause = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getFailureCause()
+ {
+ return $this->failure_cause;
+ }
+
+ /**
+ * Output only. The reason the verify failed. This will always be unspecified
+ * while the verify is in progress or if it succeeded.
+ *
+ * Generated from protobuf field .google.cloud.deploy.v1.VerifyJobRun.FailureCause failure_cause = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setFailureCause($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Deploy\V1\VerifyJobRun\FailureCause::class);
+ $this->failure_cause = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Additional information about the verify failure, if available.
+ *
+ * Generated from protobuf field string failure_message = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getFailureMessage()
+ {
+ return $this->failure_message;
+ }
+
+ /**
+ * Output only. Additional information about the verify failure, if available.
+ *
+ * Generated from protobuf field string failure_message = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setFailureMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->failure_message = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/VerifyJobRun/FailureCause.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/VerifyJobRun/FailureCause.php
new file mode 100644
index 000000000000..69a935479c00
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/VerifyJobRun/FailureCause.php
@@ -0,0 +1,89 @@
+google.cloud.deploy.v1.VerifyJobRun.FailureCause
+ */
+class FailureCause
+{
+ /**
+ * No reason for failure is specified.
+ *
+ * Generated from protobuf enum FAILURE_CAUSE_UNSPECIFIED = 0;
+ */
+ const FAILURE_CAUSE_UNSPECIFIED = 0;
+ /**
+ * Cloud Build is not available, either because it is not enabled or because
+ * Google Cloud Deploy has insufficient permissions. See [required
+ * permission](/deploy/docs/cloud-deploy-service-account#required_permissions).
+ *
+ * Generated from protobuf enum CLOUD_BUILD_UNAVAILABLE = 1;
+ */
+ const CLOUD_BUILD_UNAVAILABLE = 1;
+ /**
+ * The verify operation did not complete successfully; check Cloud Build
+ * logs.
+ *
+ * Generated from protobuf enum EXECUTION_FAILED = 2;
+ */
+ const EXECUTION_FAILED = 2;
+ /**
+ * The verify build did not complete within the alloted time.
+ *
+ * Generated from protobuf enum DEADLINE_EXCEEDED = 3;
+ */
+ const DEADLINE_EXCEEDED = 3;
+ /**
+ * No Skaffold verify configuration was found.
+ *
+ * Generated from protobuf enum VERIFICATION_CONFIG_NOT_FOUND = 4;
+ */
+ const VERIFICATION_CONFIG_NOT_FOUND = 4;
+ /**
+ * Cloud Build failed to fulfill Google Cloud Deploy's request. See
+ * failure_message for additional details.
+ *
+ * Generated from protobuf enum CLOUD_BUILD_REQUEST_FAILED = 5;
+ */
+ const CLOUD_BUILD_REQUEST_FAILED = 5;
+
+ private static $valueToName = [
+ self::FAILURE_CAUSE_UNSPECIFIED => 'FAILURE_CAUSE_UNSPECIFIED',
+ self::CLOUD_BUILD_UNAVAILABLE => 'CLOUD_BUILD_UNAVAILABLE',
+ self::EXECUTION_FAILED => 'EXECUTION_FAILED',
+ self::DEADLINE_EXCEEDED => 'DEADLINE_EXCEEDED',
+ self::VERIFICATION_CONFIG_NOT_FOUND => 'VERIFICATION_CONFIG_NOT_FOUND',
+ self::CLOUD_BUILD_REQUEST_FAILED => 'CLOUD_BUILD_REQUEST_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(FailureCause::class, \Google\Cloud\Deploy\V1\VerifyJobRun_FailureCause::class);
+
diff --git a/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/VerifyJobRun_FailureCause.php b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/VerifyJobRun_FailureCause.php
new file mode 100644
index 000000000000..f8318b188409
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/proto/src/Google/Cloud/Deploy/V1/VerifyJobRun_FailureCause.php
@@ -0,0 +1,16 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var AbandonReleaseResponse $response */
+ $response = $cloudDeployClient->abandonRelease($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 = CloudDeployClient::releaseName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[DELIVERY_PIPELINE]',
+ '[RELEASE]'
+ );
+
+ abandon_release_sample($formattedName);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_AbandonRelease_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/advance_rollout.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/advance_rollout.php
new file mode 100644
index 000000000000..a4e29ebaa7fb
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/advance_rollout.php
@@ -0,0 +1,82 @@
+setName($formattedName)
+ ->setPhaseId($phaseId);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var AdvanceRolloutResponse $response */
+ $response = $cloudDeployClient->advanceRollout($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 = CloudDeployClient::rolloutName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[DELIVERY_PIPELINE]',
+ '[RELEASE]',
+ '[ROLLOUT]'
+ );
+ $phaseId = '[PHASE_ID]';
+
+ advance_rollout_sample($formattedName, $phaseId);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_AdvanceRollout_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/approve_rollout.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/approve_rollout.php
new file mode 100644
index 000000000000..5ae0a873eac5
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/approve_rollout.php
@@ -0,0 +1,82 @@
+setName($formattedName)
+ ->setApproved($approved);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var ApproveRolloutResponse $response */
+ $response = $cloudDeployClient->approveRollout($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 = CloudDeployClient::rolloutName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[DELIVERY_PIPELINE]',
+ '[RELEASE]',
+ '[ROLLOUT]'
+ );
+ $approved = false;
+
+ approve_rollout_sample($formattedName, $approved);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_ApproveRollout_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/cancel_rollout.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/cancel_rollout.php
new file mode 100644
index 000000000000..2f06b27d86a9
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/cancel_rollout.php
@@ -0,0 +1,79 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var CancelRolloutResponse $response */
+ $response = $cloudDeployClient->cancelRollout($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 = CloudDeployClient::rolloutName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[DELIVERY_PIPELINE]',
+ '[RELEASE]',
+ '[ROLLOUT]'
+ );
+
+ cancel_rollout_sample($formattedName);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_CancelRollout_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/create_delivery_pipeline.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/create_delivery_pipeline.php
new file mode 100644
index 000000000000..a26bec51e083
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/create_delivery_pipeline.php
@@ -0,0 +1,91 @@
+setParent($formattedParent)
+ ->setDeliveryPipelineId($deliveryPipelineId)
+ ->setDeliveryPipeline($deliveryPipeline);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $cloudDeployClient->createDeliveryPipeline($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var DeliveryPipeline $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 = CloudDeployClient::locationName('[PROJECT]', '[LOCATION]');
+ $deliveryPipelineId = '[DELIVERY_PIPELINE_ID]';
+
+ create_delivery_pipeline_sample($formattedParent, $deliveryPipelineId);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_CreateDeliveryPipeline_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/create_release.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/create_release.php
new file mode 100644
index 000000000000..563be0fbcd84
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/create_release.php
@@ -0,0 +1,94 @@
+setParent($formattedParent)
+ ->setReleaseId($releaseId)
+ ->setRelease($release);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $cloudDeployClient->createRelease($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Release $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 = CloudDeployClient::deliveryPipelineName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[DELIVERY_PIPELINE]'
+ );
+ $releaseId = '[RELEASE_ID]';
+
+ create_release_sample($formattedParent, $releaseId);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_CreateRelease_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/create_rollout.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/create_rollout.php
new file mode 100644
index 000000000000..ae484462fffe
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/create_rollout.php
@@ -0,0 +1,101 @@
+setTargetId($rolloutTargetId);
+ $request = (new CreateRolloutRequest())
+ ->setParent($formattedParent)
+ ->setRolloutId($rolloutId)
+ ->setRollout($rollout);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $cloudDeployClient->createRollout($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Rollout $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 = CloudDeployClient::releaseName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[DELIVERY_PIPELINE]',
+ '[RELEASE]'
+ );
+ $rolloutId = '[ROLLOUT_ID]';
+ $rolloutTargetId = '[TARGET_ID]';
+
+ create_rollout_sample($formattedParent, $rolloutId, $rolloutTargetId);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_CreateRollout_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/create_target.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/create_target.php
new file mode 100644
index 000000000000..d03d1b7bb13f
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/create_target.php
@@ -0,0 +1,90 @@
+setParent($formattedParent)
+ ->setTargetId($targetId)
+ ->setTarget($target);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $cloudDeployClient->createTarget($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Target $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 = CloudDeployClient::locationName('[PROJECT]', '[LOCATION]');
+ $targetId = '[TARGET_ID]';
+
+ create_target_sample($formattedParent, $targetId);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_CreateTarget_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/delete_delivery_pipeline.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/delete_delivery_pipeline.php
new file mode 100644
index 000000000000..d79c0138ee87
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/delete_delivery_pipeline.php
@@ -0,0 +1,85 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $cloudDeployClient->deleteDeliveryPipeline($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 = CloudDeployClient::deliveryPipelineName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[DELIVERY_PIPELINE]'
+ );
+
+ delete_delivery_pipeline_sample($formattedName);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_DeleteDeliveryPipeline_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/delete_target.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/delete_target.php
new file mode 100644
index 000000000000..df9b66eef67d
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/delete_target.php
@@ -0,0 +1,81 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $cloudDeployClient->deleteTarget($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 = CloudDeployClient::targetName('[PROJECT]', '[LOCATION]', '[TARGET]');
+
+ delete_target_sample($formattedName);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_DeleteTarget_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/get_config.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/get_config.php
new file mode 100644
index 000000000000..a269e5595f58
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/get_config.php
@@ -0,0 +1,71 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Config $response */
+ $response = $cloudDeployClient->getConfig($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 = CloudDeployClient::configName('[PROJECT]', '[LOCATION]');
+
+ get_config_sample($formattedName);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_GetConfig_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/get_delivery_pipeline.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/get_delivery_pipeline.php
new file mode 100644
index 000000000000..5440e2bdc524
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/get_delivery_pipeline.php
@@ -0,0 +1,76 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var DeliveryPipeline $response */
+ $response = $cloudDeployClient->getDeliveryPipeline($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 = CloudDeployClient::deliveryPipelineName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[DELIVERY_PIPELINE]'
+ );
+
+ get_delivery_pipeline_sample($formattedName);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_GetDeliveryPipeline_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/get_iam_policy.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/get_iam_policy.php
new file mode 100644
index 000000000000..2940566b5141
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/get_iam_policy.php
@@ -0,0 +1,72 @@
+setResource($resource);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Policy $response */
+ $response = $cloudDeployClient->getIamPolicy($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
+{
+ $resource = '[RESOURCE]';
+
+ get_iam_policy_sample($resource);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_GetIamPolicy_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/get_job_run.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/get_job_run.php
new file mode 100644
index 000000000000..7927e3aff505
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/get_job_run.php
@@ -0,0 +1,79 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var JobRun $response */
+ $response = $cloudDeployClient->getJobRun($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 = CloudDeployClient::jobRunName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[DELIVERY_PIPELINE]',
+ '[RELEASE]',
+ '[ROLLOUT]',
+ '[JOB_RUN]'
+ );
+
+ get_job_run_sample($formattedName);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_GetJobRun_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/get_location.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/get_location.php
new file mode 100644
index 000000000000..59b30bd9c437
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/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 clouddeploy_v1_generated_CloudDeploy_GetLocation_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/get_release.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/get_release.php
new file mode 100644
index 000000000000..f35d172fab87
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/get_release.php
@@ -0,0 +1,77 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Release $response */
+ $response = $cloudDeployClient->getRelease($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 = CloudDeployClient::releaseName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[DELIVERY_PIPELINE]',
+ '[RELEASE]'
+ );
+
+ get_release_sample($formattedName);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_GetRelease_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/get_rollout.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/get_rollout.php
new file mode 100644
index 000000000000..ea3f1bc77495
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/get_rollout.php
@@ -0,0 +1,78 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Rollout $response */
+ $response = $cloudDeployClient->getRollout($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 = CloudDeployClient::rolloutName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[DELIVERY_PIPELINE]',
+ '[RELEASE]',
+ '[ROLLOUT]'
+ );
+
+ get_rollout_sample($formattedName);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_GetRollout_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/get_target.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/get_target.php
new file mode 100644
index 000000000000..98a80dca2417
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/get_target.php
@@ -0,0 +1,72 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Target $response */
+ $response = $cloudDeployClient->getTarget($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 = CloudDeployClient::targetName('[PROJECT]', '[LOCATION]', '[TARGET]');
+
+ get_target_sample($formattedName);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_GetTarget_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/ignore_job.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/ignore_job.php
new file mode 100644
index 000000000000..a6299b104e6e
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/ignore_job.php
@@ -0,0 +1,85 @@
+setRollout($formattedRollout)
+ ->setPhaseId($phaseId)
+ ->setJobId($jobId);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var IgnoreJobResponse $response */
+ $response = $cloudDeployClient->ignoreJob($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
+{
+ $formattedRollout = CloudDeployClient::rolloutName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[DELIVERY_PIPELINE]',
+ '[RELEASE]',
+ '[ROLLOUT]'
+ );
+ $phaseId = '[PHASE_ID]';
+ $jobId = '[JOB_ID]';
+
+ ignore_job_sample($formattedRollout, $phaseId, $jobId);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_IgnoreJob_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/list_delivery_pipelines.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/list_delivery_pipelines.php
new file mode 100644
index 000000000000..f99c9bbfee1e
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/list_delivery_pipelines.php
@@ -0,0 +1,77 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $cloudDeployClient->listDeliveryPipelines($request);
+
+ /** @var DeliveryPipeline $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 = CloudDeployClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_delivery_pipelines_sample($formattedParent);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_ListDeliveryPipelines_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/list_job_runs.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/list_job_runs.php
new file mode 100644
index 000000000000..65da0912cc2f
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/list_job_runs.php
@@ -0,0 +1,82 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $cloudDeployClient->listJobRuns($request);
+
+ /** @var JobRun $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 = CloudDeployClient::rolloutName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[DELIVERY_PIPELINE]',
+ '[RELEASE]',
+ '[ROLLOUT]'
+ );
+
+ list_job_runs_sample($formattedParent);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_ListJobRuns_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/list_locations.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/list_locations.php
new file mode 100644
index 000000000000..a02df383f065
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/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 clouddeploy_v1_generated_CloudDeploy_ListLocations_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/list_releases.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/list_releases.php
new file mode 100644
index 000000000000..36d8f75565b0
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/list_releases.php
@@ -0,0 +1,81 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $cloudDeployClient->listReleases($request);
+
+ /** @var Release $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 = CloudDeployClient::deliveryPipelineName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[DELIVERY_PIPELINE]'
+ );
+
+ list_releases_sample($formattedParent);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_ListReleases_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/list_rollouts.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/list_rollouts.php
new file mode 100644
index 000000000000..b61507443d85
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/list_rollouts.php
@@ -0,0 +1,81 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $cloudDeployClient->listRollouts($request);
+
+ /** @var Rollout $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 = CloudDeployClient::releaseName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[DELIVERY_PIPELINE]',
+ '[RELEASE]'
+ );
+
+ list_rollouts_sample($formattedParent);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_ListRollouts_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/list_targets.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/list_targets.php
new file mode 100644
index 000000000000..b3cb73a00b8f
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/list_targets.php
@@ -0,0 +1,77 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $cloudDeployClient->listTargets($request);
+
+ /** @var Target $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 = CloudDeployClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_targets_sample($formattedParent);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_ListTargets_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/retry_job.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/retry_job.php
new file mode 100644
index 000000000000..35cf108e6fd1
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/retry_job.php
@@ -0,0 +1,85 @@
+setRollout($formattedRollout)
+ ->setPhaseId($phaseId)
+ ->setJobId($jobId);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var RetryJobResponse $response */
+ $response = $cloudDeployClient->retryJob($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
+{
+ $formattedRollout = CloudDeployClient::rolloutName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[DELIVERY_PIPELINE]',
+ '[RELEASE]',
+ '[ROLLOUT]'
+ );
+ $phaseId = '[PHASE_ID]';
+ $jobId = '[JOB_ID]';
+
+ retry_job_sample($formattedRollout, $phaseId, $jobId);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_RetryJob_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/set_iam_policy.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/set_iam_policy.php
new file mode 100644
index 000000000000..5387074d734f
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/set_iam_policy.php
@@ -0,0 +1,77 @@
+setResource($resource)
+ ->setPolicy($policy);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Policy $response */
+ $response = $cloudDeployClient->setIamPolicy($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
+{
+ $resource = '[RESOURCE]';
+
+ set_iam_policy_sample($resource);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_SetIamPolicy_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/terminate_job_run.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/terminate_job_run.php
new file mode 100644
index 000000000000..8be2add33f13
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/terminate_job_run.php
@@ -0,0 +1,80 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var TerminateJobRunResponse $response */
+ $response = $cloudDeployClient->terminateJobRun($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 = CloudDeployClient::jobRunName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[DELIVERY_PIPELINE]',
+ '[RELEASE]',
+ '[ROLLOUT]',
+ '[JOB_RUN]'
+ );
+
+ terminate_job_run_sample($formattedName);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_TerminateJobRun_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/test_iam_permissions.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/test_iam_permissions.php
new file mode 100644
index 000000000000..7681012d764e
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/test_iam_permissions.php
@@ -0,0 +1,84 @@
+setResource($resource)
+ ->setPermissions($permissions);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var TestIamPermissionsResponse $response */
+ $response = $cloudDeployClient->testIamPermissions($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
+{
+ $resource = '[RESOURCE]';
+ $permissionsElement = '[PERMISSIONS]';
+
+ test_iam_permissions_sample($resource, $permissionsElement);
+}
+// [END clouddeploy_v1_generated_CloudDeploy_TestIamPermissions_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/update_delivery_pipeline.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/update_delivery_pipeline.php
new file mode 100644
index 000000000000..406f40ab7955
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/update_delivery_pipeline.php
@@ -0,0 +1,74 @@
+setUpdateMask($updateMask)
+ ->setDeliveryPipeline($deliveryPipeline);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $cloudDeployClient->updateDeliveryPipeline($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var DeliveryPipeline $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 clouddeploy_v1_generated_CloudDeploy_UpdateDeliveryPipeline_sync]
diff --git a/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/update_target.php b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/update_target.php
new file mode 100644
index 000000000000..228f9d74d35e
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/samples/V1/CloudDeployClient/update_target.php
@@ -0,0 +1,74 @@
+setUpdateMask($updateMask)
+ ->setTarget($target);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $cloudDeployClient->updateTarget($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Target $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 clouddeploy_v1_generated_CloudDeploy_UpdateTarget_sync]
diff --git a/owl-bot-staging/Deploy/v1/src/V1/Client/BaseClient/CloudDeployBaseClient.php b/owl-bot-staging/Deploy/v1/src/V1/Client/BaseClient/CloudDeployBaseClient.php
new file mode 100644
index 000000000000..94001d9d0a8c
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/src/V1/Client/BaseClient/CloudDeployBaseClient.php
@@ -0,0 +1,1307 @@
+ self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../../resources/cloud_deploy_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../../resources/cloud_deploy_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../../resources/cloud_deploy_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../../resources/cloud_deploy_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;
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a build
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $build
+ *
+ * @return string The formatted build resource.
+ */
+ public static function buildName(string $project, string $location, string $build): string
+ {
+ return self::getPathTemplate('build')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'build' => $build,
+ ]);
+ }
+
+ /**
+ * 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 config
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ *
+ * @return string The formatted config resource.
+ */
+ public static function configName(string $project, string $location): string
+ {
+ return self::getPathTemplate('config')->render([
+ 'project' => $project,
+ 'location' => $location,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * delivery_pipeline resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $deliveryPipeline
+ *
+ * @return string The formatted delivery_pipeline resource.
+ */
+ public static function deliveryPipelineName(string $project, string $location, string $deliveryPipeline): string
+ {
+ return self::getPathTemplate('deliveryPipeline')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'delivery_pipeline' => $deliveryPipeline,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a job_run
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $deliveryPipeline
+ * @param string $release
+ * @param string $rollout
+ * @param string $jobRun
+ *
+ * @return string The formatted job_run resource.
+ */
+ public static function jobRunName(string $project, string $location, string $deliveryPipeline, string $release, string $rollout, string $jobRun): string
+ {
+ return self::getPathTemplate('jobRun')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'delivery_pipeline' => $deliveryPipeline,
+ 'release' => $release,
+ 'rollout' => $rollout,
+ 'job_run' => $jobRun,
+ ]);
+ }
+
+ /**
+ * 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 membership
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $membership
+ *
+ * @return string The formatted membership resource.
+ */
+ public static function membershipName(string $project, string $location, string $membership): string
+ {
+ return self::getPathTemplate('membership')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'membership' => $membership,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a release
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $deliveryPipeline
+ * @param string $release
+ *
+ * @return string The formatted release resource.
+ */
+ public static function releaseName(string $project, string $location, string $deliveryPipeline, string $release): string
+ {
+ return self::getPathTemplate('release')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'delivery_pipeline' => $deliveryPipeline,
+ 'release' => $release,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a rollout
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $deliveryPipeline
+ * @param string $release
+ * @param string $rollout
+ *
+ * @return string The formatted rollout resource.
+ */
+ public static function rolloutName(string $project, string $location, string $deliveryPipeline, string $release, string $rollout): string
+ {
+ return self::getPathTemplate('rollout')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'delivery_pipeline' => $deliveryPipeline,
+ 'release' => $release,
+ 'rollout' => $rollout,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a service
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $service
+ *
+ * @return string The formatted service resource.
+ */
+ public static function serviceName(string $project, string $location, string $service): string
+ {
+ return self::getPathTemplate('service')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'service' => $service,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a target
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $target
+ *
+ * @return string The formatted target resource.
+ */
+ public static function targetName(string $project, string $location, string $target): string
+ {
+ return self::getPathTemplate('target')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'target' => $target,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a worker_pool
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $workerPool
+ *
+ * @return string The formatted worker_pool resource.
+ */
+ public static function workerPoolName(string $project, string $location, string $workerPool): string
+ {
+ return self::getPathTemplate('workerPool')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'worker_pool' => $workerPool,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - build: projects/{project}/locations/{location}/builds/{build}
+ * - cluster: projects/{project}/locations/{location}/clusters/{cluster}
+ * - config: projects/{project}/locations/{location}/config
+ * - deliveryPipeline: projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}
+ * - jobRun: projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/releases/{release}/rollouts/{rollout}/jobRuns/{job_run}
+ * - location: projects/{project}/locations/{location}
+ * - membership: projects/{project}/locations/{location}/memberships/{membership}
+ * - release: projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/releases/{release}
+ * - rollout: projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/releases/{release}/rollouts/{rollout}
+ * - service: projects/{project}/locations/{location}/services/{service}
+ * - target: projects/{project}/locations/{location}/targets/{target}
+ * - workerPool: projects/{project}/locations/{location}/workerPools/{worker_pool}
+ *
+ * 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 'clouddeploy.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
+ */
+ 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);
+ }
+
+ /**
+ * Abandons a Release in the Delivery Pipeline.
+ *
+ * The async variant is {@see self::abandonReleaseAsync()} .
+ *
+ * @param AbandonReleaseRequest $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 AbandonReleaseResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function abandonRelease(AbandonReleaseRequest $request, array $callOptions = []): AbandonReleaseResponse
+ {
+ return $this->startApiCall('AbandonRelease', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Advances a Rollout in a given project and location.
+ *
+ * The async variant is {@see self::advanceRolloutAsync()} .
+ *
+ * @param AdvanceRolloutRequest $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 AdvanceRolloutResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function advanceRollout(AdvanceRolloutRequest $request, array $callOptions = []): AdvanceRolloutResponse
+ {
+ return $this->startApiCall('AdvanceRollout', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Approves a Rollout.
+ *
+ * The async variant is {@see self::approveRolloutAsync()} .
+ *
+ * @param ApproveRolloutRequest $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 ApproveRolloutResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function approveRollout(ApproveRolloutRequest $request, array $callOptions = []): ApproveRolloutResponse
+ {
+ return $this->startApiCall('ApproveRollout', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Cancels a Rollout in a given project and location.
+ *
+ * The async variant is {@see self::cancelRolloutAsync()} .
+ *
+ * @param CancelRolloutRequest $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 CancelRolloutResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function cancelRollout(CancelRolloutRequest $request, array $callOptions = []): CancelRolloutResponse
+ {
+ return $this->startApiCall('CancelRollout', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates a new DeliveryPipeline in a given project and location.
+ *
+ * The async variant is {@see self::createDeliveryPipelineAsync()} .
+ *
+ * @param CreateDeliveryPipelineRequest $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 createDeliveryPipeline(CreateDeliveryPipelineRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('CreateDeliveryPipeline', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates a new Release in a given project and location.
+ *
+ * The async variant is {@see self::createReleaseAsync()} .
+ *
+ * @param CreateReleaseRequest $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 createRelease(CreateReleaseRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('CreateRelease', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates a new Rollout in a given project and location.
+ *
+ * The async variant is {@see self::createRolloutAsync()} .
+ *
+ * @param CreateRolloutRequest $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 createRollout(CreateRolloutRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('CreateRollout', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates a new Target in a given project and location.
+ *
+ * The async variant is {@see self::createTargetAsync()} .
+ *
+ * @param CreateTargetRequest $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 createTarget(CreateTargetRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('CreateTarget', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a single DeliveryPipeline.
+ *
+ * The async variant is {@see self::deleteDeliveryPipelineAsync()} .
+ *
+ * @param DeleteDeliveryPipelineRequest $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 deleteDeliveryPipeline(DeleteDeliveryPipelineRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('DeleteDeliveryPipeline', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a single Target.
+ *
+ * The async variant is {@see self::deleteTargetAsync()} .
+ *
+ * @param DeleteTargetRequest $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 deleteTarget(DeleteTargetRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('DeleteTarget', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets the configuration for a location.
+ *
+ * The async variant is {@see self::getConfigAsync()} .
+ *
+ * @param GetConfigRequest $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 Config
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getConfig(GetConfigRequest $request, array $callOptions = []): Config
+ {
+ return $this->startApiCall('GetConfig', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets details of a single DeliveryPipeline.
+ *
+ * The async variant is {@see self::getDeliveryPipelineAsync()} .
+ *
+ * @param GetDeliveryPipelineRequest $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 DeliveryPipeline
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getDeliveryPipeline(GetDeliveryPipelineRequest $request, array $callOptions = []): DeliveryPipeline
+ {
+ return $this->startApiCall('GetDeliveryPipeline', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets details of a single JobRun.
+ *
+ * The async variant is {@see self::getJobRunAsync()} .
+ *
+ * @param GetJobRunRequest $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 JobRun
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getJobRun(GetJobRunRequest $request, array $callOptions = []): JobRun
+ {
+ return $this->startApiCall('GetJobRun', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets details of a single Release.
+ *
+ * The async variant is {@see self::getReleaseAsync()} .
+ *
+ * @param GetReleaseRequest $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 Release
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getRelease(GetReleaseRequest $request, array $callOptions = []): Release
+ {
+ return $this->startApiCall('GetRelease', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets details of a single Rollout.
+ *
+ * The async variant is {@see self::getRolloutAsync()} .
+ *
+ * @param GetRolloutRequest $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 Rollout
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getRollout(GetRolloutRequest $request, array $callOptions = []): Rollout
+ {
+ return $this->startApiCall('GetRollout', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets details of a single Target.
+ *
+ * The async variant is {@see self::getTargetAsync()} .
+ *
+ * @param GetTargetRequest $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 Target
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getTarget(GetTargetRequest $request, array $callOptions = []): Target
+ {
+ return $this->startApiCall('GetTarget', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Ignores the specified Job in a Rollout.
+ *
+ * The async variant is {@see self::ignoreJobAsync()} .
+ *
+ * @param IgnoreJobRequest $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 IgnoreJobResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function ignoreJob(IgnoreJobRequest $request, array $callOptions = []): IgnoreJobResponse
+ {
+ return $this->startApiCall('IgnoreJob', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Lists DeliveryPipelines in a given project and location.
+ *
+ * The async variant is {@see self::listDeliveryPipelinesAsync()} .
+ *
+ * @param ListDeliveryPipelinesRequest $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 listDeliveryPipelines(ListDeliveryPipelinesRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListDeliveryPipelines', $request, $callOptions);
+ }
+
+ /**
+ * Lists JobRuns in a given project and location.
+ *
+ * The async variant is {@see self::listJobRunsAsync()} .
+ *
+ * @param ListJobRunsRequest $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 listJobRuns(ListJobRunsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListJobRuns', $request, $callOptions);
+ }
+
+ /**
+ * Lists Releases in a given project and location.
+ *
+ * The async variant is {@see self::listReleasesAsync()} .
+ *
+ * @param ListReleasesRequest $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 listReleases(ListReleasesRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListReleases', $request, $callOptions);
+ }
+
+ /**
+ * Lists Rollouts in a given project and location.
+ *
+ * The async variant is {@see self::listRolloutsAsync()} .
+ *
+ * @param ListRolloutsRequest $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 listRollouts(ListRolloutsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListRollouts', $request, $callOptions);
+ }
+
+ /**
+ * Lists Targets in a given project and location.
+ *
+ * The async variant is {@see self::listTargetsAsync()} .
+ *
+ * @param ListTargetsRequest $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 listTargets(ListTargetsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListTargets', $request, $callOptions);
+ }
+
+ /**
+ * Retries the specified Job in a Rollout.
+ *
+ * The async variant is {@see self::retryJobAsync()} .
+ *
+ * @param RetryJobRequest $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 RetryJobResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function retryJob(RetryJobRequest $request, array $callOptions = []): RetryJobResponse
+ {
+ return $this->startApiCall('RetryJob', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Terminates a Job Run in a given project and location.
+ *
+ * The async variant is {@see self::terminateJobRunAsync()} .
+ *
+ * @param TerminateJobRunRequest $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 TerminateJobRunResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function terminateJobRun(TerminateJobRunRequest $request, array $callOptions = []): TerminateJobRunResponse
+ {
+ return $this->startApiCall('TerminateJobRun', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates the parameters of a single DeliveryPipeline.
+ *
+ * The async variant is {@see self::updateDeliveryPipelineAsync()} .
+ *
+ * @param UpdateDeliveryPipelineRequest $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 updateDeliveryPipeline(UpdateDeliveryPipelineRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('UpdateDeliveryPipeline', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates the parameters of a single Target.
+ *
+ * The async variant is {@see self::updateTargetAsync()} .
+ *
+ * @param UpdateTargetRequest $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 updateTarget(UpdateTargetRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('UpdateTarget', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets information about a location.
+ *
+ * The async variant is {@see self::getLocationAsync()} .
+ *
+ * @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 self::listLocationsAsync()} .
+ *
+ * @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);
+ }
+
+ /**
+ * Gets the access control policy for a resource. Returns an empty policy
+ if the resource exists and does not have a policy set.
+ *
+ * The async variant is {@see self::getIamPolicyAsync()} .
+ *
+ * @param GetIamPolicyRequest $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 Policy
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getIamPolicy(GetIamPolicyRequest $request, array $callOptions = []): Policy
+ {
+ return $this->startApiCall('GetIamPolicy', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Sets the access control policy on the specified resource. Replaces
+ any existing policy.
+
+ Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
+ errors.
+ *
+ * The async variant is {@see self::setIamPolicyAsync()} .
+ *
+ * @param SetIamPolicyRequest $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 Policy
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function setIamPolicy(SetIamPolicyRequest $request, array $callOptions = []): Policy
+ {
+ return $this->startApiCall('SetIamPolicy', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Returns permissions that a caller has on the specified resource. If the
+ resource does not exist, this will return an empty set of
+ permissions, not a `NOT_FOUND` error.
+
+ Note: This operation is designed to be used for building
+ permission-aware UIs and command-line tools, not for authorization
+ checking. This operation may "fail open" without warning.
+ *
+ * The async variant is {@see self::testIamPermissionsAsync()} .
+ *
+ * @param TestIamPermissionsRequest $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 TestIamPermissionsResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function testIamPermissions(TestIamPermissionsRequest $request, array $callOptions = []): TestIamPermissionsResponse
+ {
+ return $this->startApiCall('TestIamPermissions', $request, $callOptions)->wait();
+ }
+}
diff --git a/owl-bot-staging/Deploy/v1/src/V1/Client/CloudDeployClient.php b/owl-bot-staging/Deploy/v1/src/V1/Client/CloudDeployClient.php
new file mode 100644
index 000000000000..56001b0b4c94
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/src/V1/Client/CloudDeployClient.php
@@ -0,0 +1,40 @@
+releaseName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]');
+ * $response = $cloudDeployClient->abandonRelease($formattedName);
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * Many parameters require resource names to be formatted in a particular way. To
+ * assist with these names, this class includes a format method for each type of
+ * name, and additionally a parseName method to extract the individual identifiers
+ * contained within formatted names that are returned by the API.
+ */
+class CloudDeployGapicClient
+{
+ use GapicClientTrait;
+
+ /** The name of the service. */
+ const SERVICE_NAME = 'google.cloud.deploy.v1.CloudDeploy';
+
+ /** The default address of the service. */
+ const SERVICE_ADDRESS = 'clouddeploy.googleapis.com';
+
+ /** 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 $buildNameTemplate;
+
+ private static $clusterNameTemplate;
+
+ private static $configNameTemplate;
+
+ private static $deliveryPipelineNameTemplate;
+
+ private static $jobRunNameTemplate;
+
+ private static $locationNameTemplate;
+
+ private static $membershipNameTemplate;
+
+ private static $releaseNameTemplate;
+
+ private static $rolloutNameTemplate;
+
+ private static $serviceNameTemplate;
+
+ private static $targetNameTemplate;
+
+ private static $workerPoolNameTemplate;
+
+ private static $pathTemplateMap;
+
+ private $operationsClient;
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/cloud_deploy_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/cloud_deploy_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/cloud_deploy_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/cloud_deploy_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ private static function getBuildNameTemplate()
+ {
+ if (self::$buildNameTemplate == null) {
+ self::$buildNameTemplate = new PathTemplate('projects/{project}/locations/{location}/builds/{build}');
+ }
+
+ return self::$buildNameTemplate;
+ }
+
+ private static function getClusterNameTemplate()
+ {
+ if (self::$clusterNameTemplate == null) {
+ self::$clusterNameTemplate = new PathTemplate('projects/{project}/locations/{location}/clusters/{cluster}');
+ }
+
+ return self::$clusterNameTemplate;
+ }
+
+ private static function getConfigNameTemplate()
+ {
+ if (self::$configNameTemplate == null) {
+ self::$configNameTemplate = new PathTemplate('projects/{project}/locations/{location}/config');
+ }
+
+ return self::$configNameTemplate;
+ }
+
+ private static function getDeliveryPipelineNameTemplate()
+ {
+ if (self::$deliveryPipelineNameTemplate == null) {
+ self::$deliveryPipelineNameTemplate = new PathTemplate('projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}');
+ }
+
+ return self::$deliveryPipelineNameTemplate;
+ }
+
+ private static function getJobRunNameTemplate()
+ {
+ if (self::$jobRunNameTemplate == null) {
+ self::$jobRunNameTemplate = new PathTemplate('projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/releases/{release}/rollouts/{rollout}/jobRuns/{job_run}');
+ }
+
+ return self::$jobRunNameTemplate;
+ }
+
+ private static function getLocationNameTemplate()
+ {
+ if (self::$locationNameTemplate == null) {
+ self::$locationNameTemplate = new PathTemplate('projects/{project}/locations/{location}');
+ }
+
+ return self::$locationNameTemplate;
+ }
+
+ private static function getMembershipNameTemplate()
+ {
+ if (self::$membershipNameTemplate == null) {
+ self::$membershipNameTemplate = new PathTemplate('projects/{project}/locations/{location}/memberships/{membership}');
+ }
+
+ return self::$membershipNameTemplate;
+ }
+
+ private static function getReleaseNameTemplate()
+ {
+ if (self::$releaseNameTemplate == null) {
+ self::$releaseNameTemplate = new PathTemplate('projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/releases/{release}');
+ }
+
+ return self::$releaseNameTemplate;
+ }
+
+ private static function getRolloutNameTemplate()
+ {
+ if (self::$rolloutNameTemplate == null) {
+ self::$rolloutNameTemplate = new PathTemplate('projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/releases/{release}/rollouts/{rollout}');
+ }
+
+ return self::$rolloutNameTemplate;
+ }
+
+ private static function getServiceNameTemplate()
+ {
+ if (self::$serviceNameTemplate == null) {
+ self::$serviceNameTemplate = new PathTemplate('projects/{project}/locations/{location}/services/{service}');
+ }
+
+ return self::$serviceNameTemplate;
+ }
+
+ private static function getTargetNameTemplate()
+ {
+ if (self::$targetNameTemplate == null) {
+ self::$targetNameTemplate = new PathTemplate('projects/{project}/locations/{location}/targets/{target}');
+ }
+
+ return self::$targetNameTemplate;
+ }
+
+ private static function getWorkerPoolNameTemplate()
+ {
+ if (self::$workerPoolNameTemplate == null) {
+ self::$workerPoolNameTemplate = new PathTemplate('projects/{project}/locations/{location}/workerPools/{worker_pool}');
+ }
+
+ return self::$workerPoolNameTemplate;
+ }
+
+ private static function getPathTemplateMap()
+ {
+ if (self::$pathTemplateMap == null) {
+ self::$pathTemplateMap = [
+ 'build' => self::getBuildNameTemplate(),
+ 'cluster' => self::getClusterNameTemplate(),
+ 'config' => self::getConfigNameTemplate(),
+ 'deliveryPipeline' => self::getDeliveryPipelineNameTemplate(),
+ 'jobRun' => self::getJobRunNameTemplate(),
+ 'location' => self::getLocationNameTemplate(),
+ 'membership' => self::getMembershipNameTemplate(),
+ 'release' => self::getReleaseNameTemplate(),
+ 'rollout' => self::getRolloutNameTemplate(),
+ 'service' => self::getServiceNameTemplate(),
+ 'target' => self::getTargetNameTemplate(),
+ 'workerPool' => self::getWorkerPoolNameTemplate(),
+ ];
+ }
+
+ return self::$pathTemplateMap;
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a build
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $build
+ *
+ * @return string The formatted build resource.
+ */
+ public static function buildName($project, $location, $build)
+ {
+ return self::getBuildNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'build' => $build,
+ ]);
+ }
+
+ /**
+ * 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($project, $location, $cluster)
+ {
+ return self::getClusterNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'cluster' => $cluster,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a config
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ *
+ * @return string The formatted config resource.
+ */
+ public static function configName($project, $location)
+ {
+ return self::getConfigNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * delivery_pipeline resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $deliveryPipeline
+ *
+ * @return string The formatted delivery_pipeline resource.
+ */
+ public static function deliveryPipelineName($project, $location, $deliveryPipeline)
+ {
+ return self::getDeliveryPipelineNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'delivery_pipeline' => $deliveryPipeline,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a job_run
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $deliveryPipeline
+ * @param string $release
+ * @param string $rollout
+ * @param string $jobRun
+ *
+ * @return string The formatted job_run resource.
+ */
+ public static function jobRunName($project, $location, $deliveryPipeline, $release, $rollout, $jobRun)
+ {
+ return self::getJobRunNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'delivery_pipeline' => $deliveryPipeline,
+ 'release' => $release,
+ 'rollout' => $rollout,
+ 'job_run' => $jobRun,
+ ]);
+ }
+
+ /**
+ * 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($project, $location)
+ {
+ return self::getLocationNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a membership
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $membership
+ *
+ * @return string The formatted membership resource.
+ */
+ public static function membershipName($project, $location, $membership)
+ {
+ return self::getMembershipNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'membership' => $membership,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a release
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $deliveryPipeline
+ * @param string $release
+ *
+ * @return string The formatted release resource.
+ */
+ public static function releaseName($project, $location, $deliveryPipeline, $release)
+ {
+ return self::getReleaseNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'delivery_pipeline' => $deliveryPipeline,
+ 'release' => $release,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a rollout
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $deliveryPipeline
+ * @param string $release
+ * @param string $rollout
+ *
+ * @return string The formatted rollout resource.
+ */
+ public static function rolloutName($project, $location, $deliveryPipeline, $release, $rollout)
+ {
+ return self::getRolloutNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'delivery_pipeline' => $deliveryPipeline,
+ 'release' => $release,
+ 'rollout' => $rollout,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a service
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $service
+ *
+ * @return string The formatted service resource.
+ */
+ public static function serviceName($project, $location, $service)
+ {
+ return self::getServiceNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'service' => $service,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a target
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $target
+ *
+ * @return string The formatted target resource.
+ */
+ public static function targetName($project, $location, $target)
+ {
+ return self::getTargetNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'target' => $target,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a worker_pool
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $workerPool
+ *
+ * @return string The formatted worker_pool resource.
+ */
+ public static function workerPoolName($project, $location, $workerPool)
+ {
+ return self::getWorkerPoolNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'worker_pool' => $workerPool,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - build: projects/{project}/locations/{location}/builds/{build}
+ * - cluster: projects/{project}/locations/{location}/clusters/{cluster}
+ * - config: projects/{project}/locations/{location}/config
+ * - deliveryPipeline: projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}
+ * - jobRun: projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/releases/{release}/rollouts/{rollout}/jobRuns/{job_run}
+ * - location: projects/{project}/locations/{location}
+ * - membership: projects/{project}/locations/{location}/memberships/{membership}
+ * - release: projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/releases/{release}
+ * - rollout: projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/releases/{release}/rollouts/{rollout}
+ * - service: projects/{project}/locations/{location}/services/{service}
+ * - target: projects/{project}/locations/{location}/targets/{target}
+ * - workerPool: projects/{project}/locations/{location}/workerPools/{worker_pool}
+ *
+ * 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($formattedName, $template = null)
+ {
+ $templateMap = self::getPathTemplateMap();
+ if ($template) {
+ if (!isset($templateMap[$template])) {
+ throw new ValidationException("Template name $template does not exist");
+ }
+
+ return $templateMap[$template]->match($formattedName);
+ }
+
+ foreach ($templateMap as $templateName => $pathTemplate) {
+ try {
+ return $pathTemplate->match($formattedName);
+ } catch (ValidationException $ex) {
+ // Swallow the exception to continue trying other path templates
+ }
+ }
+
+ throw new ValidationException("Input did not match any known format. Input: $formattedName");
+ }
+
+ /**
+ * 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;
+ }
+
+ /**
+ * 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 'clouddeploy.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
+ */
+ public function __construct(array $options = [])
+ {
+ $clientOptions = $this->buildClientOptions($options);
+ $this->setClientOptions($clientOptions);
+ $this->operationsClient = $this->createOperationsClient($clientOptions);
+ }
+
+ /**
+ * Abandons a Release in the Delivery Pipeline.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $formattedName = $cloudDeployClient->releaseName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]');
+ * $response = $cloudDeployClient->abandonRelease($formattedName);
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. Name of the Release. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Deploy\V1\AbandonReleaseResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function abandonRelease($name, array $optionalArgs = [])
+ {
+ $request = new AbandonReleaseRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('AbandonRelease', AbandonReleaseResponse::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Advances a Rollout in a given project and location.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $formattedName = $cloudDeployClient->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ * $phaseId = 'phase_id';
+ * $response = $cloudDeployClient->advanceRollout($formattedName, $phaseId);
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. Name of the Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}.
+ * @param string $phaseId Required. The phase ID to advance the `Rollout` to.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Deploy\V1\AdvanceRolloutResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function advanceRollout($name, $phaseId, array $optionalArgs = [])
+ {
+ $request = new AdvanceRolloutRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $request->setPhaseId($phaseId);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('AdvanceRollout', AdvanceRolloutResponse::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Approves a Rollout.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $formattedName = $cloudDeployClient->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ * $approved = false;
+ * $response = $cloudDeployClient->approveRollout($formattedName, $approved);
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. Name of the Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}.
+ * @param bool $approved Required. True = approve; false = reject
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Deploy\V1\ApproveRolloutResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function approveRollout($name, $approved, array $optionalArgs = [])
+ {
+ $request = new ApproveRolloutRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $request->setApproved($approved);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('ApproveRollout', ApproveRolloutResponse::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Cancels a Rollout in a given project and location.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $formattedName = $cloudDeployClient->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ * $response = $cloudDeployClient->cancelRollout($formattedName);
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. Name of the Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Deploy\V1\CancelRolloutResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function cancelRollout($name, array $optionalArgs = [])
+ {
+ $request = new CancelRolloutRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('CancelRollout', CancelRolloutResponse::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Creates a new DeliveryPipeline in a given project and location.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $formattedParent = $cloudDeployClient->locationName('[PROJECT]', '[LOCATION]');
+ * $deliveryPipelineId = 'delivery_pipeline_id';
+ * $deliveryPipeline = new DeliveryPipeline();
+ * $operationResponse = $cloudDeployClient->createDeliveryPipeline($formattedParent, $deliveryPipelineId, $deliveryPipeline);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $cloudDeployClient->createDeliveryPipeline($formattedParent, $deliveryPipelineId, $deliveryPipeline);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $cloudDeployClient->resumeOperation($operationName, 'createDeliveryPipeline');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The parent collection in which the `DeliveryPipeline` should be
+ * created. Format should be projects/{project_id}/locations/{location_name}.
+ * @param string $deliveryPipelineId Required. ID of the `DeliveryPipeline`.
+ * @param DeliveryPipeline $deliveryPipeline Required. The `DeliveryPipeline` to create.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A 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).
+ * @type bool $validateOnly
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function createDeliveryPipeline($parent, $deliveryPipelineId, $deliveryPipeline, array $optionalArgs = [])
+ {
+ $request = new CreateDeliveryPipelineRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setDeliveryPipelineId($deliveryPipelineId);
+ $request->setDeliveryPipeline($deliveryPipeline);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ if (isset($optionalArgs['validateOnly'])) {
+ $request->setValidateOnly($optionalArgs['validateOnly']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('CreateDeliveryPipeline', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Creates a new Release in a given project and location.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $formattedParent = $cloudDeployClient->deliveryPipelineName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]');
+ * $releaseId = 'release_id';
+ * $release = new Release();
+ * $operationResponse = $cloudDeployClient->createRelease($formattedParent, $releaseId, $release);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $cloudDeployClient->createRelease($formattedParent, $releaseId, $release);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $cloudDeployClient->resumeOperation($operationName, 'createRelease');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The parent collection in which the `Release` should be created.
+ * Format should be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}.
+ * @param string $releaseId Required. ID of the `Release`.
+ * @param Release $release Required. The `Release` to create.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A 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).
+ * @type bool $validateOnly
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function createRelease($parent, $releaseId, $release, array $optionalArgs = [])
+ {
+ $request = new CreateReleaseRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setReleaseId($releaseId);
+ $request->setRelease($release);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ if (isset($optionalArgs['validateOnly'])) {
+ $request->setValidateOnly($optionalArgs['validateOnly']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('CreateRelease', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Creates a new Rollout in a given project and location.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $formattedParent = $cloudDeployClient->releaseName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]');
+ * $rolloutId = 'rollout_id';
+ * $rollout = new Rollout();
+ * $operationResponse = $cloudDeployClient->createRollout($formattedParent, $rolloutId, $rollout);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $cloudDeployClient->createRollout($formattedParent, $rolloutId, $rollout);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $cloudDeployClient->resumeOperation($operationName, 'createRollout');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The parent collection in which the `Rollout` should be created.
+ * Format should be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}.
+ * @param string $rolloutId Required. ID of the `Rollout`.
+ * @param Rollout $rollout Required. The `Rollout` to create.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A 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).
+ * @type bool $validateOnly
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ * @type string $startingPhaseId
+ * Optional. The starting phase ID for the `Rollout`. If empty the `Rollout`
+ * will start at the first phase.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function createRollout($parent, $rolloutId, $rollout, array $optionalArgs = [])
+ {
+ $request = new CreateRolloutRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setRolloutId($rolloutId);
+ $request->setRollout($rollout);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ if (isset($optionalArgs['validateOnly'])) {
+ $request->setValidateOnly($optionalArgs['validateOnly']);
+ }
+
+ if (isset($optionalArgs['startingPhaseId'])) {
+ $request->setStartingPhaseId($optionalArgs['startingPhaseId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('CreateRollout', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Creates a new Target in a given project and location.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $formattedParent = $cloudDeployClient->locationName('[PROJECT]', '[LOCATION]');
+ * $targetId = 'target_id';
+ * $target = new Target();
+ * $operationResponse = $cloudDeployClient->createTarget($formattedParent, $targetId, $target);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $cloudDeployClient->createTarget($formattedParent, $targetId, $target);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $cloudDeployClient->resumeOperation($operationName, 'createTarget');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The parent collection in which the `Target` should be created.
+ * Format should be
+ * projects/{project_id}/locations/{location_name}.
+ * @param string $targetId Required. ID of the `Target`.
+ * @param Target $target Required. The `Target` to create.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A 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).
+ * @type bool $validateOnly
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function createTarget($parent, $targetId, $target, array $optionalArgs = [])
+ {
+ $request = new CreateTargetRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setTargetId($targetId);
+ $request->setTarget($target);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ if (isset($optionalArgs['validateOnly'])) {
+ $request->setValidateOnly($optionalArgs['validateOnly']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('CreateTarget', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Deletes a single DeliveryPipeline.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $formattedName = $cloudDeployClient->deliveryPipelineName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]');
+ * $operationResponse = $cloudDeployClient->deleteDeliveryPipeline($formattedName);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * // operation succeeded and returns no value
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $cloudDeployClient->deleteDeliveryPipeline($formattedName);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $cloudDeployClient->resumeOperation($operationName, 'deleteDeliveryPipeline');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * // operation succeeded and returns no value
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The name of the `DeliveryPipeline` to delete. Format should be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A 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 $allowMissing
+ * Optional. If set to true, then deleting an already deleted or non-existing
+ * `DeliveryPipeline` will succeed.
+ * @type bool $validateOnly
+ * Optional. If set, validate the request and preview the review, but do not
+ * actually post it.
+ * @type bool $force
+ * Optional. If set to true, all child resources under this pipeline will also
+ * be deleted. Otherwise, the request will only work if the pipeline has no
+ * child resources.
+ * @type string $etag
+ * Optional. This checksum is computed by the server based on the value of
+ * other fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function deleteDeliveryPipeline($name, array $optionalArgs = [])
+ {
+ $request = new DeleteDeliveryPipelineRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ if (isset($optionalArgs['allowMissing'])) {
+ $request->setAllowMissing($optionalArgs['allowMissing']);
+ }
+
+ if (isset($optionalArgs['validateOnly'])) {
+ $request->setValidateOnly($optionalArgs['validateOnly']);
+ }
+
+ if (isset($optionalArgs['force'])) {
+ $request->setForce($optionalArgs['force']);
+ }
+
+ if (isset($optionalArgs['etag'])) {
+ $request->setEtag($optionalArgs['etag']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('DeleteDeliveryPipeline', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Deletes a single Target.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $formattedName = $cloudDeployClient->targetName('[PROJECT]', '[LOCATION]', '[TARGET]');
+ * $operationResponse = $cloudDeployClient->deleteTarget($formattedName);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * // operation succeeded and returns no value
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $cloudDeployClient->deleteTarget($formattedName);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $cloudDeployClient->resumeOperation($operationName, 'deleteTarget');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * // operation succeeded and returns no value
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The name of the `Target` to delete. Format should be
+ * projects/{project_id}/locations/{location_name}/targets/{target_name}.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A 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 $allowMissing
+ * Optional. If set to true, then deleting an already deleted or non-existing
+ * DeliveryPipeline will succeed.
+ * @type bool $validateOnly
+ * Optional. If set, validate the request and preview the review, but do not
+ * actually post it.
+ * @type string $etag
+ * Optional. This checksum is computed by the server based on the value of
+ * other fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function deleteTarget($name, array $optionalArgs = [])
+ {
+ $request = new DeleteTargetRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ if (isset($optionalArgs['allowMissing'])) {
+ $request->setAllowMissing($optionalArgs['allowMissing']);
+ }
+
+ if (isset($optionalArgs['validateOnly'])) {
+ $request->setValidateOnly($optionalArgs['validateOnly']);
+ }
+
+ if (isset($optionalArgs['etag'])) {
+ $request->setEtag($optionalArgs['etag']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('DeleteTarget', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Gets the configuration for a location.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $formattedName = $cloudDeployClient->configName('[PROJECT]', '[LOCATION]');
+ * $response = $cloudDeployClient->getConfig($formattedName);
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. Name of requested configuration.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Deploy\V1\Config
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getConfig($name, array $optionalArgs = [])
+ {
+ $request = new GetConfigRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetConfig', Config::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Gets details of a single DeliveryPipeline.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $formattedName = $cloudDeployClient->deliveryPipelineName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]');
+ * $response = $cloudDeployClient->getDeliveryPipeline($formattedName);
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. Name of the `DeliveryPipeline`. Format must be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Deploy\V1\DeliveryPipeline
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getDeliveryPipeline($name, array $optionalArgs = [])
+ {
+ $request = new GetDeliveryPipelineRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetDeliveryPipeline', DeliveryPipeline::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Gets details of a single JobRun.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $formattedName = $cloudDeployClient->jobRunName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]', '[JOB_RUN]');
+ * $response = $cloudDeployClient->getJobRun($formattedName);
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. Name of the `JobRun`. Format must be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}/rollouts/{rollout_name}/jobRuns/{job_run_name}.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Deploy\V1\JobRun
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getJobRun($name, array $optionalArgs = [])
+ {
+ $request = new GetJobRunRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetJobRun', JobRun::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Gets details of a single Release.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $formattedName = $cloudDeployClient->releaseName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]');
+ * $response = $cloudDeployClient->getRelease($formattedName);
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. Name of the `Release`. Format must be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Deploy\V1\Release
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getRelease($name, array $optionalArgs = [])
+ {
+ $request = new GetReleaseRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetRelease', Release::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Gets details of a single Rollout.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $formattedName = $cloudDeployClient->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ * $response = $cloudDeployClient->getRollout($formattedName);
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. Name of the `Rollout`. Format must be
+ * projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}/rollouts/{rollout_name}.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Deploy\V1\Rollout
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getRollout($name, array $optionalArgs = [])
+ {
+ $request = new GetRolloutRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetRollout', Rollout::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Gets details of a single Target.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $formattedName = $cloudDeployClient->targetName('[PROJECT]', '[LOCATION]', '[TARGET]');
+ * $response = $cloudDeployClient->getTarget($formattedName);
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. Name of the `Target`. Format must be
+ * projects/{project_id}/locations/{location_name}/targets/{target_name}.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Deploy\V1\Target
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getTarget($name, array $optionalArgs = [])
+ {
+ $request = new GetTargetRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetTarget', Target::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Ignores the specified Job in a Rollout.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $formattedRollout = $cloudDeployClient->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ * $phaseId = 'phase_id';
+ * $jobId = 'job_id';
+ * $response = $cloudDeployClient->ignoreJob($formattedRollout, $phaseId, $jobId);
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $rollout Required. Name of the Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}.
+ * @param string $phaseId Required. The phase ID the Job to ignore belongs to.
+ * @param string $jobId Required. The job ID for the Job to ignore.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Deploy\V1\IgnoreJobResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function ignoreJob($rollout, $phaseId, $jobId, array $optionalArgs = [])
+ {
+ $request = new IgnoreJobRequest();
+ $requestParamHeaders = [];
+ $request->setRollout($rollout);
+ $request->setPhaseId($phaseId);
+ $request->setJobId($jobId);
+ $requestParamHeaders['rollout'] = $rollout;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('IgnoreJob', IgnoreJobResponse::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Lists DeliveryPipelines in a given project and location.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $formattedParent = $cloudDeployClient->locationName('[PROJECT]', '[LOCATION]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $cloudDeployClient->listDeliveryPipelines($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $cloudDeployClient->listDeliveryPipelines($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The parent, which owns this collection of pipelines. Format must
+ * be projects/{project_id}/locations/{location_name}.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @type string $filter
+ * Filter pipelines to be returned. See https://google.aip.dev/160 for more
+ * details.
+ * @type string $orderBy
+ * Field to sort by. See https://google.aip.dev/132#ordering for more details.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function listDeliveryPipelines($parent, array $optionalArgs = [])
+ {
+ $request = new ListDeliveryPipelinesRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['orderBy'])) {
+ $request->setOrderBy($optionalArgs['orderBy']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListDeliveryPipelines', $optionalArgs, ListDeliveryPipelinesResponse::class, $request);
+ }
+
+ /**
+ * Lists JobRuns in a given project and location.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $formattedParent = $cloudDeployClient->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $cloudDeployClient->listJobRuns($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $cloudDeployClient->listJobRuns($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The `Rollout` which owns this collection of `JobRun` objects.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @type string $filter
+ * Optional. Filter results to be returned. See https://google.aip.dev/160 for
+ * more details.
+ * @type string $orderBy
+ * Optional. Field to sort by. See https://google.aip.dev/132#ordering for
+ * more details.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function listJobRuns($parent, array $optionalArgs = [])
+ {
+ $request = new ListJobRunsRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['orderBy'])) {
+ $request->setOrderBy($optionalArgs['orderBy']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListJobRuns', $optionalArgs, ListJobRunsResponse::class, $request);
+ }
+
+ /**
+ * Lists Releases in a given project and location.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $formattedParent = $cloudDeployClient->deliveryPipelineName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $cloudDeployClient->listReleases($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $cloudDeployClient->listReleases($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The `DeliveryPipeline` which owns this collection of `Release`
+ * objects.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @type string $filter
+ * Optional. Filter releases to be returned. See https://google.aip.dev/160
+ * for more details.
+ * @type string $orderBy
+ * Optional. Field to sort by. See https://google.aip.dev/132#ordering for
+ * more details.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function listReleases($parent, array $optionalArgs = [])
+ {
+ $request = new ListReleasesRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['orderBy'])) {
+ $request->setOrderBy($optionalArgs['orderBy']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListReleases', $optionalArgs, ListReleasesResponse::class, $request);
+ }
+
+ /**
+ * Lists Rollouts in a given project and location.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $formattedParent = $cloudDeployClient->releaseName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $cloudDeployClient->listRollouts($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $cloudDeployClient->listRollouts($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The `Release` which owns this collection of `Rollout` objects.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @type string $filter
+ * Optional. Filter rollouts to be returned. See https://google.aip.dev/160
+ * for more details.
+ * @type string $orderBy
+ * Optional. Field to sort by. See https://google.aip.dev/132#ordering for
+ * more details.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function listRollouts($parent, array $optionalArgs = [])
+ {
+ $request = new ListRolloutsRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['orderBy'])) {
+ $request->setOrderBy($optionalArgs['orderBy']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListRollouts', $optionalArgs, ListRolloutsResponse::class, $request);
+ }
+
+ /**
+ * Lists Targets in a given project and location.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $formattedParent = $cloudDeployClient->locationName('[PROJECT]', '[LOCATION]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $cloudDeployClient->listTargets($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $cloudDeployClient->listTargets($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The parent, which owns this collection of targets. Format must be
+ * projects/{project_id}/locations/{location_name}.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @type string $filter
+ * Optional. Filter targets to be returned. See https://google.aip.dev/160 for
+ * more details.
+ * @type string $orderBy
+ * Optional. Field to sort by. See https://google.aip.dev/132#ordering for
+ * more details.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function listTargets($parent, array $optionalArgs = [])
+ {
+ $request = new ListTargetsRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['orderBy'])) {
+ $request->setOrderBy($optionalArgs['orderBy']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListTargets', $optionalArgs, ListTargetsResponse::class, $request);
+ }
+
+ /**
+ * Retries the specified Job in a Rollout.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $formattedRollout = $cloudDeployClient->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ * $phaseId = 'phase_id';
+ * $jobId = 'job_id';
+ * $response = $cloudDeployClient->retryJob($formattedRollout, $phaseId, $jobId);
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $rollout Required. Name of the Rollout. Format is
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}.
+ * @param string $phaseId Required. The phase ID the Job to retry belongs to.
+ * @param string $jobId Required. The job ID for the Job to retry.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Deploy\V1\RetryJobResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function retryJob($rollout, $phaseId, $jobId, array $optionalArgs = [])
+ {
+ $request = new RetryJobRequest();
+ $requestParamHeaders = [];
+ $request->setRollout($rollout);
+ $request->setPhaseId($phaseId);
+ $request->setJobId($jobId);
+ $requestParamHeaders['rollout'] = $rollout;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('RetryJob', RetryJobResponse::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Terminates a Job Run in a given project and location.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $formattedName = $cloudDeployClient->jobRunName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]', '[JOB_RUN]');
+ * $response = $cloudDeployClient->terminateJobRun($formattedName);
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. Name of the `JobRun`. Format must be
+ * projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/
+ * releases/{release}/rollouts/{rollout}/jobRuns/{jobRun}.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Deploy\V1\TerminateJobRunResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function terminateJobRun($name, array $optionalArgs = [])
+ {
+ $request = new TerminateJobRunRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('TerminateJobRun', TerminateJobRunResponse::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Updates the parameters of a single DeliveryPipeline.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $updateMask = new FieldMask();
+ * $deliveryPipeline = new DeliveryPipeline();
+ * $operationResponse = $cloudDeployClient->updateDeliveryPipeline($updateMask, $deliveryPipeline);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $cloudDeployClient->updateDeliveryPipeline($updateMask, $deliveryPipeline);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $cloudDeployClient->resumeOperation($operationName, 'updateDeliveryPipeline');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param FieldMask $updateMask Required. Field mask is used to specify the fields to be overwritten in the
+ * `DeliveryPipeline` 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. If the
+ * user does not provide a mask then all fields will be overwritten.
+ * @param DeliveryPipeline $deliveryPipeline Required. The `DeliveryPipeline` to update.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A 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).
+ * @type bool $allowMissing
+ * Optional. If set to true, updating a `DeliveryPipeline` that does not exist
+ * will result in the creation of a new `DeliveryPipeline`.
+ * @type bool $validateOnly
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function updateDeliveryPipeline($updateMask, $deliveryPipeline, array $optionalArgs = [])
+ {
+ $request = new UpdateDeliveryPipelineRequest();
+ $requestParamHeaders = [];
+ $request->setUpdateMask($updateMask);
+ $request->setDeliveryPipeline($deliveryPipeline);
+ $requestParamHeaders['delivery_pipeline.name'] = $deliveryPipeline->getName();
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ if (isset($optionalArgs['allowMissing'])) {
+ $request->setAllowMissing($optionalArgs['allowMissing']);
+ }
+
+ if (isset($optionalArgs['validateOnly'])) {
+ $request->setValidateOnly($optionalArgs['validateOnly']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('UpdateDeliveryPipeline', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Updates the parameters of a single Target.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $updateMask = new FieldMask();
+ * $target = new Target();
+ * $operationResponse = $cloudDeployClient->updateTarget($updateMask, $target);
+ * $operationResponse->pollUntilComplete();
+ * if ($operationResponse->operationSucceeded()) {
+ * $result = $operationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $operationResponse->getError();
+ * // handleError($error)
+ * }
+ * // Alternatively:
+ * // start the operation, keep the operation name, and resume later
+ * $operationResponse = $cloudDeployClient->updateTarget($updateMask, $target);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $cloudDeployClient->resumeOperation($operationName, 'updateTarget');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param FieldMask $updateMask Required. Field mask is used to specify the fields to be overwritten in the
+ * Target 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. If the
+ * user does not provide a mask then all fields will be overwritten.
+ * @param Target $target Required. The `Target` to update.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $requestId
+ * Optional. A 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).
+ * @type bool $allowMissing
+ * Optional. If set to true, updating a `Target` that does not exist will
+ * result in the creation of a new `Target`.
+ * @type bool $validateOnly
+ * Optional. If set to true, the request is validated and the user is provided
+ * with an expected result, but no actual change is made.
+ * @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 \Google\ApiCore\OperationResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function updateTarget($updateMask, $target, array $optionalArgs = [])
+ {
+ $request = new UpdateTargetRequest();
+ $requestParamHeaders = [];
+ $request->setUpdateMask($updateMask);
+ $request->setTarget($target);
+ $requestParamHeaders['target.name'] = $target->getName();
+ if (isset($optionalArgs['requestId'])) {
+ $request->setRequestId($optionalArgs['requestId']);
+ }
+
+ if (isset($optionalArgs['allowMissing'])) {
+ $request->setAllowMissing($optionalArgs['allowMissing']);
+ }
+
+ if (isset($optionalArgs['validateOnly'])) {
+ $request->setValidateOnly($optionalArgs['validateOnly']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('UpdateTarget', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Gets information about a location.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $response = $cloudDeployClient->getLocation();
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $name
+ * Resource name for the location.
+ * @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 \Google\Cloud\Location\Location
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getLocation(array $optionalArgs = [])
+ {
+ $request = new GetLocationRequest();
+ $requestParamHeaders = [];
+ if (isset($optionalArgs['name'])) {
+ $request->setName($optionalArgs['name']);
+ $requestParamHeaders['name'] = $optionalArgs['name'];
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetLocation', Location::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.cloud.location.Locations')->wait();
+ }
+
+ /**
+ * Lists information about the supported locations for this service.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * // Iterate over pages of elements
+ * $pagedResponse = $cloudDeployClient->listLocations();
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $cloudDeployClient->listLocations();
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $name
+ * The resource that owns the locations collection, if applicable.
+ * @type string $filter
+ * The standard list filter.
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function listLocations(array $optionalArgs = [])
+ {
+ $request = new ListLocationsRequest();
+ $requestParamHeaders = [];
+ if (isset($optionalArgs['name'])) {
+ $request->setName($optionalArgs['name']);
+ $requestParamHeaders['name'] = $optionalArgs['name'];
+ }
+
+ if (isset($optionalArgs['filter'])) {
+ $request->setFilter($optionalArgs['filter']);
+ }
+
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListLocations', $optionalArgs, ListLocationsResponse::class, $request, 'google.cloud.location.Locations');
+ }
+
+ /**
+ * Gets the access control policy for a resource. Returns an empty policy
+ if the resource exists and does not have a policy set.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $resource = 'resource';
+ * $response = $cloudDeployClient->getIamPolicy($resource);
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $resource REQUIRED: The resource for which the policy is being requested.
+ * See the operation documentation for the appropriate value for this field.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type GetPolicyOptions $options
+ * OPTIONAL: A `GetPolicyOptions` object for specifying options to
+ * `GetIamPolicy`.
+ * @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 \Google\Cloud\Iam\V1\Policy
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getIamPolicy($resource, array $optionalArgs = [])
+ {
+ $request = new GetIamPolicyRequest();
+ $requestParamHeaders = [];
+ $request->setResource($resource);
+ $requestParamHeaders['resource'] = $resource;
+ if (isset($optionalArgs['options'])) {
+ $request->setOptions($optionalArgs['options']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetIamPolicy', Policy::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.iam.v1.IAMPolicy')->wait();
+ }
+
+ /**
+ * Sets the access control policy on the specified resource. Replaces
+ any existing policy.
+
+ Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
+ errors.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $resource = 'resource';
+ * $policy = new Policy();
+ * $response = $cloudDeployClient->setIamPolicy($resource, $policy);
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $resource REQUIRED: The resource for which the policy is being specified.
+ * See the operation documentation for the appropriate value for this field.
+ * @param Policy $policy REQUIRED: The complete policy to be applied to the `resource`. The size of
+ * the policy is limited to a few 10s of KB. An empty policy is a
+ * valid policy but certain Cloud Platform services (such as Projects)
+ * might reject them.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type FieldMask $updateMask
+ * OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
+ * the fields in the mask will be modified. If no mask is provided, the
+ * following default mask is used:
+ *
+ * `paths: "bindings, etag"`
+ * @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 \Google\Cloud\Iam\V1\Policy
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function setIamPolicy($resource, $policy, array $optionalArgs = [])
+ {
+ $request = new SetIamPolicyRequest();
+ $requestParamHeaders = [];
+ $request->setResource($resource);
+ $request->setPolicy($policy);
+ $requestParamHeaders['resource'] = $resource;
+ if (isset($optionalArgs['updateMask'])) {
+ $request->setUpdateMask($optionalArgs['updateMask']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('SetIamPolicy', Policy::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.iam.v1.IAMPolicy')->wait();
+ }
+
+ /**
+ * Returns permissions that a caller has on the specified resource. If the
+ resource does not exist, this will return an empty set of
+ permissions, not a `NOT_FOUND` error.
+
+ Note: This operation is designed to be used for building
+ permission-aware UIs and command-line tools, not for authorization
+ checking. This operation may "fail open" without warning.
+ *
+ * Sample code:
+ * ```
+ * $cloudDeployClient = new CloudDeployClient();
+ * try {
+ * $resource = 'resource';
+ * $permissions = [];
+ * $response = $cloudDeployClient->testIamPermissions($resource, $permissions);
+ * } finally {
+ * $cloudDeployClient->close();
+ * }
+ * ```
+ *
+ * @param string $resource REQUIRED: The resource for which the policy detail is being requested.
+ * See the operation documentation for the appropriate value for this field.
+ * @param string[] $permissions The set of permissions to check for the `resource`. Permissions with
+ * wildcards (such as '*' or 'storage.*') are not allowed. For more
+ * information see
+ * [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\Iam\V1\TestIamPermissionsResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function testIamPermissions($resource, $permissions, array $optionalArgs = [])
+ {
+ $request = new TestIamPermissionsRequest();
+ $requestParamHeaders = [];
+ $request->setResource($resource);
+ $request->setPermissions($permissions);
+ $requestParamHeaders['resource'] = $resource;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('TestIamPermissions', TestIamPermissionsResponse::class, $optionalArgs, $request, Call::UNARY_CALL, 'google.iam.v1.IAMPolicy')->wait();
+ }
+}
diff --git a/owl-bot-staging/Deploy/v1/src/V1/gapic_metadata.json b/owl-bot-staging/Deploy/v1/src/V1/gapic_metadata.json
new file mode 100644
index 000000000000..e1488c9b4b7c
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/src/V1/gapic_metadata.json
@@ -0,0 +1,173 @@
+{
+ "schema": "1.0",
+ "comment": "This file maps proto services\/RPCs to the corresponding library clients\/methods",
+ "language": "php",
+ "protoPackage": "google.cloud.deploy.v1",
+ "libraryPackage": "Google\\Cloud\\Deploy\\V1",
+ "services": {
+ "CloudDeploy": {
+ "clients": {
+ "grpc": {
+ "libraryClient": "CloudDeployGapicClient",
+ "rpcs": {
+ "AbandonRelease": {
+ "methods": [
+ "abandonRelease"
+ ]
+ },
+ "AdvanceRollout": {
+ "methods": [
+ "advanceRollout"
+ ]
+ },
+ "ApproveRollout": {
+ "methods": [
+ "approveRollout"
+ ]
+ },
+ "CancelRollout": {
+ "methods": [
+ "cancelRollout"
+ ]
+ },
+ "CreateDeliveryPipeline": {
+ "methods": [
+ "createDeliveryPipeline"
+ ]
+ },
+ "CreateRelease": {
+ "methods": [
+ "createRelease"
+ ]
+ },
+ "CreateRollout": {
+ "methods": [
+ "createRollout"
+ ]
+ },
+ "CreateTarget": {
+ "methods": [
+ "createTarget"
+ ]
+ },
+ "DeleteDeliveryPipeline": {
+ "methods": [
+ "deleteDeliveryPipeline"
+ ]
+ },
+ "DeleteTarget": {
+ "methods": [
+ "deleteTarget"
+ ]
+ },
+ "GetConfig": {
+ "methods": [
+ "getConfig"
+ ]
+ },
+ "GetDeliveryPipeline": {
+ "methods": [
+ "getDeliveryPipeline"
+ ]
+ },
+ "GetJobRun": {
+ "methods": [
+ "getJobRun"
+ ]
+ },
+ "GetRelease": {
+ "methods": [
+ "getRelease"
+ ]
+ },
+ "GetRollout": {
+ "methods": [
+ "getRollout"
+ ]
+ },
+ "GetTarget": {
+ "methods": [
+ "getTarget"
+ ]
+ },
+ "IgnoreJob": {
+ "methods": [
+ "ignoreJob"
+ ]
+ },
+ "ListDeliveryPipelines": {
+ "methods": [
+ "listDeliveryPipelines"
+ ]
+ },
+ "ListJobRuns": {
+ "methods": [
+ "listJobRuns"
+ ]
+ },
+ "ListReleases": {
+ "methods": [
+ "listReleases"
+ ]
+ },
+ "ListRollouts": {
+ "methods": [
+ "listRollouts"
+ ]
+ },
+ "ListTargets": {
+ "methods": [
+ "listTargets"
+ ]
+ },
+ "RetryJob": {
+ "methods": [
+ "retryJob"
+ ]
+ },
+ "TerminateJobRun": {
+ "methods": [
+ "terminateJobRun"
+ ]
+ },
+ "UpdateDeliveryPipeline": {
+ "methods": [
+ "updateDeliveryPipeline"
+ ]
+ },
+ "UpdateTarget": {
+ "methods": [
+ "updateTarget"
+ ]
+ },
+ "GetLocation": {
+ "methods": [
+ "getLocation"
+ ]
+ },
+ "ListLocations": {
+ "methods": [
+ "listLocations"
+ ]
+ },
+ "GetIamPolicy": {
+ "methods": [
+ "getIamPolicy"
+ ]
+ },
+ "SetIamPolicy": {
+ "methods": [
+ "setIamPolicy"
+ ]
+ },
+ "TestIamPermissions": {
+ "methods": [
+ "testIamPermissions"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/owl-bot-staging/Deploy/v1/src/V1/resources/cloud_deploy_client_config.json b/owl-bot-staging/Deploy/v1/src/V1/resources/cloud_deploy_client_config.json
new file mode 100644
index 000000000000..271aff1addc5
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/src/V1/resources/cloud_deploy_client_config.json
@@ -0,0 +1,199 @@
+{
+ "interfaces": {
+ "google.cloud.deploy.v1.CloudDeploy": {
+ "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": 60000,
+ "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": {
+ "AbandonRelease": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "AdvanceRollout": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ApproveRollout": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CancelRollout": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateDeliveryPipeline": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateRelease": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateRollout": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateTarget": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteDeliveryPipeline": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteTarget": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetConfig": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetDeliveryPipeline": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetJobRun": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetRelease": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetRollout": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetTarget": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "IgnoreJob": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListDeliveryPipelines": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListJobRuns": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListReleases": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListRollouts": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListTargets": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "RetryJob": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "TerminateJobRun": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateDeliveryPipeline": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateTarget": {
+ "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"
+ },
+ "GetIamPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "SetIamPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "TestIamPermissions": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ }
+ }
+ }
+ }
+}
diff --git a/owl-bot-staging/Deploy/v1/src/V1/resources/cloud_deploy_descriptor_config.php b/owl-bot-staging/Deploy/v1/src/V1/resources/cloud_deploy_descriptor_config.php
new file mode 100644
index 000000000000..3cad10a76835
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/src/V1/resources/cloud_deploy_descriptor_config.php
@@ -0,0 +1,505 @@
+ [
+ 'google.cloud.deploy.v1.CloudDeploy' => [
+ 'CreateDeliveryPipeline' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Deploy\V1\DeliveryPipeline',
+ 'metadataReturnType' => '\Google\Cloud\Deploy\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateRelease' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Deploy\V1\Release',
+ 'metadataReturnType' => '\Google\Cloud\Deploy\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateRollout' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Deploy\V1\Rollout',
+ 'metadataReturnType' => '\Google\Cloud\Deploy\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateTarget' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Deploy\V1\Target',
+ 'metadataReturnType' => '\Google\Cloud\Deploy\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteDeliveryPipeline' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\Deploy\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteTarget' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\Deploy\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateDeliveryPipeline' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Deploy\V1\DeliveryPipeline',
+ 'metadataReturnType' => '\Google\Cloud\Deploy\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'delivery_pipeline.name',
+ 'fieldAccessors' => [
+ 'getDeliveryPipeline',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateTarget' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Deploy\V1\Target',
+ 'metadataReturnType' => '\Google\Cloud\Deploy\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'target.name',
+ 'fieldAccessors' => [
+ 'getTarget',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'AbandonRelease' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Deploy\V1\AbandonReleaseResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'AdvanceRollout' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Deploy\V1\AdvanceRolloutResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ApproveRollout' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Deploy\V1\ApproveRolloutResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'CancelRollout' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Deploy\V1\CancelRolloutResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetConfig' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Deploy\V1\Config',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetDeliveryPipeline' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Deploy\V1\DeliveryPipeline',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetJobRun' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Deploy\V1\JobRun',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetRelease' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Deploy\V1\Release',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetRollout' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Deploy\V1\Rollout',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetTarget' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Deploy\V1\Target',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'IgnoreJob' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Deploy\V1\IgnoreJobResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'rollout',
+ 'fieldAccessors' => [
+ 'getRollout',
+ ],
+ ],
+ ],
+ ],
+ 'ListDeliveryPipelines' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getDeliveryPipelines',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Deploy\V1\ListDeliveryPipelinesResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListJobRuns' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getJobRuns',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Deploy\V1\ListJobRunsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListReleases' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getReleases',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Deploy\V1\ListReleasesResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListRollouts' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getRollouts',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Deploy\V1\ListRolloutsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListTargets' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getTargets',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Deploy\V1\ListTargetsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'RetryJob' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Deploy\V1\RetryJobResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'rollout',
+ 'fieldAccessors' => [
+ 'getRollout',
+ ],
+ ],
+ ],
+ ],
+ 'TerminateJobRun' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Deploy\V1\TerminateJobRunResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ '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',
+ ],
+ 'GetIamPolicy' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Iam\V1\Policy',
+ 'headerParams' => [
+ [
+ 'keyName' => 'resource',
+ 'fieldAccessors' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ 'interfaceOverride' => 'google.iam.v1.IAMPolicy',
+ ],
+ 'SetIamPolicy' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Iam\V1\Policy',
+ 'headerParams' => [
+ [
+ 'keyName' => 'resource',
+ 'fieldAccessors' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ 'interfaceOverride' => 'google.iam.v1.IAMPolicy',
+ ],
+ 'TestIamPermissions' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Iam\V1\TestIamPermissionsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'resource',
+ 'fieldAccessors' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ 'interfaceOverride' => 'google.iam.v1.IAMPolicy',
+ ],
+ 'templateMap' => [
+ 'build' => 'projects/{project}/locations/{location}/builds/{build}',
+ 'cluster' => 'projects/{project}/locations/{location}/clusters/{cluster}',
+ 'config' => 'projects/{project}/locations/{location}/config',
+ 'deliveryPipeline' => 'projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}',
+ 'jobRun' => 'projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/releases/{release}/rollouts/{rollout}/jobRuns/{job_run}',
+ 'location' => 'projects/{project}/locations/{location}',
+ 'membership' => 'projects/{project}/locations/{location}/memberships/{membership}',
+ 'release' => 'projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/releases/{release}',
+ 'rollout' => 'projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/releases/{release}/rollouts/{rollout}',
+ 'service' => 'projects/{project}/locations/{location}/services/{service}',
+ 'target' => 'projects/{project}/locations/{location}/targets/{target}',
+ 'workerPool' => 'projects/{project}/locations/{location}/workerPools/{worker_pool}',
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/Deploy/v1/src/V1/resources/cloud_deploy_rest_client_config.php b/owl-bot-staging/Deploy/v1/src/V1/resources/cloud_deploy_rest_client_config.php
new file mode 100644
index 000000000000..2e27a1e28f5d
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/src/V1/resources/cloud_deploy_rest_client_config.php
@@ -0,0 +1,456 @@
+ [
+ 'google.cloud.deploy.v1.CloudDeploy' => [
+ 'AbandonRelease' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/deliveryPipelines/*/releases/*}:abandon',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'AdvanceRollout' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/deliveryPipelines/*/releases/*/rollouts/*}:advance',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ApproveRollout' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/deliveryPipelines/*/releases/*/rollouts/*}:approve',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'CancelRollout' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/deliveryPipelines/*/releases/*/rollouts/*}:cancel',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'CreateDeliveryPipeline' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/deliveryPipelines',
+ 'body' => 'delivery_pipeline',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'delivery_pipeline_id',
+ ],
+ ],
+ 'CreateRelease' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/deliveryPipelines/*}/releases',
+ 'body' => 'release',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'release_id',
+ ],
+ ],
+ 'CreateRollout' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/deliveryPipelines/*/releases/*}/rollouts',
+ 'body' => 'rollout',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'rollout_id',
+ ],
+ ],
+ 'CreateTarget' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/targets',
+ 'body' => 'target',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'target_id',
+ ],
+ ],
+ 'DeleteDeliveryPipeline' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/deliveryPipelines/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteTarget' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/targets/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetConfig' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/config}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetDeliveryPipeline' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/deliveryPipelines/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetJobRun' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/deliveryPipelines/*/releases/*/rollouts/*/jobRuns/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetRelease' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/deliveryPipelines/*/releases/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetRollout' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/deliveryPipelines/*/releases/*/rollouts/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetTarget' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/targets/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'IgnoreJob' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{rollout=projects/*/locations/*/deliveryPipelines/*/releases/*/rollouts/*}:ignoreJob',
+ 'body' => '*',
+ 'placeholders' => [
+ 'rollout' => [
+ 'getters' => [
+ 'getRollout',
+ ],
+ ],
+ ],
+ ],
+ 'ListDeliveryPipelines' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/deliveryPipelines',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListJobRuns' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/deliveryPipelines/*/releases/*/rollouts/*}/jobRuns',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListReleases' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/deliveryPipelines/*}/releases',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListRollouts' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/deliveryPipelines/*/releases/*}/rollouts',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListTargets' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/targets',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'RetryJob' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{rollout=projects/*/locations/*/deliveryPipelines/*/releases/*/rollouts/*}:retryJob',
+ 'body' => '*',
+ 'placeholders' => [
+ 'rollout' => [
+ 'getters' => [
+ 'getRollout',
+ ],
+ ],
+ ],
+ ],
+ 'TerminateJobRun' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/deliveryPipelines/*/releases/*/rollouts/*/jobRuns/*}:terminate',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateDeliveryPipeline' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{delivery_pipeline.name=projects/*/locations/*/deliveryPipelines/*}',
+ 'body' => 'delivery_pipeline',
+ 'placeholders' => [
+ 'delivery_pipeline.name' => [
+ 'getters' => [
+ 'getDeliveryPipeline',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ 'UpdateTarget' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{target.name=projects/*/locations/*/targets/*}',
+ 'body' => 'target',
+ 'placeholders' => [
+ 'target.name' => [
+ 'getters' => [
+ 'getTarget',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ ],
+ '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.iam.v1.IAMPolicy' => [
+ 'GetIamPolicy' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/deliveryPipelines/*}:getIamPolicy',
+ 'additionalBindings' => [
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/targets/*}:getIamPolicy',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'SetIamPolicy' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/deliveryPipelines/*}:setIamPolicy',
+ 'body' => '*',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/targets/*}:setIamPolicy',
+ 'body' => '*',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'TestIamPermissions' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/deliveryPipelines/*}:testIamPermissions',
+ 'body' => '*',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/targets/*}:testIamPermissions',
+ 'body' => '*',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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/Deploy/v1/tests/Unit/V1/Client/CloudDeployClientTest.php b/owl-bot-staging/Deploy/v1/tests/Unit/V1/Client/CloudDeployClientTest.php
new file mode 100644
index 000000000000..5ac54ab9a28d
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/tests/Unit/V1/Client/CloudDeployClientTest.php
@@ -0,0 +1,2854 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return CloudDeployClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new CloudDeployClient($options);
+ }
+
+ /** @test */
+ public function abandonReleaseTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new AbandonReleaseResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->releaseName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]');
+ $request = (new AbandonReleaseRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->abandonRelease($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.deploy.v1.CloudDeploy/AbandonRelease', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function abandonReleaseExceptionTest()
+ {
+ $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->releaseName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]');
+ $request = (new AbandonReleaseRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->abandonRelease($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 advanceRolloutTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new AdvanceRolloutResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ $phaseId = 'phaseId-1676299681';
+ $request = (new AdvanceRolloutRequest())
+ ->setName($formattedName)
+ ->setPhaseId($phaseId);
+ $response = $gapicClient->advanceRollout($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.deploy.v1.CloudDeploy/AdvanceRollout', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualRequestObject->getPhaseId();
+ $this->assertProtobufEquals($phaseId, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function advanceRolloutExceptionTest()
+ {
+ $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->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ $phaseId = 'phaseId-1676299681';
+ $request = (new AdvanceRolloutRequest())
+ ->setName($formattedName)
+ ->setPhaseId($phaseId);
+ try {
+ $gapicClient->advanceRollout($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 approveRolloutTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new ApproveRolloutResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ $approved = false;
+ $request = (new ApproveRolloutRequest())
+ ->setName($formattedName)
+ ->setApproved($approved);
+ $response = $gapicClient->approveRollout($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.deploy.v1.CloudDeploy/ApproveRollout', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualRequestObject->getApproved();
+ $this->assertProtobufEquals($approved, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function approveRolloutExceptionTest()
+ {
+ $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->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ $approved = false;
+ $request = (new ApproveRolloutRequest())
+ ->setName($formattedName)
+ ->setApproved($approved);
+ try {
+ $gapicClient->approveRollout($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 cancelRolloutTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new CancelRolloutResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ $request = (new CancelRolloutRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->cancelRollout($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.deploy.v1.CloudDeploy/CancelRollout', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function cancelRolloutExceptionTest()
+ {
+ $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->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ $request = (new CancelRolloutRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->cancelRollout($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 createDeliveryPipelineTest()
+ {
+ $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/createDeliveryPipelineTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $uid = 'uid115792';
+ $description = 'description-1724546052';
+ $etag = 'etag3123477';
+ $suspended = false;
+ $expectedResponse = new DeliveryPipeline();
+ $expectedResponse->setName($name);
+ $expectedResponse->setUid($uid);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setEtag($etag);
+ $expectedResponse->setSuspended($suspended);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createDeliveryPipelineTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $deliveryPipelineId = 'deliveryPipelineId1972590605';
+ $deliveryPipeline = new DeliveryPipeline();
+ $request = (new CreateDeliveryPipelineRequest())
+ ->setParent($formattedParent)
+ ->setDeliveryPipelineId($deliveryPipelineId)
+ ->setDeliveryPipeline($deliveryPipeline);
+ $response = $gapicClient->createDeliveryPipeline($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.deploy.v1.CloudDeploy/CreateDeliveryPipeline', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getDeliveryPipelineId();
+ $this->assertProtobufEquals($deliveryPipelineId, $actualValue);
+ $actualValue = $actualApiRequestObject->getDeliveryPipeline();
+ $this->assertProtobufEquals($deliveryPipeline, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createDeliveryPipelineTest');
+ $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 createDeliveryPipelineExceptionTest()
+ {
+ $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/createDeliveryPipelineTest');
+ $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]');
+ $deliveryPipelineId = 'deliveryPipelineId1972590605';
+ $deliveryPipeline = new DeliveryPipeline();
+ $request = (new CreateDeliveryPipelineRequest())
+ ->setParent($formattedParent)
+ ->setDeliveryPipelineId($deliveryPipelineId)
+ ->setDeliveryPipeline($deliveryPipeline);
+ $response = $gapicClient->createDeliveryPipeline($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createDeliveryPipelineTest');
+ 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 createReleaseTest()
+ {
+ $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/createReleaseTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $uid = 'uid115792';
+ $description = 'description-1724546052';
+ $abandoned = true;
+ $skaffoldConfigUri = 'skaffoldConfigUri-860592176';
+ $skaffoldConfigPath = 'skaffoldConfigPath-908718527';
+ $etag = 'etag3123477';
+ $skaffoldVersion = 'skaffoldVersion-1146663017';
+ $expectedResponse = new Release();
+ $expectedResponse->setName($name);
+ $expectedResponse->setUid($uid);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setAbandoned($abandoned);
+ $expectedResponse->setSkaffoldConfigUri($skaffoldConfigUri);
+ $expectedResponse->setSkaffoldConfigPath($skaffoldConfigPath);
+ $expectedResponse->setEtag($etag);
+ $expectedResponse->setSkaffoldVersion($skaffoldVersion);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createReleaseTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->deliveryPipelineName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]');
+ $releaseId = 'releaseId-1517127597';
+ $release = new Release();
+ $request = (new CreateReleaseRequest())
+ ->setParent($formattedParent)
+ ->setReleaseId($releaseId)
+ ->setRelease($release);
+ $response = $gapicClient->createRelease($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.deploy.v1.CloudDeploy/CreateRelease', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getReleaseId();
+ $this->assertProtobufEquals($releaseId, $actualValue);
+ $actualValue = $actualApiRequestObject->getRelease();
+ $this->assertProtobufEquals($release, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createReleaseTest');
+ $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 createReleaseExceptionTest()
+ {
+ $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/createReleaseTest');
+ $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->deliveryPipelineName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]');
+ $releaseId = 'releaseId-1517127597';
+ $release = new Release();
+ $request = (new CreateReleaseRequest())
+ ->setParent($formattedParent)
+ ->setReleaseId($releaseId)
+ ->setRelease($release);
+ $response = $gapicClient->createRelease($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createReleaseTest');
+ 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 createRolloutTest()
+ {
+ $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/createRolloutTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $uid = 'uid115792';
+ $description = 'description-1724546052';
+ $targetId = 'targetId-815576439';
+ $failureReason = 'failureReason1743941273';
+ $deployingBuild = 'deployingBuild931623626';
+ $etag = 'etag3123477';
+ $controllerRollout = 'controllerRollout-146558962';
+ $expectedResponse = new Rollout();
+ $expectedResponse->setName($name);
+ $expectedResponse->setUid($uid);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setTargetId($targetId);
+ $expectedResponse->setFailureReason($failureReason);
+ $expectedResponse->setDeployingBuild($deployingBuild);
+ $expectedResponse->setEtag($etag);
+ $expectedResponse->setControllerRollout($controllerRollout);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createRolloutTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->releaseName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]');
+ $rolloutId = 'rolloutId-91142551';
+ $rollout = new Rollout();
+ $rolloutTargetId = 'rolloutTargetId509050717';
+ $rollout->setTargetId($rolloutTargetId);
+ $request = (new CreateRolloutRequest())
+ ->setParent($formattedParent)
+ ->setRolloutId($rolloutId)
+ ->setRollout($rollout);
+ $response = $gapicClient->createRollout($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.deploy.v1.CloudDeploy/CreateRollout', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getRolloutId();
+ $this->assertProtobufEquals($rolloutId, $actualValue);
+ $actualValue = $actualApiRequestObject->getRollout();
+ $this->assertProtobufEquals($rollout, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createRolloutTest');
+ $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 createRolloutExceptionTest()
+ {
+ $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/createRolloutTest');
+ $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->releaseName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]');
+ $rolloutId = 'rolloutId-91142551';
+ $rollout = new Rollout();
+ $rolloutTargetId = 'rolloutTargetId509050717';
+ $rollout->setTargetId($rolloutTargetId);
+ $request = (new CreateRolloutRequest())
+ ->setParent($formattedParent)
+ ->setRolloutId($rolloutId)
+ ->setRollout($rollout);
+ $response = $gapicClient->createRollout($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createRolloutTest');
+ 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 createTargetTest()
+ {
+ $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/createTargetTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $targetId2 = 'targetId2-2084907012';
+ $uid = 'uid115792';
+ $description = 'description-1724546052';
+ $requireApproval = false;
+ $etag = 'etag3123477';
+ $expectedResponse = new Target();
+ $expectedResponse->setName($name);
+ $expectedResponse->setTargetId($targetId2);
+ $expectedResponse->setUid($uid);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setRequireApproval($requireApproval);
+ $expectedResponse->setEtag($etag);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createTargetTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $targetId = 'targetId-815576439';
+ $target = new Target();
+ $request = (new CreateTargetRequest())
+ ->setParent($formattedParent)
+ ->setTargetId($targetId)
+ ->setTarget($target);
+ $response = $gapicClient->createTarget($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.deploy.v1.CloudDeploy/CreateTarget', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getTargetId();
+ $this->assertProtobufEquals($targetId, $actualValue);
+ $actualValue = $actualApiRequestObject->getTarget();
+ $this->assertProtobufEquals($target, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createTargetTest');
+ $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 createTargetExceptionTest()
+ {
+ $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/createTargetTest');
+ $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]');
+ $targetId = 'targetId-815576439';
+ $target = new Target();
+ $request = (new CreateTargetRequest())
+ ->setParent($formattedParent)
+ ->setTargetId($targetId)
+ ->setTarget($target);
+ $response = $gapicClient->createTarget($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createTargetTest');
+ 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 deleteDeliveryPipelineTest()
+ {
+ $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/deleteDeliveryPipelineTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteDeliveryPipelineTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->deliveryPipelineName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]');
+ $request = (new DeleteDeliveryPipelineRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteDeliveryPipeline($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.deploy.v1.CloudDeploy/DeleteDeliveryPipeline', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteDeliveryPipelineTest');
+ $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 deleteDeliveryPipelineExceptionTest()
+ {
+ $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/deleteDeliveryPipelineTest');
+ $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->deliveryPipelineName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]');
+ $request = (new DeleteDeliveryPipelineRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteDeliveryPipeline($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteDeliveryPipelineTest');
+ 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 deleteTargetTest()
+ {
+ $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/deleteTargetTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteTargetTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->targetName('[PROJECT]', '[LOCATION]', '[TARGET]');
+ $request = (new DeleteTargetRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteTarget($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.deploy.v1.CloudDeploy/DeleteTarget', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteTargetTest');
+ $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 deleteTargetExceptionTest()
+ {
+ $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/deleteTargetTest');
+ $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->targetName('[PROJECT]', '[LOCATION]', '[TARGET]');
+ $request = (new DeleteTargetRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteTarget($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteTargetTest');
+ 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 getConfigTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $defaultSkaffoldVersion = 'defaultSkaffoldVersion1930298837';
+ $expectedResponse = new Config();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDefaultSkaffoldVersion($defaultSkaffoldVersion);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->configName('[PROJECT]', '[LOCATION]');
+ $request = (new GetConfigRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getConfig($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.deploy.v1.CloudDeploy/GetConfig', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getConfigExceptionTest()
+ {
+ $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->configName('[PROJECT]', '[LOCATION]');
+ $request = (new GetConfigRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getConfig($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 getDeliveryPipelineTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $uid = 'uid115792';
+ $description = 'description-1724546052';
+ $etag = 'etag3123477';
+ $suspended = false;
+ $expectedResponse = new DeliveryPipeline();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setUid($uid);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setEtag($etag);
+ $expectedResponse->setSuspended($suspended);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->deliveryPipelineName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]');
+ $request = (new GetDeliveryPipelineRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getDeliveryPipeline($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.deploy.v1.CloudDeploy/GetDeliveryPipeline', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getDeliveryPipelineExceptionTest()
+ {
+ $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->deliveryPipelineName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]');
+ $request = (new GetDeliveryPipelineRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getDeliveryPipeline($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 getJobRunTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $uid = 'uid115792';
+ $phaseId = 'phaseId-1676299681';
+ $jobId = 'jobId-1154752291';
+ $etag = 'etag3123477';
+ $expectedResponse = new JobRun();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setUid($uid);
+ $expectedResponse->setPhaseId($phaseId);
+ $expectedResponse->setJobId($jobId);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->jobRunName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]', '[JOB_RUN]');
+ $request = (new GetJobRunRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getJobRun($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.deploy.v1.CloudDeploy/GetJobRun', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getJobRunExceptionTest()
+ {
+ $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->jobRunName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]', '[JOB_RUN]');
+ $request = (new GetJobRunRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getJobRun($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 getReleaseTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $uid = 'uid115792';
+ $description = 'description-1724546052';
+ $abandoned = true;
+ $skaffoldConfigUri = 'skaffoldConfigUri-860592176';
+ $skaffoldConfigPath = 'skaffoldConfigPath-908718527';
+ $etag = 'etag3123477';
+ $skaffoldVersion = 'skaffoldVersion-1146663017';
+ $expectedResponse = new Release();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setUid($uid);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setAbandoned($abandoned);
+ $expectedResponse->setSkaffoldConfigUri($skaffoldConfigUri);
+ $expectedResponse->setSkaffoldConfigPath($skaffoldConfigPath);
+ $expectedResponse->setEtag($etag);
+ $expectedResponse->setSkaffoldVersion($skaffoldVersion);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->releaseName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]');
+ $request = (new GetReleaseRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getRelease($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.deploy.v1.CloudDeploy/GetRelease', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getReleaseExceptionTest()
+ {
+ $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->releaseName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]');
+ $request = (new GetReleaseRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getRelease($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 getRolloutTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $uid = 'uid115792';
+ $description = 'description-1724546052';
+ $targetId = 'targetId-815576439';
+ $failureReason = 'failureReason1743941273';
+ $deployingBuild = 'deployingBuild931623626';
+ $etag = 'etag3123477';
+ $controllerRollout = 'controllerRollout-146558962';
+ $expectedResponse = new Rollout();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setUid($uid);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setTargetId($targetId);
+ $expectedResponse->setFailureReason($failureReason);
+ $expectedResponse->setDeployingBuild($deployingBuild);
+ $expectedResponse->setEtag($etag);
+ $expectedResponse->setControllerRollout($controllerRollout);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ $request = (new GetRolloutRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getRollout($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.deploy.v1.CloudDeploy/GetRollout', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getRolloutExceptionTest()
+ {
+ $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->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ $request = (new GetRolloutRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getRollout($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 getTargetTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $targetId = 'targetId-815576439';
+ $uid = 'uid115792';
+ $description = 'description-1724546052';
+ $requireApproval = false;
+ $etag = 'etag3123477';
+ $expectedResponse = new Target();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setTargetId($targetId);
+ $expectedResponse->setUid($uid);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setRequireApproval($requireApproval);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->targetName('[PROJECT]', '[LOCATION]', '[TARGET]');
+ $request = (new GetTargetRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getTarget($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.deploy.v1.CloudDeploy/GetTarget', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getTargetExceptionTest()
+ {
+ $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->targetName('[PROJECT]', '[LOCATION]', '[TARGET]');
+ $request = (new GetTargetRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getTarget($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 ignoreJobTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new IgnoreJobResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedRollout = $gapicClient->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ $phaseId = 'phaseId-1676299681';
+ $jobId = 'jobId-1154752291';
+ $request = (new IgnoreJobRequest())
+ ->setRollout($formattedRollout)
+ ->setPhaseId($phaseId)
+ ->setJobId($jobId);
+ $response = $gapicClient->ignoreJob($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.deploy.v1.CloudDeploy/IgnoreJob', $actualFuncCall);
+ $actualValue = $actualRequestObject->getRollout();
+ $this->assertProtobufEquals($formattedRollout, $actualValue);
+ $actualValue = $actualRequestObject->getPhaseId();
+ $this->assertProtobufEquals($phaseId, $actualValue);
+ $actualValue = $actualRequestObject->getJobId();
+ $this->assertProtobufEquals($jobId, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function ignoreJobExceptionTest()
+ {
+ $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
+ $formattedRollout = $gapicClient->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ $phaseId = 'phaseId-1676299681';
+ $jobId = 'jobId-1154752291';
+ $request = (new IgnoreJobRequest())
+ ->setRollout($formattedRollout)
+ ->setPhaseId($phaseId)
+ ->setJobId($jobId);
+ try {
+ $gapicClient->ignoreJob($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 listDeliveryPipelinesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $deliveryPipelinesElement = new DeliveryPipeline();
+ $deliveryPipelines = [
+ $deliveryPipelinesElement,
+ ];
+ $expectedResponse = new ListDeliveryPipelinesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setDeliveryPipelines($deliveryPipelines);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListDeliveryPipelinesRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listDeliveryPipelines($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getDeliveryPipelines()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.deploy.v1.CloudDeploy/ListDeliveryPipelines', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listDeliveryPipelinesExceptionTest()
+ {
+ $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 ListDeliveryPipelinesRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listDeliveryPipelines($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 listJobRunsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $jobRunsElement = new JobRun();
+ $jobRuns = [
+ $jobRunsElement,
+ ];
+ $expectedResponse = new ListJobRunsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setJobRuns($jobRuns);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ $request = (new ListJobRunsRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listJobRuns($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getJobRuns()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.deploy.v1.CloudDeploy/ListJobRuns', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listJobRunsExceptionTest()
+ {
+ $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->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ $request = (new ListJobRunsRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listJobRuns($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 listReleasesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $releasesElement = new Release();
+ $releases = [
+ $releasesElement,
+ ];
+ $expectedResponse = new ListReleasesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setReleases($releases);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->deliveryPipelineName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]');
+ $request = (new ListReleasesRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listReleases($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getReleases()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.deploy.v1.CloudDeploy/ListReleases', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listReleasesExceptionTest()
+ {
+ $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->deliveryPipelineName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]');
+ $request = (new ListReleasesRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listReleases($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 listRolloutsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $rolloutsElement = new Rollout();
+ $rollouts = [
+ $rolloutsElement,
+ ];
+ $expectedResponse = new ListRolloutsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setRollouts($rollouts);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->releaseName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]');
+ $request = (new ListRolloutsRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listRollouts($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getRollouts()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.deploy.v1.CloudDeploy/ListRollouts', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listRolloutsExceptionTest()
+ {
+ $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->releaseName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]');
+ $request = (new ListRolloutsRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listRollouts($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 listTargetsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $targetsElement = new Target();
+ $targets = [
+ $targetsElement,
+ ];
+ $expectedResponse = new ListTargetsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setTargets($targets);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListTargetsRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listTargets($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getTargets()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.deploy.v1.CloudDeploy/ListTargets', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listTargetsExceptionTest()
+ {
+ $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 ListTargetsRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listTargets($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 retryJobTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new RetryJobResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedRollout = $gapicClient->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ $phaseId = 'phaseId-1676299681';
+ $jobId = 'jobId-1154752291';
+ $request = (new RetryJobRequest())
+ ->setRollout($formattedRollout)
+ ->setPhaseId($phaseId)
+ ->setJobId($jobId);
+ $response = $gapicClient->retryJob($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.deploy.v1.CloudDeploy/RetryJob', $actualFuncCall);
+ $actualValue = $actualRequestObject->getRollout();
+ $this->assertProtobufEquals($formattedRollout, $actualValue);
+ $actualValue = $actualRequestObject->getPhaseId();
+ $this->assertProtobufEquals($phaseId, $actualValue);
+ $actualValue = $actualRequestObject->getJobId();
+ $this->assertProtobufEquals($jobId, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function retryJobExceptionTest()
+ {
+ $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
+ $formattedRollout = $gapicClient->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ $phaseId = 'phaseId-1676299681';
+ $jobId = 'jobId-1154752291';
+ $request = (new RetryJobRequest())
+ ->setRollout($formattedRollout)
+ ->setPhaseId($phaseId)
+ ->setJobId($jobId);
+ try {
+ $gapicClient->retryJob($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 terminateJobRunTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new TerminateJobRunResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->jobRunName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]', '[JOB_RUN]');
+ $request = (new TerminateJobRunRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->terminateJobRun($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.deploy.v1.CloudDeploy/TerminateJobRun', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function terminateJobRunExceptionTest()
+ {
+ $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->jobRunName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]', '[JOB_RUN]');
+ $request = (new TerminateJobRunRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->terminateJobRun($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 updateDeliveryPipelineTest()
+ {
+ $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/updateDeliveryPipelineTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $uid = 'uid115792';
+ $description = 'description-1724546052';
+ $etag = 'etag3123477';
+ $suspended = false;
+ $expectedResponse = new DeliveryPipeline();
+ $expectedResponse->setName($name);
+ $expectedResponse->setUid($uid);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setEtag($etag);
+ $expectedResponse->setSuspended($suspended);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateDeliveryPipelineTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $updateMask = new FieldMask();
+ $deliveryPipeline = new DeliveryPipeline();
+ $request = (new UpdateDeliveryPipelineRequest())
+ ->setUpdateMask($updateMask)
+ ->setDeliveryPipeline($deliveryPipeline);
+ $response = $gapicClient->updateDeliveryPipeline($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.deploy.v1.CloudDeploy/UpdateDeliveryPipeline', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualApiRequestObject->getDeliveryPipeline();
+ $this->assertProtobufEquals($deliveryPipeline, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateDeliveryPipelineTest');
+ $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 updateDeliveryPipelineExceptionTest()
+ {
+ $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/updateDeliveryPipelineTest');
+ $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();
+ $deliveryPipeline = new DeliveryPipeline();
+ $request = (new UpdateDeliveryPipelineRequest())
+ ->setUpdateMask($updateMask)
+ ->setDeliveryPipeline($deliveryPipeline);
+ $response = $gapicClient->updateDeliveryPipeline($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateDeliveryPipelineTest');
+ 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 updateTargetTest()
+ {
+ $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/updateTargetTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $targetId = 'targetId-815576439';
+ $uid = 'uid115792';
+ $description = 'description-1724546052';
+ $requireApproval = false;
+ $etag = 'etag3123477';
+ $expectedResponse = new Target();
+ $expectedResponse->setName($name);
+ $expectedResponse->setTargetId($targetId);
+ $expectedResponse->setUid($uid);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setRequireApproval($requireApproval);
+ $expectedResponse->setEtag($etag);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateTargetTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $updateMask = new FieldMask();
+ $target = new Target();
+ $request = (new UpdateTargetRequest())
+ ->setUpdateMask($updateMask)
+ ->setTarget($target);
+ $response = $gapicClient->updateTarget($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.deploy.v1.CloudDeploy/UpdateTarget', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualApiRequestObject->getTarget();
+ $this->assertProtobufEquals($target, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateTargetTest');
+ $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 updateTargetExceptionTest()
+ {
+ $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/updateTargetTest');
+ $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();
+ $target = new Target();
+ $request = (new UpdateTargetRequest())
+ ->setUpdateMask($updateMask)
+ ->setTarget($target);
+ $response = $gapicClient->updateTarget($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateTargetTest');
+ 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 getIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $version = 351608024;
+ $etag = '21';
+ $expectedResponse = new Policy();
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $request = (new GetIamPolicyRequest())
+ ->setResource($resource);
+ $response = $gapicClient->getIamPolicy($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/GetIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getIamPolicyExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ $request = (new GetIamPolicyRequest())
+ ->setResource($resource);
+ try {
+ $gapicClient->getIamPolicy($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 setIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $version = 351608024;
+ $etag = '21';
+ $expectedResponse = new Policy();
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $policy = new Policy();
+ $request = (new SetIamPolicyRequest())
+ ->setResource($resource)
+ ->setPolicy($policy);
+ $response = $gapicClient->setIamPolicy($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/SetIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $actualValue = $actualRequestObject->getPolicy();
+ $this->assertProtobufEquals($policy, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function setIamPolicyExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ $policy = new Policy();
+ $request = (new SetIamPolicyRequest())
+ ->setResource($resource)
+ ->setPolicy($policy);
+ try {
+ $gapicClient->setIamPolicy($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 testIamPermissionsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new TestIamPermissionsResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $permissions = [];
+ $request = (new TestIamPermissionsRequest())
+ ->setResource($resource)
+ ->setPermissions($permissions);
+ $response = $gapicClient->testIamPermissions($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/TestIamPermissions', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $actualValue = $actualRequestObject->getPermissions();
+ $this->assertProtobufEquals($permissions, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function testIamPermissionsExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ $permissions = [];
+ $request = (new TestIamPermissionsRequest())
+ ->setResource($resource)
+ ->setPermissions($permissions);
+ try {
+ $gapicClient->testIamPermissions($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 abandonReleaseAsyncTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new AbandonReleaseResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->releaseName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]');
+ $request = (new AbandonReleaseRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->abandonReleaseAsync($request)->wait();
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.deploy.v1.CloudDeploy/AbandonRelease', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+}
diff --git a/owl-bot-staging/Deploy/v1/tests/Unit/V1/CloudDeployClientTest.php b/owl-bot-staging/Deploy/v1/tests/Unit/V1/CloudDeployClientTest.php
new file mode 100644
index 000000000000..1008182b1984
--- /dev/null
+++ b/owl-bot-staging/Deploy/v1/tests/Unit/V1/CloudDeployClientTest.php
@@ -0,0 +1,2640 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return CloudDeployClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new CloudDeployClient($options);
+ }
+
+ /** @test */
+ public function abandonReleaseTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new AbandonReleaseResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->releaseName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]');
+ $response = $gapicClient->abandonRelease($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.deploy.v1.CloudDeploy/AbandonRelease', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function abandonReleaseExceptionTest()
+ {
+ $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->releaseName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]');
+ try {
+ $gapicClient->abandonRelease($formattedName);
+ // 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 advanceRolloutTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new AdvanceRolloutResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ $phaseId = 'phaseId-1676299681';
+ $response = $gapicClient->advanceRollout($formattedName, $phaseId);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.deploy.v1.CloudDeploy/AdvanceRollout', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualRequestObject->getPhaseId();
+ $this->assertProtobufEquals($phaseId, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function advanceRolloutExceptionTest()
+ {
+ $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->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ $phaseId = 'phaseId-1676299681';
+ try {
+ $gapicClient->advanceRollout($formattedName, $phaseId);
+ // 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 approveRolloutTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new ApproveRolloutResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ $approved = false;
+ $response = $gapicClient->approveRollout($formattedName, $approved);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.deploy.v1.CloudDeploy/ApproveRollout', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualRequestObject->getApproved();
+ $this->assertProtobufEquals($approved, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function approveRolloutExceptionTest()
+ {
+ $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->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ $approved = false;
+ try {
+ $gapicClient->approveRollout($formattedName, $approved);
+ // 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 cancelRolloutTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new CancelRolloutResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ $response = $gapicClient->cancelRollout($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.deploy.v1.CloudDeploy/CancelRollout', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function cancelRolloutExceptionTest()
+ {
+ $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->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ try {
+ $gapicClient->cancelRollout($formattedName);
+ // 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 createDeliveryPipelineTest()
+ {
+ $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/createDeliveryPipelineTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $uid = 'uid115792';
+ $description = 'description-1724546052';
+ $etag = 'etag3123477';
+ $suspended = false;
+ $expectedResponse = new DeliveryPipeline();
+ $expectedResponse->setName($name);
+ $expectedResponse->setUid($uid);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setEtag($etag);
+ $expectedResponse->setSuspended($suspended);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createDeliveryPipelineTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $deliveryPipelineId = 'deliveryPipelineId1972590605';
+ $deliveryPipeline = new DeliveryPipeline();
+ $response = $gapicClient->createDeliveryPipeline($formattedParent, $deliveryPipelineId, $deliveryPipeline);
+ $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.deploy.v1.CloudDeploy/CreateDeliveryPipeline', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getDeliveryPipelineId();
+ $this->assertProtobufEquals($deliveryPipelineId, $actualValue);
+ $actualValue = $actualApiRequestObject->getDeliveryPipeline();
+ $this->assertProtobufEquals($deliveryPipeline, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createDeliveryPipelineTest');
+ $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 createDeliveryPipelineExceptionTest()
+ {
+ $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/createDeliveryPipelineTest');
+ $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]');
+ $deliveryPipelineId = 'deliveryPipelineId1972590605';
+ $deliveryPipeline = new DeliveryPipeline();
+ $response = $gapicClient->createDeliveryPipeline($formattedParent, $deliveryPipelineId, $deliveryPipeline);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createDeliveryPipelineTest');
+ 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 createReleaseTest()
+ {
+ $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/createReleaseTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $uid = 'uid115792';
+ $description = 'description-1724546052';
+ $abandoned = true;
+ $skaffoldConfigUri = 'skaffoldConfigUri-860592176';
+ $skaffoldConfigPath = 'skaffoldConfigPath-908718527';
+ $etag = 'etag3123477';
+ $skaffoldVersion = 'skaffoldVersion-1146663017';
+ $expectedResponse = new Release();
+ $expectedResponse->setName($name);
+ $expectedResponse->setUid($uid);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setAbandoned($abandoned);
+ $expectedResponse->setSkaffoldConfigUri($skaffoldConfigUri);
+ $expectedResponse->setSkaffoldConfigPath($skaffoldConfigPath);
+ $expectedResponse->setEtag($etag);
+ $expectedResponse->setSkaffoldVersion($skaffoldVersion);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createReleaseTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->deliveryPipelineName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]');
+ $releaseId = 'releaseId-1517127597';
+ $release = new Release();
+ $response = $gapicClient->createRelease($formattedParent, $releaseId, $release);
+ $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.deploy.v1.CloudDeploy/CreateRelease', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getReleaseId();
+ $this->assertProtobufEquals($releaseId, $actualValue);
+ $actualValue = $actualApiRequestObject->getRelease();
+ $this->assertProtobufEquals($release, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createReleaseTest');
+ $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 createReleaseExceptionTest()
+ {
+ $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/createReleaseTest');
+ $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->deliveryPipelineName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]');
+ $releaseId = 'releaseId-1517127597';
+ $release = new Release();
+ $response = $gapicClient->createRelease($formattedParent, $releaseId, $release);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createReleaseTest');
+ 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 createRolloutTest()
+ {
+ $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/createRolloutTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $uid = 'uid115792';
+ $description = 'description-1724546052';
+ $targetId = 'targetId-815576439';
+ $failureReason = 'failureReason1743941273';
+ $deployingBuild = 'deployingBuild931623626';
+ $etag = 'etag3123477';
+ $controllerRollout = 'controllerRollout-146558962';
+ $expectedResponse = new Rollout();
+ $expectedResponse->setName($name);
+ $expectedResponse->setUid($uid);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setTargetId($targetId);
+ $expectedResponse->setFailureReason($failureReason);
+ $expectedResponse->setDeployingBuild($deployingBuild);
+ $expectedResponse->setEtag($etag);
+ $expectedResponse->setControllerRollout($controllerRollout);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createRolloutTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->releaseName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]');
+ $rolloutId = 'rolloutId-91142551';
+ $rollout = new Rollout();
+ $rolloutTargetId = 'rolloutTargetId509050717';
+ $rollout->setTargetId($rolloutTargetId);
+ $response = $gapicClient->createRollout($formattedParent, $rolloutId, $rollout);
+ $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.deploy.v1.CloudDeploy/CreateRollout', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getRolloutId();
+ $this->assertProtobufEquals($rolloutId, $actualValue);
+ $actualValue = $actualApiRequestObject->getRollout();
+ $this->assertProtobufEquals($rollout, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createRolloutTest');
+ $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 createRolloutExceptionTest()
+ {
+ $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/createRolloutTest');
+ $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->releaseName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]');
+ $rolloutId = 'rolloutId-91142551';
+ $rollout = new Rollout();
+ $rolloutTargetId = 'rolloutTargetId509050717';
+ $rollout->setTargetId($rolloutTargetId);
+ $response = $gapicClient->createRollout($formattedParent, $rolloutId, $rollout);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createRolloutTest');
+ 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 createTargetTest()
+ {
+ $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/createTargetTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $targetId2 = 'targetId2-2084907012';
+ $uid = 'uid115792';
+ $description = 'description-1724546052';
+ $requireApproval = false;
+ $etag = 'etag3123477';
+ $expectedResponse = new Target();
+ $expectedResponse->setName($name);
+ $expectedResponse->setTargetId($targetId2);
+ $expectedResponse->setUid($uid);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setRequireApproval($requireApproval);
+ $expectedResponse->setEtag($etag);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createTargetTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $targetId = 'targetId-815576439';
+ $target = new Target();
+ $response = $gapicClient->createTarget($formattedParent, $targetId, $target);
+ $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.deploy.v1.CloudDeploy/CreateTarget', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getTargetId();
+ $this->assertProtobufEquals($targetId, $actualValue);
+ $actualValue = $actualApiRequestObject->getTarget();
+ $this->assertProtobufEquals($target, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createTargetTest');
+ $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 createTargetExceptionTest()
+ {
+ $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/createTargetTest');
+ $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]');
+ $targetId = 'targetId-815576439';
+ $target = new Target();
+ $response = $gapicClient->createTarget($formattedParent, $targetId, $target);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createTargetTest');
+ 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 deleteDeliveryPipelineTest()
+ {
+ $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/deleteDeliveryPipelineTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteDeliveryPipelineTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->deliveryPipelineName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]');
+ $response = $gapicClient->deleteDeliveryPipeline($formattedName);
+ $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.deploy.v1.CloudDeploy/DeleteDeliveryPipeline', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteDeliveryPipelineTest');
+ $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 deleteDeliveryPipelineExceptionTest()
+ {
+ $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/deleteDeliveryPipelineTest');
+ $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->deliveryPipelineName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]');
+ $response = $gapicClient->deleteDeliveryPipeline($formattedName);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteDeliveryPipelineTest');
+ 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 deleteTargetTest()
+ {
+ $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/deleteTargetTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteTargetTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->targetName('[PROJECT]', '[LOCATION]', '[TARGET]');
+ $response = $gapicClient->deleteTarget($formattedName);
+ $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.deploy.v1.CloudDeploy/DeleteTarget', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteTargetTest');
+ $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 deleteTargetExceptionTest()
+ {
+ $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/deleteTargetTest');
+ $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->targetName('[PROJECT]', '[LOCATION]', '[TARGET]');
+ $response = $gapicClient->deleteTarget($formattedName);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteTargetTest');
+ 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 getConfigTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $defaultSkaffoldVersion = 'defaultSkaffoldVersion1930298837';
+ $expectedResponse = new Config();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDefaultSkaffoldVersion($defaultSkaffoldVersion);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->configName('[PROJECT]', '[LOCATION]');
+ $response = $gapicClient->getConfig($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.deploy.v1.CloudDeploy/GetConfig', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getConfigExceptionTest()
+ {
+ $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->configName('[PROJECT]', '[LOCATION]');
+ try {
+ $gapicClient->getConfig($formattedName);
+ // 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 getDeliveryPipelineTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $uid = 'uid115792';
+ $description = 'description-1724546052';
+ $etag = 'etag3123477';
+ $suspended = false;
+ $expectedResponse = new DeliveryPipeline();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setUid($uid);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setEtag($etag);
+ $expectedResponse->setSuspended($suspended);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->deliveryPipelineName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]');
+ $response = $gapicClient->getDeliveryPipeline($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.deploy.v1.CloudDeploy/GetDeliveryPipeline', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getDeliveryPipelineExceptionTest()
+ {
+ $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->deliveryPipelineName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]');
+ try {
+ $gapicClient->getDeliveryPipeline($formattedName);
+ // 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 getJobRunTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $uid = 'uid115792';
+ $phaseId = 'phaseId-1676299681';
+ $jobId = 'jobId-1154752291';
+ $etag = 'etag3123477';
+ $expectedResponse = new JobRun();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setUid($uid);
+ $expectedResponse->setPhaseId($phaseId);
+ $expectedResponse->setJobId($jobId);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->jobRunName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]', '[JOB_RUN]');
+ $response = $gapicClient->getJobRun($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.deploy.v1.CloudDeploy/GetJobRun', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getJobRunExceptionTest()
+ {
+ $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->jobRunName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]', '[JOB_RUN]');
+ try {
+ $gapicClient->getJobRun($formattedName);
+ // 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 getReleaseTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $uid = 'uid115792';
+ $description = 'description-1724546052';
+ $abandoned = true;
+ $skaffoldConfigUri = 'skaffoldConfigUri-860592176';
+ $skaffoldConfigPath = 'skaffoldConfigPath-908718527';
+ $etag = 'etag3123477';
+ $skaffoldVersion = 'skaffoldVersion-1146663017';
+ $expectedResponse = new Release();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setUid($uid);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setAbandoned($abandoned);
+ $expectedResponse->setSkaffoldConfigUri($skaffoldConfigUri);
+ $expectedResponse->setSkaffoldConfigPath($skaffoldConfigPath);
+ $expectedResponse->setEtag($etag);
+ $expectedResponse->setSkaffoldVersion($skaffoldVersion);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->releaseName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]');
+ $response = $gapicClient->getRelease($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.deploy.v1.CloudDeploy/GetRelease', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getReleaseExceptionTest()
+ {
+ $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->releaseName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]');
+ try {
+ $gapicClient->getRelease($formattedName);
+ // 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 getRolloutTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $uid = 'uid115792';
+ $description = 'description-1724546052';
+ $targetId = 'targetId-815576439';
+ $failureReason = 'failureReason1743941273';
+ $deployingBuild = 'deployingBuild931623626';
+ $etag = 'etag3123477';
+ $controllerRollout = 'controllerRollout-146558962';
+ $expectedResponse = new Rollout();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setUid($uid);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setTargetId($targetId);
+ $expectedResponse->setFailureReason($failureReason);
+ $expectedResponse->setDeployingBuild($deployingBuild);
+ $expectedResponse->setEtag($etag);
+ $expectedResponse->setControllerRollout($controllerRollout);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ $response = $gapicClient->getRollout($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.deploy.v1.CloudDeploy/GetRollout', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getRolloutExceptionTest()
+ {
+ $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->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ try {
+ $gapicClient->getRollout($formattedName);
+ // 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 getTargetTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $targetId = 'targetId-815576439';
+ $uid = 'uid115792';
+ $description = 'description-1724546052';
+ $requireApproval = false;
+ $etag = 'etag3123477';
+ $expectedResponse = new Target();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setTargetId($targetId);
+ $expectedResponse->setUid($uid);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setRequireApproval($requireApproval);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->targetName('[PROJECT]', '[LOCATION]', '[TARGET]');
+ $response = $gapicClient->getTarget($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.deploy.v1.CloudDeploy/GetTarget', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getTargetExceptionTest()
+ {
+ $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->targetName('[PROJECT]', '[LOCATION]', '[TARGET]');
+ try {
+ $gapicClient->getTarget($formattedName);
+ // 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 ignoreJobTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new IgnoreJobResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedRollout = $gapicClient->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ $phaseId = 'phaseId-1676299681';
+ $jobId = 'jobId-1154752291';
+ $response = $gapicClient->ignoreJob($formattedRollout, $phaseId, $jobId);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.deploy.v1.CloudDeploy/IgnoreJob', $actualFuncCall);
+ $actualValue = $actualRequestObject->getRollout();
+ $this->assertProtobufEquals($formattedRollout, $actualValue);
+ $actualValue = $actualRequestObject->getPhaseId();
+ $this->assertProtobufEquals($phaseId, $actualValue);
+ $actualValue = $actualRequestObject->getJobId();
+ $this->assertProtobufEquals($jobId, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function ignoreJobExceptionTest()
+ {
+ $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
+ $formattedRollout = $gapicClient->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ $phaseId = 'phaseId-1676299681';
+ $jobId = 'jobId-1154752291';
+ try {
+ $gapicClient->ignoreJob($formattedRollout, $phaseId, $jobId);
+ // 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 listDeliveryPipelinesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $deliveryPipelinesElement = new DeliveryPipeline();
+ $deliveryPipelines = [
+ $deliveryPipelinesElement,
+ ];
+ $expectedResponse = new ListDeliveryPipelinesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setDeliveryPipelines($deliveryPipelines);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $response = $gapicClient->listDeliveryPipelines($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getDeliveryPipelines()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.deploy.v1.CloudDeploy/ListDeliveryPipelines', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listDeliveryPipelinesExceptionTest()
+ {
+ $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]');
+ try {
+ $gapicClient->listDeliveryPipelines($formattedParent);
+ // 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 listJobRunsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $jobRunsElement = new JobRun();
+ $jobRuns = [
+ $jobRunsElement,
+ ];
+ $expectedResponse = new ListJobRunsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setJobRuns($jobRuns);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ $response = $gapicClient->listJobRuns($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getJobRuns()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.deploy.v1.CloudDeploy/ListJobRuns', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listJobRunsExceptionTest()
+ {
+ $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->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ try {
+ $gapicClient->listJobRuns($formattedParent);
+ // 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 listReleasesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $releasesElement = new Release();
+ $releases = [
+ $releasesElement,
+ ];
+ $expectedResponse = new ListReleasesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setReleases($releases);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->deliveryPipelineName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]');
+ $response = $gapicClient->listReleases($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getReleases()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.deploy.v1.CloudDeploy/ListReleases', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listReleasesExceptionTest()
+ {
+ $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->deliveryPipelineName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]');
+ try {
+ $gapicClient->listReleases($formattedParent);
+ // 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 listRolloutsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $rolloutsElement = new Rollout();
+ $rollouts = [
+ $rolloutsElement,
+ ];
+ $expectedResponse = new ListRolloutsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setRollouts($rollouts);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->releaseName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]');
+ $response = $gapicClient->listRollouts($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getRollouts()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.deploy.v1.CloudDeploy/ListRollouts', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listRolloutsExceptionTest()
+ {
+ $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->releaseName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]');
+ try {
+ $gapicClient->listRollouts($formattedParent);
+ // 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 listTargetsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $targetsElement = new Target();
+ $targets = [
+ $targetsElement,
+ ];
+ $expectedResponse = new ListTargetsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setTargets($targets);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $response = $gapicClient->listTargets($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getTargets()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.deploy.v1.CloudDeploy/ListTargets', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listTargetsExceptionTest()
+ {
+ $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]');
+ try {
+ $gapicClient->listTargets($formattedParent);
+ // 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 retryJobTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new RetryJobResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedRollout = $gapicClient->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ $phaseId = 'phaseId-1676299681';
+ $jobId = 'jobId-1154752291';
+ $response = $gapicClient->retryJob($formattedRollout, $phaseId, $jobId);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.deploy.v1.CloudDeploy/RetryJob', $actualFuncCall);
+ $actualValue = $actualRequestObject->getRollout();
+ $this->assertProtobufEquals($formattedRollout, $actualValue);
+ $actualValue = $actualRequestObject->getPhaseId();
+ $this->assertProtobufEquals($phaseId, $actualValue);
+ $actualValue = $actualRequestObject->getJobId();
+ $this->assertProtobufEquals($jobId, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function retryJobExceptionTest()
+ {
+ $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
+ $formattedRollout = $gapicClient->rolloutName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]');
+ $phaseId = 'phaseId-1676299681';
+ $jobId = 'jobId-1154752291';
+ try {
+ $gapicClient->retryJob($formattedRollout, $phaseId, $jobId);
+ // 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 terminateJobRunTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new TerminateJobRunResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->jobRunName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]', '[JOB_RUN]');
+ $response = $gapicClient->terminateJobRun($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.deploy.v1.CloudDeploy/TerminateJobRun', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function terminateJobRunExceptionTest()
+ {
+ $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->jobRunName('[PROJECT]', '[LOCATION]', '[DELIVERY_PIPELINE]', '[RELEASE]', '[ROLLOUT]', '[JOB_RUN]');
+ try {
+ $gapicClient->terminateJobRun($formattedName);
+ // 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 updateDeliveryPipelineTest()
+ {
+ $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/updateDeliveryPipelineTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $uid = 'uid115792';
+ $description = 'description-1724546052';
+ $etag = 'etag3123477';
+ $suspended = false;
+ $expectedResponse = new DeliveryPipeline();
+ $expectedResponse->setName($name);
+ $expectedResponse->setUid($uid);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setEtag($etag);
+ $expectedResponse->setSuspended($suspended);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateDeliveryPipelineTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $updateMask = new FieldMask();
+ $deliveryPipeline = new DeliveryPipeline();
+ $response = $gapicClient->updateDeliveryPipeline($updateMask, $deliveryPipeline);
+ $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.deploy.v1.CloudDeploy/UpdateDeliveryPipeline', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualApiRequestObject->getDeliveryPipeline();
+ $this->assertProtobufEquals($deliveryPipeline, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateDeliveryPipelineTest');
+ $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 updateDeliveryPipelineExceptionTest()
+ {
+ $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/updateDeliveryPipelineTest');
+ $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();
+ $deliveryPipeline = new DeliveryPipeline();
+ $response = $gapicClient->updateDeliveryPipeline($updateMask, $deliveryPipeline);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateDeliveryPipelineTest');
+ 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 updateTargetTest()
+ {
+ $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/updateTargetTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $targetId = 'targetId-815576439';
+ $uid = 'uid115792';
+ $description = 'description-1724546052';
+ $requireApproval = false;
+ $etag = 'etag3123477';
+ $expectedResponse = new Target();
+ $expectedResponse->setName($name);
+ $expectedResponse->setTargetId($targetId);
+ $expectedResponse->setUid($uid);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setRequireApproval($requireApproval);
+ $expectedResponse->setEtag($etag);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateTargetTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $updateMask = new FieldMask();
+ $target = new Target();
+ $response = $gapicClient->updateTarget($updateMask, $target);
+ $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.deploy.v1.CloudDeploy/UpdateTarget', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualApiRequestObject->getTarget();
+ $this->assertProtobufEquals($target, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateTargetTest');
+ $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 updateTargetExceptionTest()
+ {
+ $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/updateTargetTest');
+ $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();
+ $target = new Target();
+ $response = $gapicClient->updateTarget($updateMask, $target);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateTargetTest');
+ 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);
+ $response = $gapicClient->getLocation();
+ $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);
+ try {
+ $gapicClient->getLocation();
+ // 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);
+ $response = $gapicClient->listLocations();
+ $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);
+ try {
+ $gapicClient->listLocations();
+ // 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 getIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $version = 351608024;
+ $etag = '21';
+ $expectedResponse = new Policy();
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $response = $gapicClient->getIamPolicy($resource);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/GetIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getIamPolicyExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ try {
+ $gapicClient->getIamPolicy($resource);
+ // 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 setIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $version = 351608024;
+ $etag = '21';
+ $expectedResponse = new Policy();
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $policy = new Policy();
+ $response = $gapicClient->setIamPolicy($resource, $policy);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/SetIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $actualValue = $actualRequestObject->getPolicy();
+ $this->assertProtobufEquals($policy, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function setIamPolicyExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ $policy = new Policy();
+ try {
+ $gapicClient->setIamPolicy($resource, $policy);
+ // 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 testIamPermissionsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new TestIamPermissionsResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $permissions = [];
+ $response = $gapicClient->testIamPermissions($resource, $permissions);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/TestIamPermissions', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $actualValue = $actualRequestObject->getPermissions();
+ $this->assertProtobufEquals($permissions, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function testIamPermissionsExceptionTest()
+ {
+ $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
+ $resource = 'resource-341064690';
+ $permissions = [];
+ try {
+ $gapicClient->testIamPermissions($resource, $permissions);
+ // 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());
+ }
+}
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/GPBMetadata/Google/Devtools/Clouderrorreporting/V1Beta1/Common.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/GPBMetadata/Google/Devtools/Clouderrorreporting/V1Beta1/Common.php
new file mode 100644
index 000000000000..ec68ba0c1b8c
Binary files /dev/null and b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/GPBMetadata/Google/Devtools/Clouderrorreporting/V1Beta1/Common.php differ
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/GPBMetadata/Google/Devtools/Clouderrorreporting/V1Beta1/ErrorGroupService.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/GPBMetadata/Google/Devtools/Clouderrorreporting/V1Beta1/ErrorGroupService.php
new file mode 100644
index 000000000000..0990e13f9749
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/GPBMetadata/Google/Devtools/Clouderrorreporting/V1Beta1/ErrorGroupService.php
@@ -0,0 +1,42 @@
+internalAddGeneratedFile(
+ '
+á
+Egoogle/devtools/clouderrorreporting/v1beta1/error_group_service.proto+google.devtools.clouderrorreporting.v1beta1google/api/client.protogoogle/api/field_behavior.protogoogle/api/resource.proto8google/devtools/clouderrorreporting/v1beta1/common.proto"\\
+GetGroupRequestI
+
+group_name ( B5àAúA/
+-clouderrorreporting.googleapis.com/ErrorGroup"a
+UpdateGroupRequestK
+group (27.google.devtools.clouderrorreporting.v1beta1.ErrorGroupBàA2û
+ErrorGroupServiceÁ
+GetGroup<.google.devtools.clouderrorreporting.v1beta1.GetGroupRequest7.google.devtools.clouderrorreporting.v1beta1.ErrorGroup">‚Óä“+)/v1beta1/{group_name=projects/*/groups/*}ÚA
+group_nameÉ
+UpdateGroup?.google.devtools.clouderrorreporting.v1beta1.UpdateGroupRequest7.google.devtools.clouderrorreporting.v1beta1.ErrorGroup"@‚Óä“2)/v1beta1/{group.name=projects/*/groups/*}:groupÚAgroupVÊA"clouderrorreporting.googleapis.comÒA.https://www.googleapis.com/auth/cloud-platformB”
+/com.google.devtools.clouderrorreporting.v1beta1BErrorGroupServiceProtoPZOcloud.google.com/go/errorreporting/apiv1beta1/errorreportingpb;errorreportingpbøª#Google.Cloud.ErrorReporting.V1Beta1Ê#Google\\Cloud\\ErrorReporting\\V1beta1ê&Google::Cloud::ErrorReporting::V1beta1bproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/GPBMetadata/Google/Devtools/Clouderrorreporting/V1Beta1/ErrorStatsService.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/GPBMetadata/Google/Devtools/Clouderrorreporting/V1Beta1/ErrorStatsService.php
new file mode 100644
index 000000000000..8173694a253b
Binary files /dev/null and b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/GPBMetadata/Google/Devtools/Clouderrorreporting/V1Beta1/ErrorStatsService.php differ
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/GPBMetadata/Google/Devtools/Clouderrorreporting/V1Beta1/ReportErrorsService.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/GPBMetadata/Google/Devtools/Clouderrorreporting/V1Beta1/ReportErrorsService.php
new file mode 100644
index 000000000000..c0f1536911b8
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/GPBMetadata/Google/Devtools/Clouderrorreporting/V1Beta1/ReportErrorsService.php
@@ -0,0 +1,46 @@
+internalAddGeneratedFile(
+ '
+•
+Ggoogle/devtools/clouderrorreporting/v1beta1/report_errors_service.proto+google.devtools.clouderrorreporting.v1beta1google/api/client.protogoogle/api/field_behavior.protogoogle/api/resource.proto8google/devtools/clouderrorreporting/v1beta1/common.protogoogle/protobuf/timestamp.proto"¹
+ReportErrorEventRequestI
+project_name ( B3àAúA-
++cloudresourcemanager.googleapis.com/ProjectS
+event (2?.google.devtools.clouderrorreporting.v1beta1.ReportedErrorEventBàA"
+ReportErrorEventResponse"‹
+ReportedErrorEvent3
+
+event_time (2.google.protobuf.TimestampBàAY
+service_context (2;.google.devtools.clouderrorreporting.v1beta1.ServiceContextBàA
+message ( BàAO
+context (29.google.devtools.clouderrorreporting.v1beta1.ErrorContextBàA2å
+ReportErrorsServiceõ
+ReportErrorEventD.google.devtools.clouderrorreporting.v1beta1.ReportErrorEventRequestE.google.devtools.clouderrorreporting.v1beta1.ReportErrorEventResponse"T‚Óä“9"0/v1beta1/{project_name=projects/*}/events:report:eventÚAproject_name,eventVÊA"clouderrorreporting.googleapis.comÒA.https://www.googleapis.com/auth/cloud-platformB–
+/com.google.devtools.clouderrorreporting.v1beta1BReportErrorsServiceProtoPZOcloud.google.com/go/errorreporting/apiv1beta1/errorreportingpb;errorreportingpbøª#Google.Cloud.ErrorReporting.V1Beta1Ê#Google\\Cloud\\ErrorReporting\\V1beta1ê&Google::Cloud::ErrorReporting::V1beta1bproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/DeleteEventsRequest.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/DeleteEventsRequest.php
new file mode 100644
index 000000000000..f014607d1ded
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/DeleteEventsRequest.php
@@ -0,0 +1,102 @@
+google.devtools.clouderrorreporting.v1beta1.DeleteEventsRequest
+ */
+class DeleteEventsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The resource name of the Google Cloud Platform project. Written
+ * as `projects/{projectID}`, where `{projectID}` is the
+ * [Google Cloud Platform project
+ * ID](https://support.google.com/cloud/answer/6158840).
+ * Example: `projects/my-project-123`.
+ *
+ * Generated from protobuf field string project_name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $project_name = '';
+
+ /**
+ * @param string $projectName Required. The resource name of the Google Cloud Platform project. Written
+ * as `projects/{projectID}`, where `{projectID}` is the
+ * [Google Cloud Platform project
+ * ID](https://support.google.com/cloud/answer/6158840).
+ *
+ * Example: `projects/my-project-123`. Please see
+ * {@see ErrorStatsServiceClient::projectName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ErrorReporting\V1beta1\DeleteEventsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $projectName): self
+ {
+ return (new self())
+ ->setProjectName($projectName);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $project_name
+ * Required. The resource name of the Google Cloud Platform project. Written
+ * as `projects/{projectID}`, where `{projectID}` is the
+ * [Google Cloud Platform project
+ * ID](https://support.google.com/cloud/answer/6158840).
+ * Example: `projects/my-project-123`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Clouderrorreporting\V1Beta1\ErrorStatsService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The resource name of the Google Cloud Platform project. Written
+ * as `projects/{projectID}`, where `{projectID}` is the
+ * [Google Cloud Platform project
+ * ID](https://support.google.com/cloud/answer/6158840).
+ * Example: `projects/my-project-123`.
+ *
+ * Generated from protobuf field string project_name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getProjectName()
+ {
+ return $this->project_name;
+ }
+
+ /**
+ * Required. The resource name of the Google Cloud Platform project. Written
+ * as `projects/{projectID}`, where `{projectID}` is the
+ * [Google Cloud Platform project
+ * ID](https://support.google.com/cloud/answer/6158840).
+ * Example: `projects/my-project-123`.
+ *
+ * Generated from protobuf field string project_name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setProjectName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->project_name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/DeleteEventsResponse.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/DeleteEventsResponse.php
new file mode 100644
index 000000000000..53e2ba2358d4
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/DeleteEventsResponse.php
@@ -0,0 +1,33 @@
+google.devtools.clouderrorreporting.v1beta1.DeleteEventsResponse
+ */
+class DeleteEventsResponse extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Clouderrorreporting\V1Beta1\ErrorStatsService::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ErrorContext.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ErrorContext.php
new file mode 100644
index 000000000000..1c5566968212
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ErrorContext.php
@@ -0,0 +1,206 @@
+google.devtools.clouderrorreporting.v1beta1.ErrorContext
+ */
+class ErrorContext extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The HTTP request which was processed when the error was
+ * triggered.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.HttpRequestContext http_request = 1;
+ */
+ protected $http_request = null;
+ /**
+ * The user who caused or was affected by the crash.
+ * This can be a user ID, an email address, or an arbitrary token that
+ * uniquely identifies the user.
+ * When sending an error report, leave this field empty if the user was not
+ * logged in. In this case the
+ * Error Reporting system will use other data, such as remote IP address, to
+ * distinguish affected users. See `affected_users_count` in
+ * `ErrorGroupStats`.
+ *
+ * Generated from protobuf field string user = 2;
+ */
+ protected $user = '';
+ /**
+ * The location in the source code where the decision was made to
+ * report the error, usually the place where it was logged.
+ * For a logged exception this would be the source line where the
+ * exception is logged, usually close to the place where it was
+ * caught.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.SourceLocation report_location = 3;
+ */
+ protected $report_location = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\ErrorReporting\V1beta1\HttpRequestContext $http_request
+ * The HTTP request which was processed when the error was
+ * triggered.
+ * @type string $user
+ * The user who caused or was affected by the crash.
+ * This can be a user ID, an email address, or an arbitrary token that
+ * uniquely identifies the user.
+ * When sending an error report, leave this field empty if the user was not
+ * logged in. In this case the
+ * Error Reporting system will use other data, such as remote IP address, to
+ * distinguish affected users. See `affected_users_count` in
+ * `ErrorGroupStats`.
+ * @type \Google\Cloud\ErrorReporting\V1beta1\SourceLocation $report_location
+ * The location in the source code where the decision was made to
+ * report the error, usually the place where it was logged.
+ * For a logged exception this would be the source line where the
+ * exception is logged, usually close to the place where it was
+ * caught.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Clouderrorreporting\V1Beta1\Common::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The HTTP request which was processed when the error was
+ * triggered.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.HttpRequestContext http_request = 1;
+ * @return \Google\Cloud\ErrorReporting\V1beta1\HttpRequestContext|null
+ */
+ public function getHttpRequest()
+ {
+ return $this->http_request;
+ }
+
+ public function hasHttpRequest()
+ {
+ return isset($this->http_request);
+ }
+
+ public function clearHttpRequest()
+ {
+ unset($this->http_request);
+ }
+
+ /**
+ * The HTTP request which was processed when the error was
+ * triggered.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.HttpRequestContext http_request = 1;
+ * @param \Google\Cloud\ErrorReporting\V1beta1\HttpRequestContext $var
+ * @return $this
+ */
+ public function setHttpRequest($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ErrorReporting\V1beta1\HttpRequestContext::class);
+ $this->http_request = $var;
+
+ return $this;
+ }
+
+ /**
+ * The user who caused or was affected by the crash.
+ * This can be a user ID, an email address, or an arbitrary token that
+ * uniquely identifies the user.
+ * When sending an error report, leave this field empty if the user was not
+ * logged in. In this case the
+ * Error Reporting system will use other data, such as remote IP address, to
+ * distinguish affected users. See `affected_users_count` in
+ * `ErrorGroupStats`.
+ *
+ * Generated from protobuf field string user = 2;
+ * @return string
+ */
+ public function getUser()
+ {
+ return $this->user;
+ }
+
+ /**
+ * The user who caused or was affected by the crash.
+ * This can be a user ID, an email address, or an arbitrary token that
+ * uniquely identifies the user.
+ * When sending an error report, leave this field empty if the user was not
+ * logged in. In this case the
+ * Error Reporting system will use other data, such as remote IP address, to
+ * distinguish affected users. See `affected_users_count` in
+ * `ErrorGroupStats`.
+ *
+ * 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;
+ }
+
+ /**
+ * The location in the source code where the decision was made to
+ * report the error, usually the place where it was logged.
+ * For a logged exception this would be the source line where the
+ * exception is logged, usually close to the place where it was
+ * caught.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.SourceLocation report_location = 3;
+ * @return \Google\Cloud\ErrorReporting\V1beta1\SourceLocation|null
+ */
+ public function getReportLocation()
+ {
+ return $this->report_location;
+ }
+
+ public function hasReportLocation()
+ {
+ return isset($this->report_location);
+ }
+
+ public function clearReportLocation()
+ {
+ unset($this->report_location);
+ }
+
+ /**
+ * The location in the source code where the decision was made to
+ * report the error, usually the place where it was logged.
+ * For a logged exception this would be the source line where the
+ * exception is logged, usually close to the place where it was
+ * caught.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.SourceLocation report_location = 3;
+ * @param \Google\Cloud\ErrorReporting\V1beta1\SourceLocation $var
+ * @return $this
+ */
+ public function setReportLocation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ErrorReporting\V1beta1\SourceLocation::class);
+ $this->report_location = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ErrorEvent.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ErrorEvent.php
new file mode 100644
index 000000000000..64d7396ca2d5
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ErrorEvent.php
@@ -0,0 +1,207 @@
+google.devtools.clouderrorreporting.v1beta1.ErrorEvent
+ */
+class ErrorEvent extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Time when the event occurred as provided in the error report.
+ * If the report did not contain a timestamp, the time the error was received
+ * by the Error Reporting system is used.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp event_time = 1;
+ */
+ protected $event_time = null;
+ /**
+ * The `ServiceContext` for which this error was reported.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ServiceContext service_context = 2;
+ */
+ protected $service_context = null;
+ /**
+ * The stack trace that was reported or logged by the service.
+ *
+ * Generated from protobuf field string message = 3;
+ */
+ protected $message = '';
+ /**
+ * Data about the context in which the error occurred.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ErrorContext context = 5;
+ */
+ protected $context = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Timestamp $event_time
+ * Time when the event occurred as provided in the error report.
+ * If the report did not contain a timestamp, the time the error was received
+ * by the Error Reporting system is used.
+ * @type \Google\Cloud\ErrorReporting\V1beta1\ServiceContext $service_context
+ * The `ServiceContext` for which this error was reported.
+ * @type string $message
+ * The stack trace that was reported or logged by the service.
+ * @type \Google\Cloud\ErrorReporting\V1beta1\ErrorContext $context
+ * Data about the context in which the error occurred.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Clouderrorreporting\V1Beta1\Common::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Time when the event occurred as provided in the error report.
+ * If the report did not contain a timestamp, the time the error was received
+ * by the Error Reporting system is used.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp event_time = 1;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getEventTime()
+ {
+ return $this->event_time;
+ }
+
+ public function hasEventTime()
+ {
+ return isset($this->event_time);
+ }
+
+ public function clearEventTime()
+ {
+ unset($this->event_time);
+ }
+
+ /**
+ * Time when the event occurred as provided in the error report.
+ * If the report did not contain a timestamp, the time the error was received
+ * by the Error Reporting system is used.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp event_time = 1;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setEventTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->event_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * The `ServiceContext` for which this error was reported.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ServiceContext service_context = 2;
+ * @return \Google\Cloud\ErrorReporting\V1beta1\ServiceContext|null
+ */
+ public function getServiceContext()
+ {
+ return $this->service_context;
+ }
+
+ public function hasServiceContext()
+ {
+ return isset($this->service_context);
+ }
+
+ public function clearServiceContext()
+ {
+ unset($this->service_context);
+ }
+
+ /**
+ * The `ServiceContext` for which this error was reported.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ServiceContext service_context = 2;
+ * @param \Google\Cloud\ErrorReporting\V1beta1\ServiceContext $var
+ * @return $this
+ */
+ public function setServiceContext($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ErrorReporting\V1beta1\ServiceContext::class);
+ $this->service_context = $var;
+
+ return $this;
+ }
+
+ /**
+ * The stack trace that was reported or logged by the service.
+ *
+ * Generated from protobuf field string message = 3;
+ * @return string
+ */
+ public function getMessage()
+ {
+ return $this->message;
+ }
+
+ /**
+ * The stack trace that was reported or logged by the service.
+ *
+ * Generated from protobuf field string message = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->message = $var;
+
+ return $this;
+ }
+
+ /**
+ * Data about the context in which the error occurred.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ErrorContext context = 5;
+ * @return \Google\Cloud\ErrorReporting\V1beta1\ErrorContext|null
+ */
+ public function getContext()
+ {
+ return $this->context;
+ }
+
+ public function hasContext()
+ {
+ return isset($this->context);
+ }
+
+ public function clearContext()
+ {
+ unset($this->context);
+ }
+
+ /**
+ * Data about the context in which the error occurred.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ErrorContext context = 5;
+ * @param \Google\Cloud\ErrorReporting\V1beta1\ErrorContext $var
+ * @return $this
+ */
+ public function setContext($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ErrorReporting\V1beta1\ErrorContext::class);
+ $this->context = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ErrorGroup.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ErrorGroup.php
new file mode 100644
index 000000000000..0b3b5c6b574a
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ErrorGroup.php
@@ -0,0 +1,181 @@
+google.devtools.clouderrorreporting.v1beta1.ErrorGroup
+ */
+class ErrorGroup extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The group resource name.
+ * Example: projects/my-project-123/groups/CNSgkpnppqKCUw
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * Group IDs are unique for a given project. If the same kind of error
+ * occurs in different service contexts, it will receive the same group ID.
+ *
+ * Generated from protobuf field string group_id = 2;
+ */
+ protected $group_id = '';
+ /**
+ * Associated tracking issues.
+ *
+ * Generated from protobuf field repeated .google.devtools.clouderrorreporting.v1beta1.TrackingIssue tracking_issues = 3;
+ */
+ private $tracking_issues;
+ /**
+ * Error group's resolution status.
+ * An unspecified resolution status will be interpreted as OPEN
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ResolutionStatus resolution_status = 5;
+ */
+ protected $resolution_status = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The group resource name.
+ * Example: projects/my-project-123/groups/CNSgkpnppqKCUw
+ * @type string $group_id
+ * Group IDs are unique for a given project. If the same kind of error
+ * occurs in different service contexts, it will receive the same group ID.
+ * @type array<\Google\Cloud\ErrorReporting\V1beta1\TrackingIssue>|\Google\Protobuf\Internal\RepeatedField $tracking_issues
+ * Associated tracking issues.
+ * @type int $resolution_status
+ * Error group's resolution status.
+ * An unspecified resolution status will be interpreted as OPEN
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Clouderrorreporting\V1Beta1\Common::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The group resource name.
+ * Example: projects/my-project-123/groups/CNSgkpnppqKCUw
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The group resource name.
+ * Example: projects/my-project-123/groups/CNSgkpnppqKCUw
+ *
+ * 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;
+ }
+
+ /**
+ * Group IDs are unique for a given project. If the same kind of error
+ * occurs in different service contexts, it will receive the same group ID.
+ *
+ * Generated from protobuf field string group_id = 2;
+ * @return string
+ */
+ public function getGroupId()
+ {
+ return $this->group_id;
+ }
+
+ /**
+ * Group IDs are unique for a given project. If the same kind of error
+ * occurs in different service contexts, it will receive the same group ID.
+ *
+ * Generated from protobuf field string group_id = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setGroupId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->group_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Associated tracking issues.
+ *
+ * Generated from protobuf field repeated .google.devtools.clouderrorreporting.v1beta1.TrackingIssue tracking_issues = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTrackingIssues()
+ {
+ return $this->tracking_issues;
+ }
+
+ /**
+ * Associated tracking issues.
+ *
+ * Generated from protobuf field repeated .google.devtools.clouderrorreporting.v1beta1.TrackingIssue tracking_issues = 3;
+ * @param array<\Google\Cloud\ErrorReporting\V1beta1\TrackingIssue>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTrackingIssues($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ErrorReporting\V1beta1\TrackingIssue::class);
+ $this->tracking_issues = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Error group's resolution status.
+ * An unspecified resolution status will be interpreted as OPEN
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ResolutionStatus resolution_status = 5;
+ * @return int
+ */
+ public function getResolutionStatus()
+ {
+ return $this->resolution_status;
+ }
+
+ /**
+ * Error group's resolution status.
+ * An unspecified resolution status will be interpreted as OPEN
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ResolutionStatus resolution_status = 5;
+ * @param int $var
+ * @return $this
+ */
+ public function setResolutionStatus($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ErrorReporting\V1beta1\ResolutionStatus::class);
+ $this->resolution_status = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ErrorGroupOrder.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ErrorGroupOrder.php
new file mode 100644
index 000000000000..fd726de75f01
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ErrorGroupOrder.php
@@ -0,0 +1,76 @@
+google.devtools.clouderrorreporting.v1beta1.ErrorGroupOrder
+ */
+class ErrorGroupOrder
+{
+ /**
+ * No group order specified.
+ *
+ * Generated from protobuf enum GROUP_ORDER_UNSPECIFIED = 0;
+ */
+ const GROUP_ORDER_UNSPECIFIED = 0;
+ /**
+ * Total count of errors in the given time window in descending order.
+ *
+ * Generated from protobuf enum COUNT_DESC = 1;
+ */
+ const COUNT_DESC = 1;
+ /**
+ * Timestamp when the group was last seen in the given time window
+ * in descending order.
+ *
+ * Generated from protobuf enum LAST_SEEN_DESC = 2;
+ */
+ const LAST_SEEN_DESC = 2;
+ /**
+ * Timestamp when the group was created in descending order.
+ *
+ * Generated from protobuf enum CREATED_DESC = 3;
+ */
+ const CREATED_DESC = 3;
+ /**
+ * Number of affected users in the given time window in descending order.
+ *
+ * Generated from protobuf enum AFFECTED_USERS_DESC = 4;
+ */
+ const AFFECTED_USERS_DESC = 4;
+
+ private static $valueToName = [
+ self::GROUP_ORDER_UNSPECIFIED => 'GROUP_ORDER_UNSPECIFIED',
+ self::COUNT_DESC => 'COUNT_DESC',
+ self::LAST_SEEN_DESC => 'LAST_SEEN_DESC',
+ self::CREATED_DESC => 'CREATED_DESC',
+ self::AFFECTED_USERS_DESC => 'AFFECTED_USERS_DESC',
+ ];
+
+ 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/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ErrorGroupServiceGrpcClient.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ErrorGroupServiceGrpcClient.php
new file mode 100644
index 000000000000..5f5856a4f6d7
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ErrorGroupServiceGrpcClient.php
@@ -0,0 +1,66 @@
+_simpleRequest('/google.devtools.clouderrorreporting.v1beta1.ErrorGroupService/GetGroup',
+ $argument,
+ ['\Google\Cloud\ErrorReporting\V1beta1\ErrorGroup', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Replace the data for the specified group.
+ * Fails if the group does not exist.
+ * @param \Google\Cloud\ErrorReporting\V1beta1\UpdateGroupRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function UpdateGroup(\Google\Cloud\ErrorReporting\V1beta1\UpdateGroupRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.devtools.clouderrorreporting.v1beta1.ErrorGroupService/UpdateGroup',
+ $argument,
+ ['\Google\Cloud\ErrorReporting\V1beta1\ErrorGroup', 'decode'],
+ $metadata, $options);
+ }
+
+}
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ErrorGroupStats.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ErrorGroupStats.php
new file mode 100644
index 000000000000..d76b7b2712ee
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ErrorGroupStats.php
@@ -0,0 +1,488 @@
+google.devtools.clouderrorreporting.v1beta1.ErrorGroupStats
+ */
+class ErrorGroupStats extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Group data that is independent of the filter criteria.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ErrorGroup group = 1;
+ */
+ protected $group = null;
+ /**
+ * Approximate total number of events in the given group that match
+ * the filter criteria.
+ *
+ * Generated from protobuf field int64 count = 2;
+ */
+ protected $count = 0;
+ /**
+ * Approximate number of affected users in the given group that
+ * match the filter criteria.
+ * Users are distinguished by data in the `ErrorContext` of the
+ * individual error events, such as their login name or their remote
+ * IP address in case of HTTP requests.
+ * The number of affected users can be zero even if the number of
+ * errors is non-zero if no data was provided from which the
+ * affected user could be deduced.
+ * Users are counted based on data in the request
+ * context that was provided in the error report. If more users are
+ * implicitly affected, such as due to a crash of the whole service,
+ * this is not reflected here.
+ *
+ * Generated from protobuf field int64 affected_users_count = 3;
+ */
+ protected $affected_users_count = 0;
+ /**
+ * Approximate number of occurrences over time.
+ * Timed counts returned by ListGroups are guaranteed to be:
+ * - Inside the requested time interval
+ * - Non-overlapping, and
+ * - Ordered by ascending time.
+ *
+ * Generated from protobuf field repeated .google.devtools.clouderrorreporting.v1beta1.TimedCount timed_counts = 4;
+ */
+ private $timed_counts;
+ /**
+ * Approximate first occurrence that was ever seen for this group
+ * and which matches the given filter criteria, ignoring the
+ * time_range that was specified in the request.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp first_seen_time = 5;
+ */
+ protected $first_seen_time = null;
+ /**
+ * Approximate last occurrence that was ever seen for this group and
+ * which matches the given filter criteria, ignoring the time_range
+ * that was specified in the request.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp last_seen_time = 6;
+ */
+ protected $last_seen_time = null;
+ /**
+ * Service contexts with a non-zero error count for the given filter
+ * criteria. This list can be truncated if multiple services are affected.
+ * Refer to `num_affected_services` for the total count.
+ *
+ * Generated from protobuf field repeated .google.devtools.clouderrorreporting.v1beta1.ServiceContext affected_services = 7;
+ */
+ private $affected_services;
+ /**
+ * The total number of services with a non-zero error count for the given
+ * filter criteria.
+ *
+ * Generated from protobuf field int32 num_affected_services = 8;
+ */
+ protected $num_affected_services = 0;
+ /**
+ * An arbitrary event that is chosen as representative for the whole group.
+ * The representative event is intended to be used as a quick preview for
+ * the whole group. Events in the group are usually sufficiently similar
+ * to each other such that showing an arbitrary representative provides
+ * insight into the characteristics of the group as a whole.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ErrorEvent representative = 9;
+ */
+ protected $representative = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\ErrorReporting\V1beta1\ErrorGroup $group
+ * Group data that is independent of the filter criteria.
+ * @type int|string $count
+ * Approximate total number of events in the given group that match
+ * the filter criteria.
+ * @type int|string $affected_users_count
+ * Approximate number of affected users in the given group that
+ * match the filter criteria.
+ * Users are distinguished by data in the `ErrorContext` of the
+ * individual error events, such as their login name or their remote
+ * IP address in case of HTTP requests.
+ * The number of affected users can be zero even if the number of
+ * errors is non-zero if no data was provided from which the
+ * affected user could be deduced.
+ * Users are counted based on data in the request
+ * context that was provided in the error report. If more users are
+ * implicitly affected, such as due to a crash of the whole service,
+ * this is not reflected here.
+ * @type array<\Google\Cloud\ErrorReporting\V1beta1\TimedCount>|\Google\Protobuf\Internal\RepeatedField $timed_counts
+ * Approximate number of occurrences over time.
+ * Timed counts returned by ListGroups are guaranteed to be:
+ * - Inside the requested time interval
+ * - Non-overlapping, and
+ * - Ordered by ascending time.
+ * @type \Google\Protobuf\Timestamp $first_seen_time
+ * Approximate first occurrence that was ever seen for this group
+ * and which matches the given filter criteria, ignoring the
+ * time_range that was specified in the request.
+ * @type \Google\Protobuf\Timestamp $last_seen_time
+ * Approximate last occurrence that was ever seen for this group and
+ * which matches the given filter criteria, ignoring the time_range
+ * that was specified in the request.
+ * @type array<\Google\Cloud\ErrorReporting\V1beta1\ServiceContext>|\Google\Protobuf\Internal\RepeatedField $affected_services
+ * Service contexts with a non-zero error count for the given filter
+ * criteria. This list can be truncated if multiple services are affected.
+ * Refer to `num_affected_services` for the total count.
+ * @type int $num_affected_services
+ * The total number of services with a non-zero error count for the given
+ * filter criteria.
+ * @type \Google\Cloud\ErrorReporting\V1beta1\ErrorEvent $representative
+ * An arbitrary event that is chosen as representative for the whole group.
+ * The representative event is intended to be used as a quick preview for
+ * the whole group. Events in the group are usually sufficiently similar
+ * to each other such that showing an arbitrary representative provides
+ * insight into the characteristics of the group as a whole.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Clouderrorreporting\V1Beta1\ErrorStatsService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Group data that is independent of the filter criteria.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ErrorGroup group = 1;
+ * @return \Google\Cloud\ErrorReporting\V1beta1\ErrorGroup|null
+ */
+ public function getGroup()
+ {
+ return $this->group;
+ }
+
+ public function hasGroup()
+ {
+ return isset($this->group);
+ }
+
+ public function clearGroup()
+ {
+ unset($this->group);
+ }
+
+ /**
+ * Group data that is independent of the filter criteria.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ErrorGroup group = 1;
+ * @param \Google\Cloud\ErrorReporting\V1beta1\ErrorGroup $var
+ * @return $this
+ */
+ public function setGroup($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ErrorReporting\V1beta1\ErrorGroup::class);
+ $this->group = $var;
+
+ return $this;
+ }
+
+ /**
+ * Approximate total number of events in the given group that match
+ * the filter criteria.
+ *
+ * Generated from protobuf field int64 count = 2;
+ * @return int|string
+ */
+ public function getCount()
+ {
+ return $this->count;
+ }
+
+ /**
+ * Approximate total number of events in the given group that match
+ * the filter criteria.
+ *
+ * Generated from protobuf field int64 count = 2;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Approximate number of affected users in the given group that
+ * match the filter criteria.
+ * Users are distinguished by data in the `ErrorContext` of the
+ * individual error events, such as their login name or their remote
+ * IP address in case of HTTP requests.
+ * The number of affected users can be zero even if the number of
+ * errors is non-zero if no data was provided from which the
+ * affected user could be deduced.
+ * Users are counted based on data in the request
+ * context that was provided in the error report. If more users are
+ * implicitly affected, such as due to a crash of the whole service,
+ * this is not reflected here.
+ *
+ * Generated from protobuf field int64 affected_users_count = 3;
+ * @return int|string
+ */
+ public function getAffectedUsersCount()
+ {
+ return $this->affected_users_count;
+ }
+
+ /**
+ * Approximate number of affected users in the given group that
+ * match the filter criteria.
+ * Users are distinguished by data in the `ErrorContext` of the
+ * individual error events, such as their login name or their remote
+ * IP address in case of HTTP requests.
+ * The number of affected users can be zero even if the number of
+ * errors is non-zero if no data was provided from which the
+ * affected user could be deduced.
+ * Users are counted based on data in the request
+ * context that was provided in the error report. If more users are
+ * implicitly affected, such as due to a crash of the whole service,
+ * this is not reflected here.
+ *
+ * Generated from protobuf field int64 affected_users_count = 3;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setAffectedUsersCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->affected_users_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Approximate number of occurrences over time.
+ * Timed counts returned by ListGroups are guaranteed to be:
+ * - Inside the requested time interval
+ * - Non-overlapping, and
+ * - Ordered by ascending time.
+ *
+ * Generated from protobuf field repeated .google.devtools.clouderrorreporting.v1beta1.TimedCount timed_counts = 4;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTimedCounts()
+ {
+ return $this->timed_counts;
+ }
+
+ /**
+ * Approximate number of occurrences over time.
+ * Timed counts returned by ListGroups are guaranteed to be:
+ * - Inside the requested time interval
+ * - Non-overlapping, and
+ * - Ordered by ascending time.
+ *
+ * Generated from protobuf field repeated .google.devtools.clouderrorreporting.v1beta1.TimedCount timed_counts = 4;
+ * @param array<\Google\Cloud\ErrorReporting\V1beta1\TimedCount>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTimedCounts($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ErrorReporting\V1beta1\TimedCount::class);
+ $this->timed_counts = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Approximate first occurrence that was ever seen for this group
+ * and which matches the given filter criteria, ignoring the
+ * time_range that was specified in the request.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp first_seen_time = 5;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getFirstSeenTime()
+ {
+ return $this->first_seen_time;
+ }
+
+ public function hasFirstSeenTime()
+ {
+ return isset($this->first_seen_time);
+ }
+
+ public function clearFirstSeenTime()
+ {
+ unset($this->first_seen_time);
+ }
+
+ /**
+ * Approximate first occurrence that was ever seen for this group
+ * and which matches the given filter criteria, ignoring the
+ * time_range that was specified in the request.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp first_seen_time = 5;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setFirstSeenTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->first_seen_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Approximate last occurrence that was ever seen for this group and
+ * which matches the given filter criteria, ignoring the time_range
+ * that was specified in the request.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp last_seen_time = 6;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getLastSeenTime()
+ {
+ return $this->last_seen_time;
+ }
+
+ public function hasLastSeenTime()
+ {
+ return isset($this->last_seen_time);
+ }
+
+ public function clearLastSeenTime()
+ {
+ unset($this->last_seen_time);
+ }
+
+ /**
+ * Approximate last occurrence that was ever seen for this group and
+ * which matches the given filter criteria, ignoring the time_range
+ * that was specified in the request.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp last_seen_time = 6;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setLastSeenTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->last_seen_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Service contexts with a non-zero error count for the given filter
+ * criteria. This list can be truncated if multiple services are affected.
+ * Refer to `num_affected_services` for the total count.
+ *
+ * Generated from protobuf field repeated .google.devtools.clouderrorreporting.v1beta1.ServiceContext affected_services = 7;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAffectedServices()
+ {
+ return $this->affected_services;
+ }
+
+ /**
+ * Service contexts with a non-zero error count for the given filter
+ * criteria. This list can be truncated if multiple services are affected.
+ * Refer to `num_affected_services` for the total count.
+ *
+ * Generated from protobuf field repeated .google.devtools.clouderrorreporting.v1beta1.ServiceContext affected_services = 7;
+ * @param array<\Google\Cloud\ErrorReporting\V1beta1\ServiceContext>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAffectedServices($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ErrorReporting\V1beta1\ServiceContext::class);
+ $this->affected_services = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The total number of services with a non-zero error count for the given
+ * filter criteria.
+ *
+ * Generated from protobuf field int32 num_affected_services = 8;
+ * @return int
+ */
+ public function getNumAffectedServices()
+ {
+ return $this->num_affected_services;
+ }
+
+ /**
+ * The total number of services with a non-zero error count for the given
+ * filter criteria.
+ *
+ * Generated from protobuf field int32 num_affected_services = 8;
+ * @param int $var
+ * @return $this
+ */
+ public function setNumAffectedServices($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->num_affected_services = $var;
+
+ return $this;
+ }
+
+ /**
+ * An arbitrary event that is chosen as representative for the whole group.
+ * The representative event is intended to be used as a quick preview for
+ * the whole group. Events in the group are usually sufficiently similar
+ * to each other such that showing an arbitrary representative provides
+ * insight into the characteristics of the group as a whole.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ErrorEvent representative = 9;
+ * @return \Google\Cloud\ErrorReporting\V1beta1\ErrorEvent|null
+ */
+ public function getRepresentative()
+ {
+ return $this->representative;
+ }
+
+ public function hasRepresentative()
+ {
+ return isset($this->representative);
+ }
+
+ public function clearRepresentative()
+ {
+ unset($this->representative);
+ }
+
+ /**
+ * An arbitrary event that is chosen as representative for the whole group.
+ * The representative event is intended to be used as a quick preview for
+ * the whole group. Events in the group are usually sufficiently similar
+ * to each other such that showing an arbitrary representative provides
+ * insight into the characteristics of the group as a whole.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ErrorEvent representative = 9;
+ * @param \Google\Cloud\ErrorReporting\V1beta1\ErrorEvent $var
+ * @return $this
+ */
+ public function setRepresentative($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ErrorReporting\V1beta1\ErrorEvent::class);
+ $this->representative = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ErrorStatsServiceGrpcClient.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ErrorStatsServiceGrpcClient.php
new file mode 100644
index 000000000000..2a17f17379b1
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ErrorStatsServiceGrpcClient.php
@@ -0,0 +1,81 @@
+_simpleRequest('/google.devtools.clouderrorreporting.v1beta1.ErrorStatsService/ListGroupStats',
+ $argument,
+ ['\Google\Cloud\ErrorReporting\V1beta1\ListGroupStatsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Lists the specified events.
+ * @param \Google\Cloud\ErrorReporting\V1beta1\ListEventsRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ListEvents(\Google\Cloud\ErrorReporting\V1beta1\ListEventsRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.devtools.clouderrorreporting.v1beta1.ErrorStatsService/ListEvents',
+ $argument,
+ ['\Google\Cloud\ErrorReporting\V1beta1\ListEventsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Deletes all error events of a given project.
+ * @param \Google\Cloud\ErrorReporting\V1beta1\DeleteEventsRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function DeleteEvents(\Google\Cloud\ErrorReporting\V1beta1\DeleteEventsRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.devtools.clouderrorreporting.v1beta1.ErrorStatsService/DeleteEvents',
+ $argument,
+ ['\Google\Cloud\ErrorReporting\V1beta1\DeleteEventsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+}
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/GetGroupRequest.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/GetGroupRequest.php
new file mode 100644
index 000000000000..c9e90c7098fe
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/GetGroupRequest.php
@@ -0,0 +1,102 @@
+google.devtools.clouderrorreporting.v1beta1.GetGroupRequest
+ */
+class GetGroupRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The group resource name. Written as
+ * `projects/{projectID}/groups/{group_name}`. Call
+ * [`groupStats.list`](https://cloud.google.com/error-reporting/reference/rest/v1beta1/projects.groupStats/list)
+ * to return a list of groups belonging to this project.
+ * Example: `projects/my-project-123/groups/my-group`
+ *
+ * Generated from protobuf field string group_name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $group_name = '';
+
+ /**
+ * @param string $groupName Required. The group resource name. Written as
+ * `projects/{projectID}/groups/{group_name}`. Call
+ * [`groupStats.list`](https://cloud.google.com/error-reporting/reference/rest/v1beta1/projects.groupStats/list)
+ * to return a list of groups belonging to this project.
+ *
+ * Example: `projects/my-project-123/groups/my-group`
+ * Please see {@see ErrorGroupServiceClient::errorGroupName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ErrorReporting\V1beta1\GetGroupRequest
+ *
+ * @experimental
+ */
+ public static function build(string $groupName): self
+ {
+ return (new self())
+ ->setGroupName($groupName);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $group_name
+ * Required. The group resource name. Written as
+ * `projects/{projectID}/groups/{group_name}`. Call
+ * [`groupStats.list`](https://cloud.google.com/error-reporting/reference/rest/v1beta1/projects.groupStats/list)
+ * to return a list of groups belonging to this project.
+ * Example: `projects/my-project-123/groups/my-group`
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Clouderrorreporting\V1Beta1\ErrorGroupService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The group resource name. Written as
+ * `projects/{projectID}/groups/{group_name}`. Call
+ * [`groupStats.list`](https://cloud.google.com/error-reporting/reference/rest/v1beta1/projects.groupStats/list)
+ * to return a list of groups belonging to this project.
+ * Example: `projects/my-project-123/groups/my-group`
+ *
+ * Generated from protobuf field string group_name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getGroupName()
+ {
+ return $this->group_name;
+ }
+
+ /**
+ * Required. The group resource name. Written as
+ * `projects/{projectID}/groups/{group_name}`. Call
+ * [`groupStats.list`](https://cloud.google.com/error-reporting/reference/rest/v1beta1/projects.groupStats/list)
+ * to return a list of groups belonging to this project.
+ * Example: `projects/my-project-123/groups/my-group`
+ *
+ * Generated from protobuf field string group_name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setGroupName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->group_name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/HttpRequestContext.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/HttpRequestContext.php
new file mode 100644
index 000000000000..95c45a2ac88f
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/HttpRequestContext.php
@@ -0,0 +1,252 @@
+google.devtools.clouderrorreporting.v1beta1.HttpRequestContext
+ */
+class HttpRequestContext extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The type of HTTP request, such as `GET`, `POST`, etc.
+ *
+ * Generated from protobuf field string method = 1;
+ */
+ protected $method = '';
+ /**
+ * The URL of the request.
+ *
+ * Generated from protobuf field string url = 2;
+ */
+ protected $url = '';
+ /**
+ * The user agent information that is provided with the request.
+ *
+ * Generated from protobuf field string user_agent = 3;
+ */
+ protected $user_agent = '';
+ /**
+ * The referrer information that is provided with the request.
+ *
+ * Generated from protobuf field string referrer = 4;
+ */
+ protected $referrer = '';
+ /**
+ * The HTTP response status code for the request.
+ *
+ * Generated from protobuf field int32 response_status_code = 5;
+ */
+ protected $response_status_code = 0;
+ /**
+ * The IP address from which the request originated.
+ * This can be IPv4, IPv6, or a token which is derived from the
+ * IP address, depending on the data that has been provided
+ * in the error report.
+ *
+ * Generated from protobuf field string remote_ip = 6;
+ */
+ protected $remote_ip = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $method
+ * The type of HTTP request, such as `GET`, `POST`, etc.
+ * @type string $url
+ * The URL of the request.
+ * @type string $user_agent
+ * The user agent information that is provided with the request.
+ * @type string $referrer
+ * The referrer information that is provided with the request.
+ * @type int $response_status_code
+ * The HTTP response status code for the request.
+ * @type string $remote_ip
+ * The IP address from which the request originated.
+ * This can be IPv4, IPv6, or a token which is derived from the
+ * IP address, depending on the data that has been provided
+ * in the error report.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Clouderrorreporting\V1Beta1\Common::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The type of HTTP request, such as `GET`, `POST`, etc.
+ *
+ * Generated from protobuf field string method = 1;
+ * @return string
+ */
+ public function getMethod()
+ {
+ return $this->method;
+ }
+
+ /**
+ * The type of HTTP request, such as `GET`, `POST`, etc.
+ *
+ * Generated from protobuf field string method = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setMethod($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->method = $var;
+
+ return $this;
+ }
+
+ /**
+ * The URL of the request.
+ *
+ * Generated from protobuf field string url = 2;
+ * @return string
+ */
+ public function getUrl()
+ {
+ return $this->url;
+ }
+
+ /**
+ * The URL of the request.
+ *
+ * Generated from protobuf field string url = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setUrl($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->url = $var;
+
+ return $this;
+ }
+
+ /**
+ * The user agent information that is provided with the request.
+ *
+ * Generated from protobuf field string user_agent = 3;
+ * @return string
+ */
+ public function getUserAgent()
+ {
+ return $this->user_agent;
+ }
+
+ /**
+ * The user agent information that is provided with the request.
+ *
+ * Generated from protobuf field string user_agent = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setUserAgent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->user_agent = $var;
+
+ return $this;
+ }
+
+ /**
+ * The referrer information that is provided with the request.
+ *
+ * Generated from protobuf field string referrer = 4;
+ * @return string
+ */
+ public function getReferrer()
+ {
+ return $this->referrer;
+ }
+
+ /**
+ * The referrer information that is provided with the request.
+ *
+ * Generated from protobuf field string referrer = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setReferrer($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->referrer = $var;
+
+ return $this;
+ }
+
+ /**
+ * The HTTP response status code for the request.
+ *
+ * Generated from protobuf field int32 response_status_code = 5;
+ * @return int
+ */
+ public function getResponseStatusCode()
+ {
+ return $this->response_status_code;
+ }
+
+ /**
+ * The HTTP response status code for the request.
+ *
+ * Generated from protobuf field int32 response_status_code = 5;
+ * @param int $var
+ * @return $this
+ */
+ public function setResponseStatusCode($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->response_status_code = $var;
+
+ return $this;
+ }
+
+ /**
+ * The IP address from which the request originated.
+ * This can be IPv4, IPv6, or a token which is derived from the
+ * IP address, depending on the data that has been provided
+ * in the error report.
+ *
+ * Generated from protobuf field string remote_ip = 6;
+ * @return string
+ */
+ public function getRemoteIp()
+ {
+ return $this->remote_ip;
+ }
+
+ /**
+ * The IP address from which the request originated.
+ * This can be IPv4, IPv6, or a token which is derived from the
+ * IP address, depending on the data that has been provided
+ * in the error report.
+ *
+ * Generated from protobuf field string remote_ip = 6;
+ * @param string $var
+ * @return $this
+ */
+ public function setRemoteIp($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->remote_ip = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ListEventsRequest.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ListEventsRequest.php
new file mode 100644
index 000000000000..386253c088be
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ListEventsRequest.php
@@ -0,0 +1,310 @@
+google.devtools.clouderrorreporting.v1beta1.ListEventsRequest
+ */
+class ListEventsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The resource name of the Google Cloud Platform project. Written
+ * as `projects/{projectID}`, where `{projectID}` is the
+ * [Google Cloud Platform project
+ * ID](https://support.google.com/cloud/answer/6158840).
+ * Example: `projects/my-project-123`.
+ *
+ * Generated from protobuf field string project_name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $project_name = '';
+ /**
+ * Required. The group for which events shall be returned.
+ *
+ * Generated from protobuf field string group_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $group_id = '';
+ /**
+ * Optional. List only ErrorGroups which belong to a service context that
+ * matches the filter.
+ * Data for all service contexts is returned if this field is not specified.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ServiceContextFilter service_filter = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $service_filter = null;
+ /**
+ * Optional. List only data for the given time range.
+ * If not set a default time range is used. The field time_range_begin
+ * in the response will specify the beginning of this time range.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.QueryTimeRange time_range = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $time_range = null;
+ /**
+ * Optional. The maximum number of results to return per response.
+ *
+ * Generated from protobuf field int32 page_size = 6 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. A `next_page_token` provided by a previous response.
+ *
+ * Generated from protobuf field string page_token = 7 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_token = '';
+
+ /**
+ * @param string $projectName Required. The resource name of the Google Cloud Platform project. Written
+ * as `projects/{projectID}`, where `{projectID}` is the
+ * [Google Cloud Platform project
+ * ID](https://support.google.com/cloud/answer/6158840).
+ *
+ * Example: `projects/my-project-123`. Please see
+ * {@see ErrorStatsServiceClient::projectName()} for help formatting this field.
+ * @param string $groupId Required. The group for which events shall be returned.
+ *
+ * @return \Google\Cloud\ErrorReporting\V1beta1\ListEventsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $projectName, string $groupId): self
+ {
+ return (new self())
+ ->setProjectName($projectName)
+ ->setGroupId($groupId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $project_name
+ * Required. The resource name of the Google Cloud Platform project. Written
+ * as `projects/{projectID}`, where `{projectID}` is the
+ * [Google Cloud Platform project
+ * ID](https://support.google.com/cloud/answer/6158840).
+ * Example: `projects/my-project-123`.
+ * @type string $group_id
+ * Required. The group for which events shall be returned.
+ * @type \Google\Cloud\ErrorReporting\V1beta1\ServiceContextFilter $service_filter
+ * Optional. List only ErrorGroups which belong to a service context that
+ * matches the filter.
+ * Data for all service contexts is returned if this field is not specified.
+ * @type \Google\Cloud\ErrorReporting\V1beta1\QueryTimeRange $time_range
+ * Optional. List only data for the given time range.
+ * If not set a default time range is used. The field time_range_begin
+ * in the response will specify the beginning of this time range.
+ * @type int $page_size
+ * Optional. The maximum number of results to return per response.
+ * @type string $page_token
+ * Optional. A `next_page_token` provided by a previous response.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Clouderrorreporting\V1Beta1\ErrorStatsService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The resource name of the Google Cloud Platform project. Written
+ * as `projects/{projectID}`, where `{projectID}` is the
+ * [Google Cloud Platform project
+ * ID](https://support.google.com/cloud/answer/6158840).
+ * Example: `projects/my-project-123`.
+ *
+ * Generated from protobuf field string project_name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getProjectName()
+ {
+ return $this->project_name;
+ }
+
+ /**
+ * Required. The resource name of the Google Cloud Platform project. Written
+ * as `projects/{projectID}`, where `{projectID}` is the
+ * [Google Cloud Platform project
+ * ID](https://support.google.com/cloud/answer/6158840).
+ * Example: `projects/my-project-123`.
+ *
+ * Generated from protobuf field string project_name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setProjectName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->project_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The group for which events shall be returned.
+ *
+ * Generated from protobuf field string group_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getGroupId()
+ {
+ return $this->group_id;
+ }
+
+ /**
+ * Required. The group for which events shall be returned.
+ *
+ * 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;
+ }
+
+ /**
+ * Optional. List only ErrorGroups which belong to a service context that
+ * matches the filter.
+ * Data for all service contexts is returned if this field is not specified.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ServiceContextFilter service_filter = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\ErrorReporting\V1beta1\ServiceContextFilter|null
+ */
+ public function getServiceFilter()
+ {
+ return $this->service_filter;
+ }
+
+ public function hasServiceFilter()
+ {
+ return isset($this->service_filter);
+ }
+
+ public function clearServiceFilter()
+ {
+ unset($this->service_filter);
+ }
+
+ /**
+ * Optional. List only ErrorGroups which belong to a service context that
+ * matches the filter.
+ * Data for all service contexts is returned if this field is not specified.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ServiceContextFilter service_filter = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\ErrorReporting\V1beta1\ServiceContextFilter $var
+ * @return $this
+ */
+ public function setServiceFilter($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ErrorReporting\V1beta1\ServiceContextFilter::class);
+ $this->service_filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. List only data for the given time range.
+ * If not set a default time range is used. The field time_range_begin
+ * in the response will specify the beginning of this time range.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.QueryTimeRange time_range = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\ErrorReporting\V1beta1\QueryTimeRange|null
+ */
+ public function getTimeRange()
+ {
+ return $this->time_range;
+ }
+
+ public function hasTimeRange()
+ {
+ return isset($this->time_range);
+ }
+
+ public function clearTimeRange()
+ {
+ unset($this->time_range);
+ }
+
+ /**
+ * Optional. List only data for the given time range.
+ * If not set a default time range is used. The field time_range_begin
+ * in the response will specify the beginning of this time range.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.QueryTimeRange time_range = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\ErrorReporting\V1beta1\QueryTimeRange $var
+ * @return $this
+ */
+ public function setTimeRange($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ErrorReporting\V1beta1\QueryTimeRange::class);
+ $this->time_range = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The maximum number of results to return per response.
+ *
+ * Generated from protobuf field int32 page_size = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Optional. The maximum number of results to return per response.
+ *
+ * Generated from protobuf field int32 page_size = 6 [(.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 `next_page_token` provided by a previous response.
+ *
+ * Generated from protobuf field string page_token = 7 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Optional. A `next_page_token` provided by a previous response.
+ *
+ * Generated from protobuf field string page_token = 7 [(.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/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ListEventsResponse.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ListEventsResponse.php
new file mode 100644
index 000000000000..55faa7e5a56a
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ListEventsResponse.php
@@ -0,0 +1,153 @@
+google.devtools.clouderrorreporting.v1beta1.ListEventsResponse
+ */
+class ListEventsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The error events which match the given request.
+ *
+ * Generated from protobuf field repeated .google.devtools.clouderrorreporting.v1beta1.ErrorEvent error_events = 1;
+ */
+ private $error_events;
+ /**
+ * If non-empty, more results are available.
+ * Pass this token, along with the same query parameters as the first
+ * request, to view the next page of results.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+ /**
+ * The timestamp specifies the start time to which the request was restricted.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp time_range_begin = 4;
+ */
+ protected $time_range_begin = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\ErrorReporting\V1beta1\ErrorEvent>|\Google\Protobuf\Internal\RepeatedField $error_events
+ * The error events which match the given request.
+ * @type string $next_page_token
+ * If non-empty, more results are available.
+ * Pass this token, along with the same query parameters as the first
+ * request, to view the next page of results.
+ * @type \Google\Protobuf\Timestamp $time_range_begin
+ * The timestamp specifies the start time to which the request was restricted.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Clouderrorreporting\V1Beta1\ErrorStatsService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The error events which match the given request.
+ *
+ * Generated from protobuf field repeated .google.devtools.clouderrorreporting.v1beta1.ErrorEvent error_events = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getErrorEvents()
+ {
+ return $this->error_events;
+ }
+
+ /**
+ * The error events which match the given request.
+ *
+ * Generated from protobuf field repeated .google.devtools.clouderrorreporting.v1beta1.ErrorEvent error_events = 1;
+ * @param array<\Google\Cloud\ErrorReporting\V1beta1\ErrorEvent>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setErrorEvents($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ErrorReporting\V1beta1\ErrorEvent::class);
+ $this->error_events = $arr;
+
+ return $this;
+ }
+
+ /**
+ * If non-empty, more results are available.
+ * Pass this token, along with the same query parameters as the first
+ * request, to view the next page of results.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * If non-empty, more results are available.
+ * Pass this token, along with the same query parameters as the first
+ * request, to view the next page of 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;
+ }
+
+ /**
+ * The timestamp specifies the start time to which the request was restricted.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp time_range_begin = 4;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getTimeRangeBegin()
+ {
+ return $this->time_range_begin;
+ }
+
+ public function hasTimeRangeBegin()
+ {
+ return isset($this->time_range_begin);
+ }
+
+ public function clearTimeRangeBegin()
+ {
+ unset($this->time_range_begin);
+ }
+
+ /**
+ * The timestamp specifies the start time to which the request was restricted.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp time_range_begin = 4;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setTimeRangeBegin($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->time_range_begin = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ListGroupStatsRequest.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ListGroupStatsRequest.php
new file mode 100644
index 000000000000..f2db50879944
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ListGroupStatsRequest.php
@@ -0,0 +1,521 @@
+google.devtools.clouderrorreporting.v1beta1.ListGroupStatsRequest
+ */
+class ListGroupStatsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The resource name of the Google Cloud Platform project. Written
+ * as `projects/{projectID}` or `projects/{projectNumber}`, where `{projectID}`
+ * and `{projectNumber}` can be found in the
+ * [Google Cloud Console](https://support.google.com/cloud/answer/6158840).
+ * Examples: `projects/my-project-123`, `projects/5551234`.
+ *
+ * Generated from protobuf field string project_name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $project_name = '';
+ /**
+ * Optional. List all ErrorGroupStats
with these IDs.
+ *
+ * Generated from protobuf field repeated string group_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $group_id;
+ /**
+ * Optional. List only ErrorGroupStats
which belong to a service
+ * context that matches the filter.
+ * Data for all service contexts is returned if this field is not specified.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ServiceContextFilter service_filter = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $service_filter = null;
+ /**
+ * Optional. List data for the given time range.
+ * If not set, a default time range is used. The field
+ * time_range_begin
in the response will specify the beginning
+ * of this time range.
+ * Only ErrorGroupStats
with a non-zero count in the given time
+ * range are returned, unless the request contains an explicit
+ * group_id
list. If a group_id
list is given, also
+ * ErrorGroupStats
with zero occurrences are returned.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.QueryTimeRange time_range = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $time_range = null;
+ /**
+ * Optional. The preferred duration for a single returned `TimedCount`.
+ * If not set, no timed counts are returned.
+ *
+ * Generated from protobuf field .google.protobuf.Duration timed_count_duration = 6 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $timed_count_duration = null;
+ /**
+ * Optional. The alignment of the timed counts to be returned.
+ * Default is `ALIGNMENT_EQUAL_AT_END`.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.TimedCountAlignment alignment = 7 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $alignment = 0;
+ /**
+ * Optional. Time where the timed counts shall be aligned if rounded
+ * alignment is chosen. Default is 00:00 UTC.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp alignment_time = 8 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $alignment_time = null;
+ /**
+ * Optional. The sort order in which the results are returned.
+ * Default is `COUNT_DESC`.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ErrorGroupOrder order = 9 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $order = 0;
+ /**
+ * Optional. The maximum number of results to return per response.
+ * Default is 20.
+ *
+ * Generated from protobuf field int32 page_size = 11 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. A `next_page_token` provided by a previous response. To view
+ * additional results, pass this token along with the identical query
+ * parameters as the first request.
+ *
+ * Generated from protobuf field string page_token = 12 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_token = '';
+
+ /**
+ * @param string $projectName Required. The resource name of the Google Cloud Platform project. Written
+ * as `projects/{projectID}` or `projects/{projectNumber}`, where `{projectID}`
+ * and `{projectNumber}` can be found in the
+ * [Google Cloud Console](https://support.google.com/cloud/answer/6158840).
+ *
+ * Examples: `projects/my-project-123`, `projects/5551234`. Please see
+ * {@see ErrorStatsServiceClient::projectName()} for help formatting this field.
+ * @param \Google\Cloud\ErrorReporting\V1beta1\QueryTimeRange $timeRange Optional. List data for the given time range.
+ * If not set, a default time range is used. The field
+ * time_range_begin
in the response will specify the beginning
+ * of this time range.
+ * Only ErrorGroupStats
with a non-zero count in the given time
+ * range are returned, unless the request contains an explicit
+ * group_id
list. If a group_id
list is given, also
+ * ErrorGroupStats
with zero occurrences are returned.
+ *
+ * @return \Google\Cloud\ErrorReporting\V1beta1\ListGroupStatsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $projectName, \Google\Cloud\ErrorReporting\V1beta1\QueryTimeRange $timeRange): self
+ {
+ return (new self())
+ ->setProjectName($projectName)
+ ->setTimeRange($timeRange);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $project_name
+ * Required. The resource name of the Google Cloud Platform project. Written
+ * as `projects/{projectID}` or `projects/{projectNumber}`, where `{projectID}`
+ * and `{projectNumber}` can be found in the
+ * [Google Cloud Console](https://support.google.com/cloud/answer/6158840).
+ * Examples: `projects/my-project-123`, `projects/5551234`.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $group_id
+ * Optional. List all ErrorGroupStats
with these IDs.
+ * @type \Google\Cloud\ErrorReporting\V1beta1\ServiceContextFilter $service_filter
+ * Optional. List only ErrorGroupStats
which belong to a service
+ * context that matches the filter.
+ * Data for all service contexts is returned if this field is not specified.
+ * @type \Google\Cloud\ErrorReporting\V1beta1\QueryTimeRange $time_range
+ * Optional. List data for the given time range.
+ * If not set, a default time range is used. The field
+ * time_range_begin
in the response will specify the beginning
+ * of this time range.
+ * Only ErrorGroupStats
with a non-zero count in the given time
+ * range are returned, unless the request contains an explicit
+ * group_id
list. If a group_id
list is given, also
+ * ErrorGroupStats
with zero occurrences are returned.
+ * @type \Google\Protobuf\Duration $timed_count_duration
+ * Optional. The preferred duration for a single returned `TimedCount`.
+ * If not set, no timed counts are returned.
+ * @type int $alignment
+ * Optional. The alignment of the timed counts to be returned.
+ * Default is `ALIGNMENT_EQUAL_AT_END`.
+ * @type \Google\Protobuf\Timestamp $alignment_time
+ * Optional. Time where the timed counts shall be aligned if rounded
+ * alignment is chosen. Default is 00:00 UTC.
+ * @type int $order
+ * Optional. The sort order in which the results are returned.
+ * Default is `COUNT_DESC`.
+ * @type int $page_size
+ * Optional. The maximum number of results to return per response.
+ * Default is 20.
+ * @type string $page_token
+ * Optional. A `next_page_token` provided by a previous response. To view
+ * additional results, pass this token along with the identical query
+ * parameters as the first request.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Clouderrorreporting\V1Beta1\ErrorStatsService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The resource name of the Google Cloud Platform project. Written
+ * as `projects/{projectID}` or `projects/{projectNumber}`, where `{projectID}`
+ * and `{projectNumber}` can be found in the
+ * [Google Cloud Console](https://support.google.com/cloud/answer/6158840).
+ * Examples: `projects/my-project-123`, `projects/5551234`.
+ *
+ * Generated from protobuf field string project_name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getProjectName()
+ {
+ return $this->project_name;
+ }
+
+ /**
+ * Required. The resource name of the Google Cloud Platform project. Written
+ * as `projects/{projectID}` or `projects/{projectNumber}`, where `{projectID}`
+ * and `{projectNumber}` can be found in the
+ * [Google Cloud Console](https://support.google.com/cloud/answer/6158840).
+ * Examples: `projects/my-project-123`, `projects/5551234`.
+ *
+ * Generated from protobuf field string project_name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setProjectName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->project_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. List all ErrorGroupStats
with these IDs.
+ *
+ * Generated from protobuf field repeated string group_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getGroupId()
+ {
+ return $this->group_id;
+ }
+
+ /**
+ * Optional. List all ErrorGroupStats
with these IDs.
+ *
+ * Generated from protobuf field repeated string group_id = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setGroupId($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->group_id = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Optional. List only ErrorGroupStats
which belong to a service
+ * context that matches the filter.
+ * Data for all service contexts is returned if this field is not specified.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ServiceContextFilter service_filter = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\ErrorReporting\V1beta1\ServiceContextFilter|null
+ */
+ public function getServiceFilter()
+ {
+ return $this->service_filter;
+ }
+
+ public function hasServiceFilter()
+ {
+ return isset($this->service_filter);
+ }
+
+ public function clearServiceFilter()
+ {
+ unset($this->service_filter);
+ }
+
+ /**
+ * Optional. List only ErrorGroupStats
which belong to a service
+ * context that matches the filter.
+ * Data for all service contexts is returned if this field is not specified.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ServiceContextFilter service_filter = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\ErrorReporting\V1beta1\ServiceContextFilter $var
+ * @return $this
+ */
+ public function setServiceFilter($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ErrorReporting\V1beta1\ServiceContextFilter::class);
+ $this->service_filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. List data for the given time range.
+ * If not set, a default time range is used. The field
+ * time_range_begin
in the response will specify the beginning
+ * of this time range.
+ * Only ErrorGroupStats
with a non-zero count in the given time
+ * range are returned, unless the request contains an explicit
+ * group_id
list. If a group_id
list is given, also
+ * ErrorGroupStats
with zero occurrences are returned.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.QueryTimeRange time_range = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\ErrorReporting\V1beta1\QueryTimeRange|null
+ */
+ public function getTimeRange()
+ {
+ return $this->time_range;
+ }
+
+ public function hasTimeRange()
+ {
+ return isset($this->time_range);
+ }
+
+ public function clearTimeRange()
+ {
+ unset($this->time_range);
+ }
+
+ /**
+ * Optional. List data for the given time range.
+ * If not set, a default time range is used. The field
+ * time_range_begin
in the response will specify the beginning
+ * of this time range.
+ * Only ErrorGroupStats
with a non-zero count in the given time
+ * range are returned, unless the request contains an explicit
+ * group_id
list. If a group_id
list is given, also
+ * ErrorGroupStats
with zero occurrences are returned.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.QueryTimeRange time_range = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\ErrorReporting\V1beta1\QueryTimeRange $var
+ * @return $this
+ */
+ public function setTimeRange($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ErrorReporting\V1beta1\QueryTimeRange::class);
+ $this->time_range = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The preferred duration for a single returned `TimedCount`.
+ * If not set, no timed counts are returned.
+ *
+ * Generated from protobuf field .google.protobuf.Duration timed_count_duration = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getTimedCountDuration()
+ {
+ return $this->timed_count_duration;
+ }
+
+ public function hasTimedCountDuration()
+ {
+ return isset($this->timed_count_duration);
+ }
+
+ public function clearTimedCountDuration()
+ {
+ unset($this->timed_count_duration);
+ }
+
+ /**
+ * Optional. The preferred duration for a single returned `TimedCount`.
+ * If not set, no timed counts are returned.
+ *
+ * Generated from protobuf field .google.protobuf.Duration timed_count_duration = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setTimedCountDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->timed_count_duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The alignment of the timed counts to be returned.
+ * Default is `ALIGNMENT_EQUAL_AT_END`.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.TimedCountAlignment alignment = 7 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getAlignment()
+ {
+ return $this->alignment;
+ }
+
+ /**
+ * Optional. The alignment of the timed counts to be returned.
+ * Default is `ALIGNMENT_EQUAL_AT_END`.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.TimedCountAlignment alignment = 7 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setAlignment($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ErrorReporting\V1beta1\TimedCountAlignment::class);
+ $this->alignment = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Time where the timed counts shall be aligned if rounded
+ * alignment is chosen. Default is 00:00 UTC.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp alignment_time = 8 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getAlignmentTime()
+ {
+ return $this->alignment_time;
+ }
+
+ public function hasAlignmentTime()
+ {
+ return isset($this->alignment_time);
+ }
+
+ public function clearAlignmentTime()
+ {
+ unset($this->alignment_time);
+ }
+
+ /**
+ * Optional. Time where the timed counts shall be aligned if rounded
+ * alignment is chosen. Default is 00:00 UTC.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp alignment_time = 8 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setAlignmentTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->alignment_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The sort order in which the results are returned.
+ * Default is `COUNT_DESC`.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ErrorGroupOrder order = 9 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getOrder()
+ {
+ return $this->order;
+ }
+
+ /**
+ * Optional. The sort order in which the results are returned.
+ * Default is `COUNT_DESC`.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ErrorGroupOrder order = 9 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setOrder($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ErrorReporting\V1beta1\ErrorGroupOrder::class);
+ $this->order = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The maximum number of results to return per response.
+ * Default is 20.
+ *
+ * Generated from protobuf field int32 page_size = 11 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Optional. The maximum number of results to return per response.
+ * Default is 20.
+ *
+ * Generated from protobuf field int32 page_size = 11 [(.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 `next_page_token` provided by a previous response. To view
+ * additional results, pass this token along with the identical query
+ * parameters as the first request.
+ *
+ * Generated from protobuf field string page_token = 12 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Optional. A `next_page_token` provided by a previous response. To view
+ * additional results, pass this token along with the identical query
+ * parameters as the first request.
+ *
+ * Generated from protobuf field string page_token = 12 [(.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/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ListGroupStatsResponse.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ListGroupStatsResponse.php
new file mode 100644
index 000000000000..56bfa9df4b28
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ListGroupStatsResponse.php
@@ -0,0 +1,165 @@
+google.devtools.clouderrorreporting.v1beta1.ListGroupStatsResponse
+ */
+class ListGroupStatsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The error group stats which match the given request.
+ *
+ * Generated from protobuf field repeated .google.devtools.clouderrorreporting.v1beta1.ErrorGroupStats error_group_stats = 1;
+ */
+ private $error_group_stats;
+ /**
+ * If non-empty, more results are available.
+ * Pass this token, along with the same query parameters as the first
+ * request, to view the next page of results.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+ /**
+ * The timestamp specifies the start time to which the request was restricted.
+ * The start time is set based on the requested time range. It may be adjusted
+ * to a later time if a project has exceeded the storage quota and older data
+ * has been deleted.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp time_range_begin = 4;
+ */
+ protected $time_range_begin = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\ErrorReporting\V1beta1\ErrorGroupStats>|\Google\Protobuf\Internal\RepeatedField $error_group_stats
+ * The error group stats which match the given request.
+ * @type string $next_page_token
+ * If non-empty, more results are available.
+ * Pass this token, along with the same query parameters as the first
+ * request, to view the next page of results.
+ * @type \Google\Protobuf\Timestamp $time_range_begin
+ * The timestamp specifies the start time to which the request was restricted.
+ * The start time is set based on the requested time range. It may be adjusted
+ * to a later time if a project has exceeded the storage quota and older data
+ * has been deleted.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Clouderrorreporting\V1Beta1\ErrorStatsService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The error group stats which match the given request.
+ *
+ * Generated from protobuf field repeated .google.devtools.clouderrorreporting.v1beta1.ErrorGroupStats error_group_stats = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getErrorGroupStats()
+ {
+ return $this->error_group_stats;
+ }
+
+ /**
+ * The error group stats which match the given request.
+ *
+ * Generated from protobuf field repeated .google.devtools.clouderrorreporting.v1beta1.ErrorGroupStats error_group_stats = 1;
+ * @param array<\Google\Cloud\ErrorReporting\V1beta1\ErrorGroupStats>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setErrorGroupStats($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ErrorReporting\V1beta1\ErrorGroupStats::class);
+ $this->error_group_stats = $arr;
+
+ return $this;
+ }
+
+ /**
+ * If non-empty, more results are available.
+ * Pass this token, along with the same query parameters as the first
+ * request, to view the next page of results.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * If non-empty, more results are available.
+ * Pass this token, along with the same query parameters as the first
+ * request, to view the next page of 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;
+ }
+
+ /**
+ * The timestamp specifies the start time to which the request was restricted.
+ * The start time is set based on the requested time range. It may be adjusted
+ * to a later time if a project has exceeded the storage quota and older data
+ * has been deleted.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp time_range_begin = 4;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getTimeRangeBegin()
+ {
+ return $this->time_range_begin;
+ }
+
+ public function hasTimeRangeBegin()
+ {
+ return isset($this->time_range_begin);
+ }
+
+ public function clearTimeRangeBegin()
+ {
+ unset($this->time_range_begin);
+ }
+
+ /**
+ * The timestamp specifies the start time to which the request was restricted.
+ * The start time is set based on the requested time range. It may be adjusted
+ * to a later time if a project has exceeded the storage quota and older data
+ * has been deleted.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp time_range_begin = 4;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setTimeRangeBegin($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->time_range_begin = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/QueryTimeRange.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/QueryTimeRange.php
new file mode 100644
index 000000000000..e095a9c2c996
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/QueryTimeRange.php
@@ -0,0 +1,68 @@
+google.devtools.clouderrorreporting.v1beta1.QueryTimeRange
+ */
+class QueryTimeRange extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Restricts the query to the specified time range.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.QueryTimeRange.Period period = 1;
+ */
+ protected $period = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $period
+ * Restricts the query to the specified time range.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Clouderrorreporting\V1Beta1\ErrorStatsService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Restricts the query to the specified time range.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.QueryTimeRange.Period period = 1;
+ * @return int
+ */
+ public function getPeriod()
+ {
+ return $this->period;
+ }
+
+ /**
+ * Restricts the query to the specified time range.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.QueryTimeRange.Period period = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setPeriod($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ErrorReporting\V1beta1\QueryTimeRange\Period::class);
+ $this->period = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/QueryTimeRange/Period.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/QueryTimeRange/Period.php
new file mode 100644
index 000000000000..9aa826cf2d57
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/QueryTimeRange/Period.php
@@ -0,0 +1,90 @@
+google.devtools.clouderrorreporting.v1beta1.QueryTimeRange.Period
+ */
+class Period
+{
+ /**
+ * Do not use.
+ *
+ * Generated from protobuf enum PERIOD_UNSPECIFIED = 0;
+ */
+ const PERIOD_UNSPECIFIED = 0;
+ /**
+ * Retrieve data for the last hour.
+ * Recommended minimum timed count duration: 1 min.
+ *
+ * Generated from protobuf enum PERIOD_1_HOUR = 1;
+ */
+ const PERIOD_1_HOUR = 1;
+ /**
+ * Retrieve data for the last 6 hours.
+ * Recommended minimum timed count duration: 10 min.
+ *
+ * Generated from protobuf enum PERIOD_6_HOURS = 2;
+ */
+ const PERIOD_6_HOURS = 2;
+ /**
+ * Retrieve data for the last day.
+ * Recommended minimum timed count duration: 1 hour.
+ *
+ * Generated from protobuf enum PERIOD_1_DAY = 3;
+ */
+ const PERIOD_1_DAY = 3;
+ /**
+ * Retrieve data for the last week.
+ * Recommended minimum timed count duration: 6 hours.
+ *
+ * Generated from protobuf enum PERIOD_1_WEEK = 4;
+ */
+ const PERIOD_1_WEEK = 4;
+ /**
+ * Retrieve data for the last 30 days.
+ * Recommended minimum timed count duration: 1 day.
+ *
+ * Generated from protobuf enum PERIOD_30_DAYS = 5;
+ */
+ const PERIOD_30_DAYS = 5;
+
+ private static $valueToName = [
+ self::PERIOD_UNSPECIFIED => 'PERIOD_UNSPECIFIED',
+ self::PERIOD_1_HOUR => 'PERIOD_1_HOUR',
+ self::PERIOD_6_HOURS => 'PERIOD_6_HOURS',
+ self::PERIOD_1_DAY => 'PERIOD_1_DAY',
+ self::PERIOD_1_WEEK => 'PERIOD_1_WEEK',
+ self::PERIOD_30_DAYS => 'PERIOD_30_DAYS',
+ ];
+
+ 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(Period::class, \Google\Cloud\ErrorReporting\V1beta1\QueryTimeRange_Period::class);
+
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/QueryTimeRange_Period.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/QueryTimeRange_Period.php
new file mode 100644
index 000000000000..1ab3a0a72ac0
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/QueryTimeRange_Period.php
@@ -0,0 +1,16 @@
+google.devtools.clouderrorreporting.v1beta1.ReportErrorEventRequest
+ */
+class ReportErrorEventRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The resource name of the Google Cloud Platform project. Written
+ * as `projects/{projectId}`, where `{projectId}` is the
+ * [Google Cloud Platform project
+ * ID](https://support.google.com/cloud/answer/6158840).
+ * Example: // `projects/my-project-123`.
+ *
+ * Generated from protobuf field string project_name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $project_name = '';
+ /**
+ * Required. The error event to be reported.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ReportedErrorEvent event = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $event = null;
+
+ /**
+ * @param string $projectName Required. The resource name of the Google Cloud Platform project. Written
+ * as `projects/{projectId}`, where `{projectId}` is the
+ * [Google Cloud Platform project
+ * ID](https://support.google.com/cloud/answer/6158840).
+ *
+ * Example: // `projects/my-project-123`. Please see
+ * {@see ReportErrorsServiceClient::projectName()} for help formatting this field.
+ * @param \Google\Cloud\ErrorReporting\V1beta1\ReportedErrorEvent $event Required. The error event to be reported.
+ *
+ * @return \Google\Cloud\ErrorReporting\V1beta1\ReportErrorEventRequest
+ *
+ * @experimental
+ */
+ public static function build(string $projectName, \Google\Cloud\ErrorReporting\V1beta1\ReportedErrorEvent $event): self
+ {
+ return (new self())
+ ->setProjectName($projectName)
+ ->setEvent($event);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $project_name
+ * Required. The resource name of the Google Cloud Platform project. Written
+ * as `projects/{projectId}`, where `{projectId}` is the
+ * [Google Cloud Platform project
+ * ID](https://support.google.com/cloud/answer/6158840).
+ * Example: // `projects/my-project-123`.
+ * @type \Google\Cloud\ErrorReporting\V1beta1\ReportedErrorEvent $event
+ * Required. The error event to be reported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Clouderrorreporting\V1Beta1\ReportErrorsService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The resource name of the Google Cloud Platform project. Written
+ * as `projects/{projectId}`, where `{projectId}` is the
+ * [Google Cloud Platform project
+ * ID](https://support.google.com/cloud/answer/6158840).
+ * Example: // `projects/my-project-123`.
+ *
+ * Generated from protobuf field string project_name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getProjectName()
+ {
+ return $this->project_name;
+ }
+
+ /**
+ * Required. The resource name of the Google Cloud Platform project. Written
+ * as `projects/{projectId}`, where `{projectId}` is the
+ * [Google Cloud Platform project
+ * ID](https://support.google.com/cloud/answer/6158840).
+ * Example: // `projects/my-project-123`.
+ *
+ * Generated from protobuf field string project_name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setProjectName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->project_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The error event to be reported.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ReportedErrorEvent event = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\ErrorReporting\V1beta1\ReportedErrorEvent|null
+ */
+ public function getEvent()
+ {
+ return $this->event;
+ }
+
+ public function hasEvent()
+ {
+ return isset($this->event);
+ }
+
+ public function clearEvent()
+ {
+ unset($this->event);
+ }
+
+ /**
+ * Required. The error event to be reported.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ReportedErrorEvent event = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\ErrorReporting\V1beta1\ReportedErrorEvent $var
+ * @return $this
+ */
+ public function setEvent($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ErrorReporting\V1beta1\ReportedErrorEvent::class);
+ $this->event = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ReportErrorEventResponse.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ReportErrorEventResponse.php
new file mode 100644
index 000000000000..14380862c6a8
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ReportErrorEventResponse.php
@@ -0,0 +1,34 @@
+google.devtools.clouderrorreporting.v1beta1.ReportErrorEventResponse
+ */
+class ReportErrorEventResponse extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Clouderrorreporting\V1Beta1\ReportErrorsService::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ReportErrorsServiceGrpcClient.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ReportErrorsServiceGrpcClient.php
new file mode 100644
index 000000000000..bee909729749
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ReportErrorsServiceGrpcClient.php
@@ -0,0 +1,63 @@
+_simpleRequest('/google.devtools.clouderrorreporting.v1beta1.ReportErrorsService/ReportErrorEvent',
+ $argument,
+ ['\Google\Cloud\ErrorReporting\V1beta1\ReportErrorEventResponse', 'decode'],
+ $metadata, $options);
+ }
+
+}
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ReportedErrorEvent.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ReportedErrorEvent.php
new file mode 100644
index 000000000000..d92ac7651617
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ReportedErrorEvent.php
@@ -0,0 +1,295 @@
+google.devtools.clouderrorreporting.v1beta1.ReportedErrorEvent
+ */
+class ReportedErrorEvent extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. Time when the event occurred.
+ * If not provided, the time when the event was received by the
+ * Error Reporting system will be used.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp event_time = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $event_time = null;
+ /**
+ * Required. The service context in which this error has occurred.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ServiceContext service_context = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $service_context = null;
+ /**
+ * Required. The error message.
+ * If no `context.reportLocation` is provided, the message must contain a
+ * header (typically consisting of the exception type name and an error
+ * message) and an exception stack trace in one of the supported programming
+ * languages and formats.
+ * Supported languages are Java, Python, JavaScript, Ruby, C#, PHP, and Go.
+ * Supported stack trace formats are:
+ * * **Java**: Must be the return value of
+ * [`Throwable.printStackTrace()`](https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html#printStackTrace%28%29).
+ * * **Python**: Must be the return value of
+ * [`traceback.format_exc()`](https://docs.python.org/2/library/traceback.html#traceback.format_exc).
+ * * **JavaScript**: Must be the value of
+ * [`error.stack`](https://github.com/v8/v8/wiki/Stack-Trace-API) as returned
+ * by V8.
+ * * **Ruby**: Must contain frames returned by
+ * [`Exception.backtrace`](https://ruby-doc.org/core-2.2.0/Exception.html#method-i-backtrace).
+ * * **C#**: Must be the return value of
+ * [`Exception.ToString()`](https://msdn.microsoft.com/en-us/library/system.exception.tostring.aspx).
+ * * **PHP**: Must start with `PHP (Notice|Parse error|Fatal error|Warning)`
+ * and contain the result of
+ * [`(string)$exception`](http://php.net/manual/en/exception.tostring.php).
+ * * **Go**: Must be the return value of
+ * [`runtime.Stack()`](https://golang.org/pkg/runtime/debug/#Stack).
+ *
+ * Generated from protobuf field string message = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $message = '';
+ /**
+ * Optional. A description of the context in which the error occurred.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ErrorContext context = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $context = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Timestamp $event_time
+ * Optional. Time when the event occurred.
+ * If not provided, the time when the event was received by the
+ * Error Reporting system will be used.
+ * @type \Google\Cloud\ErrorReporting\V1beta1\ServiceContext $service_context
+ * Required. The service context in which this error has occurred.
+ * @type string $message
+ * Required. The error message.
+ * If no `context.reportLocation` is provided, the message must contain a
+ * header (typically consisting of the exception type name and an error
+ * message) and an exception stack trace in one of the supported programming
+ * languages and formats.
+ * Supported languages are Java, Python, JavaScript, Ruby, C#, PHP, and Go.
+ * Supported stack trace formats are:
+ * * **Java**: Must be the return value of
+ * [`Throwable.printStackTrace()`](https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html#printStackTrace%28%29).
+ * * **Python**: Must be the return value of
+ * [`traceback.format_exc()`](https://docs.python.org/2/library/traceback.html#traceback.format_exc).
+ * * **JavaScript**: Must be the value of
+ * [`error.stack`](https://github.com/v8/v8/wiki/Stack-Trace-API) as returned
+ * by V8.
+ * * **Ruby**: Must contain frames returned by
+ * [`Exception.backtrace`](https://ruby-doc.org/core-2.2.0/Exception.html#method-i-backtrace).
+ * * **C#**: Must be the return value of
+ * [`Exception.ToString()`](https://msdn.microsoft.com/en-us/library/system.exception.tostring.aspx).
+ * * **PHP**: Must start with `PHP (Notice|Parse error|Fatal error|Warning)`
+ * and contain the result of
+ * [`(string)$exception`](http://php.net/manual/en/exception.tostring.php).
+ * * **Go**: Must be the return value of
+ * [`runtime.Stack()`](https://golang.org/pkg/runtime/debug/#Stack).
+ * @type \Google\Cloud\ErrorReporting\V1beta1\ErrorContext $context
+ * Optional. A description of the context in which the error occurred.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Clouderrorreporting\V1Beta1\ReportErrorsService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. Time when the event occurred.
+ * If not provided, the time when the event was received by the
+ * Error Reporting system will be used.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp event_time = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getEventTime()
+ {
+ return $this->event_time;
+ }
+
+ public function hasEventTime()
+ {
+ return isset($this->event_time);
+ }
+
+ public function clearEventTime()
+ {
+ unset($this->event_time);
+ }
+
+ /**
+ * Optional. Time when the event occurred.
+ * If not provided, the time when the event was received by the
+ * Error Reporting system will be used.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp event_time = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setEventTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->event_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The service context in which this error has occurred.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ServiceContext service_context = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\ErrorReporting\V1beta1\ServiceContext|null
+ */
+ public function getServiceContext()
+ {
+ return $this->service_context;
+ }
+
+ public function hasServiceContext()
+ {
+ return isset($this->service_context);
+ }
+
+ public function clearServiceContext()
+ {
+ unset($this->service_context);
+ }
+
+ /**
+ * Required. The service context in which this error has occurred.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ServiceContext service_context = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\ErrorReporting\V1beta1\ServiceContext $var
+ * @return $this
+ */
+ public function setServiceContext($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ErrorReporting\V1beta1\ServiceContext::class);
+ $this->service_context = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The error message.
+ * If no `context.reportLocation` is provided, the message must contain a
+ * header (typically consisting of the exception type name and an error
+ * message) and an exception stack trace in one of the supported programming
+ * languages and formats.
+ * Supported languages are Java, Python, JavaScript, Ruby, C#, PHP, and Go.
+ * Supported stack trace formats are:
+ * * **Java**: Must be the return value of
+ * [`Throwable.printStackTrace()`](https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html#printStackTrace%28%29).
+ * * **Python**: Must be the return value of
+ * [`traceback.format_exc()`](https://docs.python.org/2/library/traceback.html#traceback.format_exc).
+ * * **JavaScript**: Must be the value of
+ * [`error.stack`](https://github.com/v8/v8/wiki/Stack-Trace-API) as returned
+ * by V8.
+ * * **Ruby**: Must contain frames returned by
+ * [`Exception.backtrace`](https://ruby-doc.org/core-2.2.0/Exception.html#method-i-backtrace).
+ * * **C#**: Must be the return value of
+ * [`Exception.ToString()`](https://msdn.microsoft.com/en-us/library/system.exception.tostring.aspx).
+ * * **PHP**: Must start with `PHP (Notice|Parse error|Fatal error|Warning)`
+ * and contain the result of
+ * [`(string)$exception`](http://php.net/manual/en/exception.tostring.php).
+ * * **Go**: Must be the return value of
+ * [`runtime.Stack()`](https://golang.org/pkg/runtime/debug/#Stack).
+ *
+ * Generated from protobuf field string message = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getMessage()
+ {
+ return $this->message;
+ }
+
+ /**
+ * Required. The error message.
+ * If no `context.reportLocation` is provided, the message must contain a
+ * header (typically consisting of the exception type name and an error
+ * message) and an exception stack trace in one of the supported programming
+ * languages and formats.
+ * Supported languages are Java, Python, JavaScript, Ruby, C#, PHP, and Go.
+ * Supported stack trace formats are:
+ * * **Java**: Must be the return value of
+ * [`Throwable.printStackTrace()`](https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html#printStackTrace%28%29).
+ * * **Python**: Must be the return value of
+ * [`traceback.format_exc()`](https://docs.python.org/2/library/traceback.html#traceback.format_exc).
+ * * **JavaScript**: Must be the value of
+ * [`error.stack`](https://github.com/v8/v8/wiki/Stack-Trace-API) as returned
+ * by V8.
+ * * **Ruby**: Must contain frames returned by
+ * [`Exception.backtrace`](https://ruby-doc.org/core-2.2.0/Exception.html#method-i-backtrace).
+ * * **C#**: Must be the return value of
+ * [`Exception.ToString()`](https://msdn.microsoft.com/en-us/library/system.exception.tostring.aspx).
+ * * **PHP**: Must start with `PHP (Notice|Parse error|Fatal error|Warning)`
+ * and contain the result of
+ * [`(string)$exception`](http://php.net/manual/en/exception.tostring.php).
+ * * **Go**: Must be the return value of
+ * [`runtime.Stack()`](https://golang.org/pkg/runtime/debug/#Stack).
+ *
+ * Generated from protobuf field string message = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->message = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A description of the context in which the error occurred.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ErrorContext context = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\ErrorReporting\V1beta1\ErrorContext|null
+ */
+ public function getContext()
+ {
+ return $this->context;
+ }
+
+ public function hasContext()
+ {
+ return isset($this->context);
+ }
+
+ public function clearContext()
+ {
+ unset($this->context);
+ }
+
+ /**
+ * Optional. A description of the context in which the error occurred.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ErrorContext context = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\ErrorReporting\V1beta1\ErrorContext $var
+ * @return $this
+ */
+ public function setContext($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ErrorReporting\V1beta1\ErrorContext::class);
+ $this->context = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ResolutionStatus.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ResolutionStatus.php
new file mode 100644
index 000000000000..a50feb043ec5
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ResolutionStatus.php
@@ -0,0 +1,78 @@
+google.devtools.clouderrorreporting.v1beta1.ResolutionStatus
+ */
+class ResolutionStatus
+{
+ /**
+ * Status is unknown. When left unspecified in requests, it is treated like
+ * OPEN.
+ *
+ * Generated from protobuf enum RESOLUTION_STATUS_UNSPECIFIED = 0;
+ */
+ const RESOLUTION_STATUS_UNSPECIFIED = 0;
+ /**
+ * The error group is not being addressed. This is the default for
+ * new groups. It is also used for errors re-occurring after marked RESOLVED.
+ *
+ * Generated from protobuf enum OPEN = 1;
+ */
+ const OPEN = 1;
+ /**
+ * Error Group manually acknowledged, it can have an issue link attached.
+ *
+ * Generated from protobuf enum ACKNOWLEDGED = 2;
+ */
+ const ACKNOWLEDGED = 2;
+ /**
+ * Error Group manually resolved, more events for this group are not expected
+ * to occur.
+ *
+ * Generated from protobuf enum RESOLVED = 3;
+ */
+ const RESOLVED = 3;
+ /**
+ * The error group is muted and excluded by default on group stats requests.
+ *
+ * Generated from protobuf enum MUTED = 4;
+ */
+ const MUTED = 4;
+
+ private static $valueToName = [
+ self::RESOLUTION_STATUS_UNSPECIFIED => 'RESOLUTION_STATUS_UNSPECIFIED',
+ self::OPEN => 'OPEN',
+ self::ACKNOWLEDGED => 'ACKNOWLEDGED',
+ self::RESOLVED => 'RESOLVED',
+ self::MUTED => 'MUTED',
+ ];
+
+ 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/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ServiceContext.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ServiceContext.php
new file mode 100644
index 000000000000..df54f8cfb839
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ServiceContext.php
@@ -0,0 +1,180 @@
+google.devtools.clouderrorreporting.v1beta1.ServiceContext
+ */
+class ServiceContext extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * An identifier of the service, such as the name of the
+ * executable, job, or Google App Engine service name. This field is expected
+ * to have a low number of values that are relatively stable over time, as
+ * opposed to `version`, which can be changed whenever new code is deployed.
+ * Contains the service name for error reports extracted from Google
+ * App Engine logs or `default` if the App Engine default service is used.
+ *
+ * Generated from protobuf field string service = 2;
+ */
+ protected $service = '';
+ /**
+ * Represents the source code version that the developer provided,
+ * which could represent a version label or a Git SHA-1 hash, for example.
+ * For App Engine standard environment, the version is set to the version of
+ * the app.
+ *
+ * Generated from protobuf field string version = 3;
+ */
+ protected $version = '';
+ /**
+ * Type of the MonitoredResource. List of possible values:
+ * https://cloud.google.com/monitoring/api/resources
+ * Value is set automatically for incoming errors and must not be set when
+ * reporting errors.
+ *
+ * Generated from protobuf field string resource_type = 4;
+ */
+ protected $resource_type = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $service
+ * An identifier of the service, such as the name of the
+ * executable, job, or Google App Engine service name. This field is expected
+ * to have a low number of values that are relatively stable over time, as
+ * opposed to `version`, which can be changed whenever new code is deployed.
+ * Contains the service name for error reports extracted from Google
+ * App Engine logs or `default` if the App Engine default service is used.
+ * @type string $version
+ * Represents the source code version that the developer provided,
+ * which could represent a version label or a Git SHA-1 hash, for example.
+ * For App Engine standard environment, the version is set to the version of
+ * the app.
+ * @type string $resource_type
+ * Type of the MonitoredResource. List of possible values:
+ * https://cloud.google.com/monitoring/api/resources
+ * Value is set automatically for incoming errors and must not be set when
+ * reporting errors.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Clouderrorreporting\V1Beta1\Common::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * An identifier of the service, such as the name of the
+ * executable, job, or Google App Engine service name. This field is expected
+ * to have a low number of values that are relatively stable over time, as
+ * opposed to `version`, which can be changed whenever new code is deployed.
+ * Contains the service name for error reports extracted from Google
+ * App Engine logs or `default` if the App Engine default service is used.
+ *
+ * Generated from protobuf field string service = 2;
+ * @return string
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ /**
+ * An identifier of the service, such as the name of the
+ * executable, job, or Google App Engine service name. This field is expected
+ * to have a low number of values that are relatively stable over time, as
+ * opposed to `version`, which can be changed whenever new code is deployed.
+ * Contains the service name for error reports extracted from Google
+ * App Engine logs or `default` if the App Engine default service is used.
+ *
+ * Generated from protobuf field string service = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service = $var;
+
+ return $this;
+ }
+
+ /**
+ * Represents the source code version that the developer provided,
+ * which could represent a version label or a Git SHA-1 hash, for example.
+ * For App Engine standard environment, the version is set to the version of
+ * the app.
+ *
+ * Generated from protobuf field string version = 3;
+ * @return string
+ */
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ /**
+ * Represents the source code version that the developer provided,
+ * which could represent a version label or a Git SHA-1 hash, for example.
+ * For App Engine standard environment, the version is set to the version of
+ * the app.
+ *
+ * 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;
+ }
+
+ /**
+ * Type of the MonitoredResource. List of possible values:
+ * https://cloud.google.com/monitoring/api/resources
+ * Value is set automatically for incoming errors and must not be set when
+ * reporting errors.
+ *
+ * Generated from protobuf field string resource_type = 4;
+ * @return string
+ */
+ public function getResourceType()
+ {
+ return $this->resource_type;
+ }
+
+ /**
+ * Type of the MonitoredResource. List of possible values:
+ * https://cloud.google.com/monitoring/api/resources
+ * Value is set automatically for incoming errors and must not be set when
+ * reporting errors.
+ *
+ * Generated from protobuf field string resource_type = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setResourceType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->resource_type = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ServiceContextFilter.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ServiceContextFilter.php
new file mode 100644
index 000000000000..140d3323103d
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/ServiceContextFilter.php
@@ -0,0 +1,150 @@
+google.devtools.clouderrorreporting.v1beta1.ServiceContextFilter
+ */
+class ServiceContextFilter extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. The exact value to match against
+ * [`ServiceContext.service`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.service).
+ *
+ * Generated from protobuf field string service = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $service = '';
+ /**
+ * Optional. The exact value to match against
+ * [`ServiceContext.version`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.version).
+ *
+ * Generated from protobuf field string version = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $version = '';
+ /**
+ * Optional. The exact value to match against
+ * [`ServiceContext.resource_type`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.resource_type).
+ *
+ * Generated from protobuf field string resource_type = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $resource_type = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $service
+ * Optional. The exact value to match against
+ * [`ServiceContext.service`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.service).
+ * @type string $version
+ * Optional. The exact value to match against
+ * [`ServiceContext.version`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.version).
+ * @type string $resource_type
+ * Optional. The exact value to match against
+ * [`ServiceContext.resource_type`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.resource_type).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Clouderrorreporting\V1Beta1\ErrorStatsService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. The exact value to match against
+ * [`ServiceContext.service`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.service).
+ *
+ * Generated from protobuf field string service = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ /**
+ * Optional. The exact value to match against
+ * [`ServiceContext.service`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.service).
+ *
+ * Generated from protobuf field string service = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The exact value to match against
+ * [`ServiceContext.version`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.version).
+ *
+ * Generated from protobuf field string version = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ /**
+ * Optional. The exact value to match against
+ * [`ServiceContext.version`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.version).
+ *
+ * Generated from protobuf field string version = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->version = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The exact value to match against
+ * [`ServiceContext.resource_type`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.resource_type).
+ *
+ * Generated from protobuf field string resource_type = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getResourceType()
+ {
+ return $this->resource_type;
+ }
+
+ /**
+ * Optional. The exact value to match against
+ * [`ServiceContext.resource_type`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.resource_type).
+ *
+ * Generated from protobuf field string resource_type = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setResourceType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->resource_type = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/SourceLocation.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/SourceLocation.php
new file mode 100644
index 000000000000..f85e34012700
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/SourceLocation.php
@@ -0,0 +1,150 @@
+google.devtools.clouderrorreporting.v1beta1.SourceLocation
+ */
+class SourceLocation extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The source code filename, which can include a truncated relative
+ * path, or a full path from a production machine.
+ *
+ * Generated from protobuf field string file_path = 1;
+ */
+ protected $file_path = '';
+ /**
+ * 1-based. 0 indicates that the line number is unknown.
+ *
+ * Generated from protobuf field int32 line_number = 2;
+ */
+ protected $line_number = 0;
+ /**
+ * Human-readable name of a function or method.
+ * The value can include optional context like the class or package name.
+ * For example, `my.package.MyClass.method` in case of Java.
+ *
+ * Generated from protobuf field string function_name = 4;
+ */
+ protected $function_name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $file_path
+ * The source code filename, which can include a truncated relative
+ * path, or a full path from a production machine.
+ * @type int $line_number
+ * 1-based. 0 indicates that the line number is unknown.
+ * @type string $function_name
+ * Human-readable name of a function or method.
+ * The value can include optional context like the class or package name.
+ * For example, `my.package.MyClass.method` in case of Java.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Clouderrorreporting\V1Beta1\Common::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The source code filename, which can include a truncated relative
+ * path, or a full path from a production machine.
+ *
+ * Generated from protobuf field string file_path = 1;
+ * @return string
+ */
+ public function getFilePath()
+ {
+ return $this->file_path;
+ }
+
+ /**
+ * The source code filename, which can include a truncated relative
+ * path, or a full path from a production machine.
+ *
+ * Generated from protobuf field string file_path = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setFilePath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->file_path = $var;
+
+ return $this;
+ }
+
+ /**
+ * 1-based. 0 indicates that the line number is unknown.
+ *
+ * Generated from protobuf field int32 line_number = 2;
+ * @return int
+ */
+ public function getLineNumber()
+ {
+ return $this->line_number;
+ }
+
+ /**
+ * 1-based. 0 indicates that the line number is unknown.
+ *
+ * Generated from protobuf field int32 line_number = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setLineNumber($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->line_number = $var;
+
+ return $this;
+ }
+
+ /**
+ * Human-readable name of a function or method.
+ * The value can include optional context like the class or package name.
+ * For example, `my.package.MyClass.method` in case of Java.
+ *
+ * Generated from protobuf field string function_name = 4;
+ * @return string
+ */
+ public function getFunctionName()
+ {
+ return $this->function_name;
+ }
+
+ /**
+ * Human-readable name of a function or method.
+ * The value can include optional context like the class or package name.
+ * For example, `my.package.MyClass.method` in case of Java.
+ *
+ * Generated from protobuf field string function_name = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setFunctionName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->function_name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/TimedCount.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/TimedCount.php
new file mode 100644
index 000000000000..7605fd7676fd
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/TimedCount.php
@@ -0,0 +1,157 @@
+google.devtools.clouderrorreporting.v1beta1.TimedCount
+ */
+class TimedCount extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Approximate number of occurrences in the given time period.
+ *
+ * Generated from protobuf field int64 count = 1;
+ */
+ protected $count = 0;
+ /**
+ * Start of the time period to which `count` refers (included).
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 2;
+ */
+ protected $start_time = null;
+ /**
+ * End of the time period to which `count` refers (excluded).
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 3;
+ */
+ protected $end_time = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $count
+ * Approximate number of occurrences in the given time period.
+ * @type \Google\Protobuf\Timestamp $start_time
+ * Start of the time period to which `count` refers (included).
+ * @type \Google\Protobuf\Timestamp $end_time
+ * End of the time period to which `count` refers (excluded).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Clouderrorreporting\V1Beta1\ErrorStatsService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Approximate number of occurrences in the given time period.
+ *
+ * Generated from protobuf field int64 count = 1;
+ * @return int|string
+ */
+ public function getCount()
+ {
+ return $this->count;
+ }
+
+ /**
+ * Approximate number of occurrences in the given time period.
+ *
+ * Generated from protobuf field int64 count = 1;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Start of the time period to which `count` refers (included).
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 2;
+ * @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 of the time period to which `count` refers (included).
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp start_time = 2;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setStartTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->start_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * End of the time period to which `count` refers (excluded).
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 3;
+ * @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);
+ }
+
+ /**
+ * End of the time period to which `count` refers (excluded).
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 3;
+ * @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/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/TimedCountAlignment.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/TimedCountAlignment.php
new file mode 100644
index 000000000000..633e74c96e9d
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/TimedCountAlignment.php
@@ -0,0 +1,71 @@
+google.devtools.clouderrorreporting.v1beta1.TimedCountAlignment
+ */
+class TimedCountAlignment
+{
+ /**
+ * No alignment specified.
+ *
+ * Generated from protobuf enum ERROR_COUNT_ALIGNMENT_UNSPECIFIED = 0;
+ */
+ const ERROR_COUNT_ALIGNMENT_UNSPECIFIED = 0;
+ /**
+ * The time periods shall be consecutive, have width equal to the
+ * requested duration, and be aligned at the `alignment_time` provided in
+ * the request.
+ * The `alignment_time` does not have to be inside the query period but
+ * even if it is outside, only time periods are returned which overlap
+ * with the query period.
+ * A rounded alignment will typically result in a
+ * different size of the first or the last time period.
+ *
+ * Generated from protobuf enum ALIGNMENT_EQUAL_ROUNDED = 1;
+ */
+ const ALIGNMENT_EQUAL_ROUNDED = 1;
+ /**
+ * The time periods shall be consecutive, have width equal to the
+ * requested duration, and be aligned at the end of the requested time
+ * period. This can result in a different size of the
+ * first time period.
+ *
+ * Generated from protobuf enum ALIGNMENT_EQUAL_AT_END = 2;
+ */
+ const ALIGNMENT_EQUAL_AT_END = 2;
+
+ private static $valueToName = [
+ self::ERROR_COUNT_ALIGNMENT_UNSPECIFIED => 'ERROR_COUNT_ALIGNMENT_UNSPECIFIED',
+ self::ALIGNMENT_EQUAL_ROUNDED => 'ALIGNMENT_EQUAL_ROUNDED',
+ self::ALIGNMENT_EQUAL_AT_END => 'ALIGNMENT_EQUAL_AT_END',
+ ];
+
+ 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/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/TrackingIssue.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/TrackingIssue.php
new file mode 100644
index 000000000000..b6a97dcab003
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/TrackingIssue.php
@@ -0,0 +1,71 @@
+google.devtools.clouderrorreporting.v1beta1.TrackingIssue
+ */
+class TrackingIssue extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A URL pointing to a related entry in an issue tracking system.
+ * Example: `https://github.com/user/project/issues/4`
+ *
+ * Generated from protobuf field string url = 1;
+ */
+ protected $url = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $url
+ * A URL pointing to a related entry in an issue tracking system.
+ * Example: `https://github.com/user/project/issues/4`
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Clouderrorreporting\V1Beta1\Common::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A URL pointing to a related entry in an issue tracking system.
+ * Example: `https://github.com/user/project/issues/4`
+ *
+ * Generated from protobuf field string url = 1;
+ * @return string
+ */
+ public function getUrl()
+ {
+ return $this->url;
+ }
+
+ /**
+ * A URL pointing to a related entry in an issue tracking system.
+ * Example: `https://github.com/user/project/issues/4`
+ *
+ * Generated from protobuf field string url = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setUrl($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->url = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/UpdateGroupRequest.php b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/UpdateGroupRequest.php
new file mode 100644
index 000000000000..eb7d7c9e99b9
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/proto/src/Google/Cloud/ErrorReporting/V1beta1/UpdateGroupRequest.php
@@ -0,0 +1,90 @@
+google.devtools.clouderrorreporting.v1beta1.UpdateGroupRequest
+ */
+class UpdateGroupRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The group which replaces the resource on the server.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ErrorGroup group = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $group = null;
+
+ /**
+ * @param \Google\Cloud\ErrorReporting\V1beta1\ErrorGroup $group Required. The group which replaces the resource on the server.
+ *
+ * @return \Google\Cloud\ErrorReporting\V1beta1\UpdateGroupRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\ErrorReporting\V1beta1\ErrorGroup $group): self
+ {
+ return (new self())
+ ->setGroup($group);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\ErrorReporting\V1beta1\ErrorGroup $group
+ * Required. The group which replaces the resource on the server.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Clouderrorreporting\V1Beta1\ErrorGroupService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The group which replaces the resource on the server.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ErrorGroup group = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\ErrorReporting\V1beta1\ErrorGroup|null
+ */
+ public function getGroup()
+ {
+ return $this->group;
+ }
+
+ public function hasGroup()
+ {
+ return isset($this->group);
+ }
+
+ public function clearGroup()
+ {
+ unset($this->group);
+ }
+
+ /**
+ * Required. The group which replaces the resource on the server.
+ *
+ * Generated from protobuf field .google.devtools.clouderrorreporting.v1beta1.ErrorGroup group = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\ErrorReporting\V1beta1\ErrorGroup $var
+ * @return $this
+ */
+ public function setGroup($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ErrorReporting\V1beta1\ErrorGroup::class);
+ $this->group = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/samples/V1beta1/ErrorGroupServiceClient/get_group.php b/owl-bot-staging/ErrorReporting/v1beta1/samples/V1beta1/ErrorGroupServiceClient/get_group.php
new file mode 100644
index 000000000000..d9bdec88dc1d
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/samples/V1beta1/ErrorGroupServiceClient/get_group.php
@@ -0,0 +1,76 @@
+setGroupName($formattedGroupName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var ErrorGroup $response */
+ $response = $errorGroupServiceClient->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
+{
+ $formattedGroupName = ErrorGroupServiceClient::errorGroupName('[PROJECT]', '[GROUP]');
+
+ get_group_sample($formattedGroupName);
+}
+// [END clouderrorreporting_v1beta1_generated_ErrorGroupService_GetGroup_sync]
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/samples/V1beta1/ErrorGroupServiceClient/update_group.php b/owl-bot-staging/ErrorReporting/v1beta1/samples/V1beta1/ErrorGroupServiceClient/update_group.php
new file mode 100644
index 000000000000..a640215654eb
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/samples/V1beta1/ErrorGroupServiceClient/update_group.php
@@ -0,0 +1,60 @@
+setGroup($group);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var ErrorGroup $response */
+ $response = $errorGroupServiceClient->updateGroup($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END clouderrorreporting_v1beta1_generated_ErrorGroupService_UpdateGroup_sync]
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/samples/V1beta1/ErrorStatsServiceClient/delete_events.php b/owl-bot-staging/ErrorReporting/v1beta1/samples/V1beta1/ErrorStatsServiceClient/delete_events.php
new file mode 100644
index 000000000000..290523b740a6
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/samples/V1beta1/ErrorStatsServiceClient/delete_events.php
@@ -0,0 +1,76 @@
+setProjectName($formattedProjectName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var DeleteEventsResponse $response */
+ $response = $errorStatsServiceClient->deleteEvents($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
+{
+ $formattedProjectName = ErrorStatsServiceClient::projectName('[PROJECT]');
+
+ delete_events_sample($formattedProjectName);
+}
+// [END clouderrorreporting_v1beta1_generated_ErrorStatsService_DeleteEvents_sync]
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/samples/V1beta1/ErrorStatsServiceClient/list_events.php b/owl-bot-staging/ErrorReporting/v1beta1/samples/V1beta1/ErrorStatsServiceClient/list_events.php
new file mode 100644
index 000000000000..5e4fbbaec9a5
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/samples/V1beta1/ErrorStatsServiceClient/list_events.php
@@ -0,0 +1,84 @@
+setProjectName($formattedProjectName)
+ ->setGroupId($groupId);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $errorStatsServiceClient->listEvents($request);
+
+ /** @var ErrorEvent $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
+{
+ $formattedProjectName = ErrorStatsServiceClient::projectName('[PROJECT]');
+ $groupId = '[GROUP_ID]';
+
+ list_events_sample($formattedProjectName, $groupId);
+}
+// [END clouderrorreporting_v1beta1_generated_ErrorStatsService_ListEvents_sync]
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/samples/V1beta1/ErrorStatsServiceClient/list_group_stats.php b/owl-bot-staging/ErrorReporting/v1beta1/samples/V1beta1/ErrorStatsServiceClient/list_group_stats.php
new file mode 100644
index 000000000000..987f871ee70c
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/samples/V1beta1/ErrorStatsServiceClient/list_group_stats.php
@@ -0,0 +1,81 @@
+setProjectName($formattedProjectName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $errorStatsServiceClient->listGroupStats($request);
+
+ /** @var ErrorGroupStats $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
+{
+ $formattedProjectName = ErrorStatsServiceClient::projectName('[PROJECT]');
+
+ list_group_stats_sample($formattedProjectName);
+}
+// [END clouderrorreporting_v1beta1_generated_ErrorStatsService_ListGroupStats_sync]
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/samples/V1beta1/ReportErrorsServiceClient/report_error_event.php b/owl-bot-staging/ErrorReporting/v1beta1/samples/V1beta1/ReportErrorsServiceClient/report_error_event.php
new file mode 100644
index 000000000000..f8f5d3ae62a2
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/samples/V1beta1/ReportErrorsServiceClient/report_error_event.php
@@ -0,0 +1,121 @@
+setServiceContext($eventServiceContext)
+ ->setMessage($eventMessage);
+ $request = (new ReportErrorEventRequest())
+ ->setProjectName($formattedProjectName)
+ ->setEvent($event);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var ReportErrorEventResponse $response */
+ $response = $reportErrorsServiceClient->reportErrorEvent($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
+{
+ $formattedProjectName = ReportErrorsServiceClient::projectName('[PROJECT]');
+ $eventMessage = '[MESSAGE]';
+
+ report_error_event_sample($formattedProjectName, $eventMessage);
+}
+// [END clouderrorreporting_v1beta1_generated_ReportErrorsService_ReportErrorEvent_sync]
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/Client/BaseClient/ErrorGroupServiceBaseClient.php b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/Client/BaseClient/ErrorGroupServiceBaseClient.php
new file mode 100644
index 000000000000..eecc468f9a64
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/Client/BaseClient/ErrorGroupServiceBaseClient.php
@@ -0,0 +1,273 @@
+ self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../../resources/error_group_service_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../../resources/error_group_service_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../../resources/error_group_service_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../../resources/error_group_service_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a error_group
+ * resource.
+ *
+ * @param string $project
+ * @param string $group
+ *
+ * @return string The formatted error_group resource.
+ *
+ * @experimental
+ */
+ public static function errorGroupName(string $project, string $group): string
+ {
+ return self::getPathTemplate('errorGroup')->render([
+ 'project' => $project,
+ 'group' => $group,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - errorGroup: projects/{project}/groups/{group}
+ *
+ * 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.
+ *
+ * @experimental
+ */
+ 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 'clouderrorreporting.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);
+ }
+
+ /** 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);
+ }
+
+ /**
+ * Get the specified group.
+ *
+ * The async variant is {@see self::getGroupAsync()} .
+ *
+ * @param GetGroupRequest $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 ErrorGroup
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function getGroup(GetGroupRequest $request, array $callOptions = []): ErrorGroup
+ {
+ return $this->startApiCall('GetGroup', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Replace the data for the specified group.
+ * Fails if the group does not exist.
+ *
+ * The async variant is {@see self::updateGroupAsync()} .
+ *
+ * @param UpdateGroupRequest $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 ErrorGroup
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function updateGroup(UpdateGroupRequest $request, array $callOptions = []): ErrorGroup
+ {
+ return $this->startApiCall('UpdateGroup', $request, $callOptions)->wait();
+ }
+}
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/Client/BaseClient/ErrorStatsServiceBaseClient.php b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/Client/BaseClient/ErrorStatsServiceBaseClient.php
new file mode 100644
index 000000000000..ae0b329b01a7
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/Client/BaseClient/ErrorStatsServiceBaseClient.php
@@ -0,0 +1,300 @@
+ self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../../resources/error_stats_service_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../../resources/error_stats_service_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../../resources/error_stats_service_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../../resources/error_stats_service_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a project
+ * resource.
+ *
+ * @param string $project
+ *
+ * @return string The formatted project resource.
+ *
+ * @experimental
+ */
+ public static function projectName(string $project): string
+ {
+ return self::getPathTemplate('project')->render([
+ 'project' => $project,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - project: projects/{project}
+ *
+ * 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.
+ *
+ * @experimental
+ */
+ 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 'clouderrorreporting.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);
+ }
+
+ /** 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);
+ }
+
+ /**
+ * Deletes all error events of a given project.
+ *
+ * The async variant is {@see self::deleteEventsAsync()} .
+ *
+ * @param DeleteEventsRequest $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 DeleteEventsResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function deleteEvents(DeleteEventsRequest $request, array $callOptions = []): DeleteEventsResponse
+ {
+ return $this->startApiCall('DeleteEvents', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Lists the specified events.
+ *
+ * The async variant is {@see self::listEventsAsync()} .
+ *
+ * @param ListEventsRequest $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.
+ *
+ * @experimental
+ */
+ public function listEvents(ListEventsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListEvents', $request, $callOptions);
+ }
+
+ /**
+ * Lists the specified groups.
+ *
+ * The async variant is {@see self::listGroupStatsAsync()} .
+ *
+ * @param ListGroupStatsRequest $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.
+ *
+ * @experimental
+ */
+ public function listGroupStats(ListGroupStatsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListGroupStats', $request, $callOptions);
+ }
+}
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/Client/BaseClient/ReportErrorsServiceBaseClient.php b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/Client/BaseClient/ReportErrorsServiceBaseClient.php
new file mode 100644
index 000000000000..7bab8480a899
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/Client/BaseClient/ReportErrorsServiceBaseClient.php
@@ -0,0 +1,255 @@
+ self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../../resources/report_errors_service_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../../resources/report_errors_service_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../../resources/report_errors_service_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../../resources/report_errors_service_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a project
+ * resource.
+ *
+ * @param string $project
+ *
+ * @return string The formatted project resource.
+ *
+ * @experimental
+ */
+ public static function projectName(string $project): string
+ {
+ return self::getPathTemplate('project')->render([
+ 'project' => $project,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - project: projects/{project}
+ *
+ * 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.
+ *
+ * @experimental
+ */
+ 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 'clouderrorreporting.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);
+ }
+
+ /** 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);
+ }
+
+ /**
+ * Report an individual error event and record the event to a log.
+ *
+ * This endpoint accepts **either** an OAuth token,
+ * **or** an [API key](https://support.google.com/cloud/answer/6158862)
+ * for authentication. To use an API key, append it to the URL as the value of
+ * a `key` parameter. For example:
+ *
+ * `POST
+ * https://clouderrorreporting.googleapis.com/v1beta1/{projectName}/events:report?key=123ABC456`
+ *
+ * **Note:** [Error Reporting](/error-reporting) is a global service built
+ * on Cloud Logging and doesn't analyze logs stored
+ * in regional log buckets or logs routed to other Google Cloud projects.
+ *
+ *
+ * The async variant is {@see self::reportErrorEventAsync()} .
+ *
+ * @param ReportErrorEventRequest $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 ReportErrorEventResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function reportErrorEvent(ReportErrorEventRequest $request, array $callOptions = []): ReportErrorEventResponse
+ {
+ return $this->startApiCall('ReportErrorEvent', $request, $callOptions)->wait();
+ }
+}
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/Client/ErrorGroupServiceClient.php b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/Client/ErrorGroupServiceClient.php
new file mode 100644
index 000000000000..26ac1a62d22d
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/Client/ErrorGroupServiceClient.php
@@ -0,0 +1,42 @@
+errorGroupName('[PROJECT]', '[GROUP]');
+ * $response = $errorGroupServiceClient->getGroup($formattedGroupName);
+ * } finally {
+ * $errorGroupServiceClient->close();
+ * }
+ * ```
+ *
+ * Many parameters require resource names to be formatted in a particular way. To
+ * assist with these names, this class includes a format method for each type of
+ * name, and additionally a parseName method to extract the individual identifiers
+ * contained within formatted names that are returned by the API.
+ *
+ * @experimental
+ */
+class ErrorGroupServiceGapicClient
+{
+ use GapicClientTrait;
+
+ /** The name of the service. */
+ const SERVICE_NAME = 'google.devtools.clouderrorreporting.v1beta1.ErrorGroupService';
+
+ /** The default address of the service. */
+ const SERVICE_ADDRESS = 'clouderrorreporting.googleapis.com';
+
+ /** 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 $errorGroupNameTemplate;
+
+ private static $pathTemplateMap;
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/error_group_service_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/error_group_service_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/error_group_service_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/error_group_service_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ private static function getErrorGroupNameTemplate()
+ {
+ if (self::$errorGroupNameTemplate == null) {
+ self::$errorGroupNameTemplate = new PathTemplate('projects/{project}/groups/{group}');
+ }
+
+ return self::$errorGroupNameTemplate;
+ }
+
+ private static function getPathTemplateMap()
+ {
+ if (self::$pathTemplateMap == null) {
+ self::$pathTemplateMap = [
+ 'errorGroup' => self::getErrorGroupNameTemplate(),
+ ];
+ }
+
+ return self::$pathTemplateMap;
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a error_group
+ * resource.
+ *
+ * @param string $project
+ * @param string $group
+ *
+ * @return string The formatted error_group resource.
+ *
+ * @experimental
+ */
+ public static function errorGroupName($project, $group)
+ {
+ return self::getErrorGroupNameTemplate()->render([
+ 'project' => $project,
+ 'group' => $group,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - errorGroup: projects/{project}/groups/{group}
+ *
+ * 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.
+ *
+ * @experimental
+ */
+ public static function parseName($formattedName, $template = null)
+ {
+ $templateMap = self::getPathTemplateMap();
+ if ($template) {
+ if (!isset($templateMap[$template])) {
+ throw new ValidationException("Template name $template does not exist");
+ }
+
+ return $templateMap[$template]->match($formattedName);
+ }
+
+ foreach ($templateMap as $templateName => $pathTemplate) {
+ try {
+ return $pathTemplate->match($formattedName);
+ } catch (ValidationException $ex) {
+ // Swallow the exception to continue trying other path templates
+ }
+ }
+
+ throw new ValidationException("Input did not match any known format. Input: $formattedName");
+ }
+
+ /**
+ * 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 'clouderrorreporting.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);
+ }
+
+ /**
+ * Get the specified group.
+ *
+ * Sample code:
+ * ```
+ * $errorGroupServiceClient = new ErrorGroupServiceClient();
+ * try {
+ * $formattedGroupName = $errorGroupServiceClient->errorGroupName('[PROJECT]', '[GROUP]');
+ * $response = $errorGroupServiceClient->getGroup($formattedGroupName);
+ * } finally {
+ * $errorGroupServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $groupName Required. The group resource name. Written as
+ * `projects/{projectID}/groups/{group_name}`. Call
+ * [`groupStats.list`](https://cloud.google.com/error-reporting/reference/rest/v1beta1/projects.groupStats/list)
+ * to return a list of groups belonging to this project.
+ *
+ * Example: `projects/my-project-123/groups/my-group`
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\ErrorReporting\V1beta1\ErrorGroup
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function getGroup($groupName, array $optionalArgs = [])
+ {
+ $request = new GetGroupRequest();
+ $requestParamHeaders = [];
+ $request->setGroupName($groupName);
+ $requestParamHeaders['group_name'] = $groupName;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetGroup', ErrorGroup::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Replace the data for the specified group.
+ * Fails if the group does not exist.
+ *
+ * Sample code:
+ * ```
+ * $errorGroupServiceClient = new ErrorGroupServiceClient();
+ * try {
+ * $group = new ErrorGroup();
+ * $response = $errorGroupServiceClient->updateGroup($group);
+ * } finally {
+ * $errorGroupServiceClient->close();
+ * }
+ * ```
+ *
+ * @param ErrorGroup $group Required. The group which replaces the resource on the server.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\ErrorReporting\V1beta1\ErrorGroup
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function updateGroup($group, array $optionalArgs = [])
+ {
+ $request = new UpdateGroupRequest();
+ $requestParamHeaders = [];
+ $request->setGroup($group);
+ $requestParamHeaders['group.name'] = $group->getName();
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('UpdateGroup', ErrorGroup::class, $optionalArgs, $request)->wait();
+ }
+}
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/Gapic/ErrorStatsServiceGapicClient.php b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/Gapic/ErrorStatsServiceGapicClient.php
new file mode 100644
index 000000000000..bf09507d96b8
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/Gapic/ErrorStatsServiceGapicClient.php
@@ -0,0 +1,530 @@
+projectName('[PROJECT]');
+ * $response = $errorStatsServiceClient->deleteEvents($formattedProjectName);
+ * } finally {
+ * $errorStatsServiceClient->close();
+ * }
+ * ```
+ *
+ * Many parameters require resource names to be formatted in a particular way. To
+ * assist with these names, this class includes a format method for each type of
+ * name, and additionally a parseName method to extract the individual identifiers
+ * contained within formatted names that are returned by the API.
+ *
+ * @experimental
+ */
+class ErrorStatsServiceGapicClient
+{
+ use GapicClientTrait;
+
+ /** The name of the service. */
+ const SERVICE_NAME = 'google.devtools.clouderrorreporting.v1beta1.ErrorStatsService';
+
+ /** The default address of the service. */
+ const SERVICE_ADDRESS = 'clouderrorreporting.googleapis.com';
+
+ /** 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 $projectNameTemplate;
+
+ private static $pathTemplateMap;
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/error_stats_service_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/error_stats_service_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/error_stats_service_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/error_stats_service_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ private static function getProjectNameTemplate()
+ {
+ if (self::$projectNameTemplate == null) {
+ self::$projectNameTemplate = new PathTemplate('projects/{project}');
+ }
+
+ return self::$projectNameTemplate;
+ }
+
+ private static function getPathTemplateMap()
+ {
+ if (self::$pathTemplateMap == null) {
+ self::$pathTemplateMap = [
+ 'project' => self::getProjectNameTemplate(),
+ ];
+ }
+
+ return self::$pathTemplateMap;
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a project
+ * resource.
+ *
+ * @param string $project
+ *
+ * @return string The formatted project resource.
+ *
+ * @experimental
+ */
+ public static function projectName($project)
+ {
+ return self::getProjectNameTemplate()->render([
+ 'project' => $project,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - project: projects/{project}
+ *
+ * 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.
+ *
+ * @experimental
+ */
+ public static function parseName($formattedName, $template = null)
+ {
+ $templateMap = self::getPathTemplateMap();
+ if ($template) {
+ if (!isset($templateMap[$template])) {
+ throw new ValidationException("Template name $template does not exist");
+ }
+
+ return $templateMap[$template]->match($formattedName);
+ }
+
+ foreach ($templateMap as $templateName => $pathTemplate) {
+ try {
+ return $pathTemplate->match($formattedName);
+ } catch (ValidationException $ex) {
+ // Swallow the exception to continue trying other path templates
+ }
+ }
+
+ throw new ValidationException("Input did not match any known format. Input: $formattedName");
+ }
+
+ /**
+ * 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 'clouderrorreporting.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);
+ }
+
+ /**
+ * Deletes all error events of a given project.
+ *
+ * Sample code:
+ * ```
+ * $errorStatsServiceClient = new ErrorStatsServiceClient();
+ * try {
+ * $formattedProjectName = $errorStatsServiceClient->projectName('[PROJECT]');
+ * $response = $errorStatsServiceClient->deleteEvents($formattedProjectName);
+ * } finally {
+ * $errorStatsServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $projectName Required. The resource name of the Google Cloud Platform project. Written
+ * as `projects/{projectID}`, where `{projectID}` is the
+ * [Google Cloud Platform project
+ * ID](https://support.google.com/cloud/answer/6158840).
+ *
+ * Example: `projects/my-project-123`.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\ErrorReporting\V1beta1\DeleteEventsResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function deleteEvents($projectName, array $optionalArgs = [])
+ {
+ $request = new DeleteEventsRequest();
+ $requestParamHeaders = [];
+ $request->setProjectName($projectName);
+ $requestParamHeaders['project_name'] = $projectName;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('DeleteEvents', DeleteEventsResponse::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Lists the specified events.
+ *
+ * Sample code:
+ * ```
+ * $errorStatsServiceClient = new ErrorStatsServiceClient();
+ * try {
+ * $formattedProjectName = $errorStatsServiceClient->projectName('[PROJECT]');
+ * $groupId = 'group_id';
+ * // Iterate over pages of elements
+ * $pagedResponse = $errorStatsServiceClient->listEvents($formattedProjectName, $groupId);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $errorStatsServiceClient->listEvents($formattedProjectName, $groupId);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $errorStatsServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $projectName Required. The resource name of the Google Cloud Platform project. Written
+ * as `projects/{projectID}`, where `{projectID}` is the
+ * [Google Cloud Platform project
+ * ID](https://support.google.com/cloud/answer/6158840).
+ *
+ * Example: `projects/my-project-123`.
+ * @param string $groupId Required. The group for which events shall be returned.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type ServiceContextFilter $serviceFilter
+ * Optional. List only ErrorGroups which belong to a service context that
+ * matches the filter.
+ * Data for all service contexts is returned if this field is not specified.
+ * @type QueryTimeRange $timeRange
+ * Optional. List only data for the given time range.
+ * If not set a default time range is used. The field time_range_begin
+ * in the response will specify the beginning of this time range.
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function listEvents($projectName, $groupId, array $optionalArgs = [])
+ {
+ $request = new ListEventsRequest();
+ $requestParamHeaders = [];
+ $request->setProjectName($projectName);
+ $request->setGroupId($groupId);
+ $requestParamHeaders['project_name'] = $projectName;
+ if (isset($optionalArgs['serviceFilter'])) {
+ $request->setServiceFilter($optionalArgs['serviceFilter']);
+ }
+
+ if (isset($optionalArgs['timeRange'])) {
+ $request->setTimeRange($optionalArgs['timeRange']);
+ }
+
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListEvents', $optionalArgs, ListEventsResponse::class, $request);
+ }
+
+ /**
+ * Lists the specified groups.
+ *
+ * Sample code:
+ * ```
+ * $errorStatsServiceClient = new ErrorStatsServiceClient();
+ * try {
+ * $formattedProjectName = $errorStatsServiceClient->projectName('[PROJECT]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $errorStatsServiceClient->listGroupStats($formattedProjectName);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $errorStatsServiceClient->listGroupStats($formattedProjectName);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $errorStatsServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $projectName Required. The resource name of the Google Cloud Platform project. Written
+ * as `projects/{projectID}` or `projects/{projectNumber}`, where `{projectID}`
+ * and `{projectNumber}` can be found in the
+ * [Google Cloud Console](https://support.google.com/cloud/answer/6158840).
+ *
+ * Examples: `projects/my-project-123`, `projects/5551234`.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string[] $groupId
+ * Optional. List all ErrorGroupStats
with these IDs.
+ * @type ServiceContextFilter $serviceFilter
+ * Optional. List only ErrorGroupStats
which belong to a service
+ * context that matches the filter.
+ * Data for all service contexts is returned if this field is not specified.
+ * @type QueryTimeRange $timeRange
+ * Optional. List data for the given time range.
+ * If not set, a default time range is used. The field
+ * time_range_begin
in the response will specify the beginning
+ * of this time range.
+ * Only ErrorGroupStats
with a non-zero count in the given time
+ * range are returned, unless the request contains an explicit
+ * group_id
list. If a group_id
list is given, also
+ * ErrorGroupStats
with zero occurrences are returned.
+ * @type Duration $timedCountDuration
+ * Optional. The preferred duration for a single returned `TimedCount`.
+ * If not set, no timed counts are returned.
+ * @type int $alignment
+ * Optional. The alignment of the timed counts to be returned.
+ * Default is `ALIGNMENT_EQUAL_AT_END`.
+ * For allowed values, use constants defined on {@see \Google\Cloud\ErrorReporting\V1beta1\TimedCountAlignment}
+ * @type Timestamp $alignmentTime
+ * Optional. Time where the timed counts shall be aligned if rounded
+ * alignment is chosen. Default is 00:00 UTC.
+ * @type int $order
+ * Optional. The sort order in which the results are returned.
+ * Default is `COUNT_DESC`.
+ * For allowed values, use constants defined on {@see \Google\Cloud\ErrorReporting\V1beta1\ErrorGroupOrder}
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function listGroupStats($projectName, array $optionalArgs = [])
+ {
+ $request = new ListGroupStatsRequest();
+ $requestParamHeaders = [];
+ $request->setProjectName($projectName);
+ $requestParamHeaders['project_name'] = $projectName;
+ if (isset($optionalArgs['groupId'])) {
+ $request->setGroupId($optionalArgs['groupId']);
+ }
+
+ if (isset($optionalArgs['serviceFilter'])) {
+ $request->setServiceFilter($optionalArgs['serviceFilter']);
+ }
+
+ if (isset($optionalArgs['timeRange'])) {
+ $request->setTimeRange($optionalArgs['timeRange']);
+ }
+
+ if (isset($optionalArgs['timedCountDuration'])) {
+ $request->setTimedCountDuration($optionalArgs['timedCountDuration']);
+ }
+
+ if (isset($optionalArgs['alignment'])) {
+ $request->setAlignment($optionalArgs['alignment']);
+ }
+
+ if (isset($optionalArgs['alignmentTime'])) {
+ $request->setAlignmentTime($optionalArgs['alignmentTime']);
+ }
+
+ if (isset($optionalArgs['order'])) {
+ $request->setOrder($optionalArgs['order']);
+ }
+
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListGroupStats', $optionalArgs, ListGroupStatsResponse::class, $request);
+ }
+}
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/Gapic/ReportErrorsServiceGapicClient.php b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/Gapic/ReportErrorsServiceGapicClient.php
new file mode 100644
index 000000000000..870892c397ab
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/Gapic/ReportErrorsServiceGapicClient.php
@@ -0,0 +1,313 @@
+projectName('[PROJECT]');
+ * $event = new ReportedErrorEvent();
+ * $response = $reportErrorsServiceClient->reportErrorEvent($formattedProjectName, $event);
+ * } finally {
+ * $reportErrorsServiceClient->close();
+ * }
+ * ```
+ *
+ * Many parameters require resource names to be formatted in a particular way. To
+ * assist with these names, this class includes a format method for each type of
+ * name, and additionally a parseName method to extract the individual identifiers
+ * contained within formatted names that are returned by the API.
+ *
+ * @experimental
+ */
+class ReportErrorsServiceGapicClient
+{
+ use GapicClientTrait;
+
+ /** The name of the service. */
+ const SERVICE_NAME = 'google.devtools.clouderrorreporting.v1beta1.ReportErrorsService';
+
+ /** The default address of the service. */
+ const SERVICE_ADDRESS = 'clouderrorreporting.googleapis.com';
+
+ /** 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 $projectNameTemplate;
+
+ private static $pathTemplateMap;
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/report_errors_service_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/report_errors_service_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/report_errors_service_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/report_errors_service_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ private static function getProjectNameTemplate()
+ {
+ if (self::$projectNameTemplate == null) {
+ self::$projectNameTemplate = new PathTemplate('projects/{project}');
+ }
+
+ return self::$projectNameTemplate;
+ }
+
+ private static function getPathTemplateMap()
+ {
+ if (self::$pathTemplateMap == null) {
+ self::$pathTemplateMap = [
+ 'project' => self::getProjectNameTemplate(),
+ ];
+ }
+
+ return self::$pathTemplateMap;
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a project
+ * resource.
+ *
+ * @param string $project
+ *
+ * @return string The formatted project resource.
+ *
+ * @experimental
+ */
+ public static function projectName($project)
+ {
+ return self::getProjectNameTemplate()->render([
+ 'project' => $project,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - project: projects/{project}
+ *
+ * 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.
+ *
+ * @experimental
+ */
+ public static function parseName($formattedName, $template = null)
+ {
+ $templateMap = self::getPathTemplateMap();
+ if ($template) {
+ if (!isset($templateMap[$template])) {
+ throw new ValidationException("Template name $template does not exist");
+ }
+
+ return $templateMap[$template]->match($formattedName);
+ }
+
+ foreach ($templateMap as $templateName => $pathTemplate) {
+ try {
+ return $pathTemplate->match($formattedName);
+ } catch (ValidationException $ex) {
+ // Swallow the exception to continue trying other path templates
+ }
+ }
+
+ throw new ValidationException("Input did not match any known format. Input: $formattedName");
+ }
+
+ /**
+ * 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 'clouderrorreporting.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);
+ }
+
+ /**
+ * Report an individual error event and record the event to a log.
+ *
+ * This endpoint accepts **either** an OAuth token,
+ * **or** an [API key](https://support.google.com/cloud/answer/6158862)
+ * for authentication. To use an API key, append it to the URL as the value of
+ * a `key` parameter. For example:
+ *
+ * `POST
+ * https://clouderrorreporting.googleapis.com/v1beta1/{projectName}/events:report?key=123ABC456`
+ *
+ * **Note:** [Error Reporting](/error-reporting) is a global service built
+ * on Cloud Logging and doesn't analyze logs stored
+ * in regional log buckets or logs routed to other Google Cloud projects.
+ *
+ *
+ * Sample code:
+ * ```
+ * $reportErrorsServiceClient = new ReportErrorsServiceClient();
+ * try {
+ * $formattedProjectName = $reportErrorsServiceClient->projectName('[PROJECT]');
+ * $event = new ReportedErrorEvent();
+ * $response = $reportErrorsServiceClient->reportErrorEvent($formattedProjectName, $event);
+ * } finally {
+ * $reportErrorsServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $projectName Required. The resource name of the Google Cloud Platform project. Written
+ * as `projects/{projectId}`, where `{projectId}` is the
+ * [Google Cloud Platform project
+ * ID](https://support.google.com/cloud/answer/6158840).
+ *
+ * Example: // `projects/my-project-123`.
+ * @param ReportedErrorEvent $event Required. The error event to be reported.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\ErrorReporting\V1beta1\ReportErrorEventResponse
+ *
+ * @throws ApiException if the remote call fails
+ *
+ * @experimental
+ */
+ public function reportErrorEvent($projectName, $event, array $optionalArgs = [])
+ {
+ $request = new ReportErrorEventRequest();
+ $requestParamHeaders = [];
+ $request->setProjectName($projectName);
+ $request->setEvent($event);
+ $requestParamHeaders['project_name'] = $projectName;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('ReportErrorEvent', ReportErrorEventResponse::class, $optionalArgs, $request)->wait();
+ }
+}
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/ReportErrorsServiceClient.php b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/ReportErrorsServiceClient.php
new file mode 100644
index 000000000000..1cf0f5c77828
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/ReportErrorsServiceClient.php
@@ -0,0 +1,36 @@
+ [
+ 'google.devtools.clouderrorreporting.v1beta1.ErrorGroupService' => [
+ 'GetGroup' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ErrorReporting\V1beta1\ErrorGroup',
+ 'headerParams' => [
+ [
+ 'keyName' => 'group_name',
+ 'fieldAccessors' => [
+ 'getGroupName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateGroup' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ErrorReporting\V1beta1\ErrorGroup',
+ 'headerParams' => [
+ [
+ 'keyName' => 'group.name',
+ 'fieldAccessors' => [
+ 'getGroup',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'templateMap' => [
+ 'errorGroup' => 'projects/{project}/groups/{group}',
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/resources/error_group_service_rest_client_config.php b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/resources/error_group_service_rest_client_config.php
new file mode 100644
index 000000000000..e967a41f87ee
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/resources/error_group_service_rest_client_config.php
@@ -0,0 +1,33 @@
+ [
+ 'google.devtools.clouderrorreporting.v1beta1.ErrorGroupService' => [
+ 'GetGroup' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta1/{group_name=projects/*/groups/*}',
+ 'placeholders' => [
+ 'group_name' => [
+ 'getters' => [
+ 'getGroupName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateGroup' => [
+ 'method' => 'put',
+ 'uriTemplate' => '/v1beta1/{group.name=projects/*/groups/*}',
+ 'body' => 'group',
+ 'placeholders' => [
+ 'group.name' => [
+ 'getters' => [
+ 'getGroup',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'numericEnums' => true,
+];
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/resources/error_stats_service_client_config.json b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/resources/error_stats_service_client_config.json
new file mode 100644
index 000000000000..0a7501188091
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/resources/error_stats_service_client_config.json
@@ -0,0 +1,50 @@
+{
+ "interfaces": {
+ "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService": {
+ "retry_codes": {
+ "no_retry_codes": [],
+ "retry_policy_1_codes": [
+ "UNAVAILABLE",
+ "DEADLINE_EXCEEDED"
+ ]
+ },
+ "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": 100,
+ "retry_delay_multiplier": 1.3,
+ "max_retry_delay_millis": 60000,
+ "initial_rpc_timeout_millis": 600000,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 600000,
+ "total_timeout_millis": 600000
+ }
+ },
+ "methods": {
+ "DeleteEvents": {
+ "timeout_millis": 600000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListEvents": {
+ "timeout_millis": 600000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListGroupStats": {
+ "timeout_millis": 600000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ }
+ }
+ }
+ }
+}
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/resources/error_stats_service_descriptor_config.php b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/resources/error_stats_service_descriptor_config.php
new file mode 100644
index 000000000000..43712e675c86
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/resources/error_stats_service_descriptor_config.php
@@ -0,0 +1,63 @@
+ [
+ 'google.devtools.clouderrorreporting.v1beta1.ErrorStatsService' => [
+ 'DeleteEvents' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ErrorReporting\V1beta1\DeleteEventsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'project_name',
+ 'fieldAccessors' => [
+ 'getProjectName',
+ ],
+ ],
+ ],
+ ],
+ 'ListEvents' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getErrorEvents',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\ErrorReporting\V1beta1\ListEventsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'project_name',
+ 'fieldAccessors' => [
+ 'getProjectName',
+ ],
+ ],
+ ],
+ ],
+ 'ListGroupStats' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getErrorGroupStats',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\ErrorReporting\V1beta1\ListGroupStatsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'project_name',
+ 'fieldAccessors' => [
+ 'getProjectName',
+ ],
+ ],
+ ],
+ ],
+ 'templateMap' => [
+ 'project' => 'projects/{project}',
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/resources/error_stats_service_rest_client_config.php b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/resources/error_stats_service_rest_client_config.php
new file mode 100644
index 000000000000..8b9bb159bcb1
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/resources/error_stats_service_rest_client_config.php
@@ -0,0 +1,45 @@
+ [
+ 'google.devtools.clouderrorreporting.v1beta1.ErrorStatsService' => [
+ 'DeleteEvents' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1beta1/{project_name=projects/*}/events',
+ 'placeholders' => [
+ 'project_name' => [
+ 'getters' => [
+ 'getProjectName',
+ ],
+ ],
+ ],
+ ],
+ 'ListEvents' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta1/{project_name=projects/*}/events',
+ 'placeholders' => [
+ 'project_name' => [
+ 'getters' => [
+ 'getProjectName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'group_id',
+ ],
+ ],
+ 'ListGroupStats' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1beta1/{project_name=projects/*}/groupStats',
+ 'placeholders' => [
+ 'project_name' => [
+ 'getters' => [
+ 'getProjectName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'numericEnums' => true,
+];
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/resources/report_errors_service_client_config.json b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/resources/report_errors_service_client_config.json
new file mode 100644
index 000000000000..701d5afb9615
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/resources/report_errors_service_client_config.json
@@ -0,0 +1,37 @@
+{
+ "interfaces": {
+ "google.devtools.clouderrorreporting.v1beta1.ReportErrorsService": {
+ "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": 600000,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 600000,
+ "total_timeout_millis": 600000
+ }
+ },
+ "methods": {
+ "ReportErrorEvent": {
+ "timeout_millis": 600000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ }
+ }
+ }
+ }
+}
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/resources/report_errors_service_descriptor_config.php b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/resources/report_errors_service_descriptor_config.php
new file mode 100644
index 000000000000..d95e271868e2
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/resources/report_errors_service_descriptor_config.php
@@ -0,0 +1,23 @@
+ [
+ 'google.devtools.clouderrorreporting.v1beta1.ReportErrorsService' => [
+ 'ReportErrorEvent' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ErrorReporting\V1beta1\ReportErrorEventResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'project_name',
+ 'fieldAccessors' => [
+ 'getProjectName',
+ ],
+ ],
+ ],
+ ],
+ 'templateMap' => [
+ 'project' => 'projects/{project}',
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/resources/report_errors_service_rest_client_config.php b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/resources/report_errors_service_rest_client_config.php
new file mode 100644
index 000000000000..c7565d89467b
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/src/V1beta1/resources/report_errors_service_rest_client_config.php
@@ -0,0 +1,21 @@
+ [
+ 'google.devtools.clouderrorreporting.v1beta1.ReportErrorsService' => [
+ 'ReportErrorEvent' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1beta1/{project_name=projects/*}/events:report',
+ 'body' => 'event',
+ 'placeholders' => [
+ 'project_name' => [
+ 'getters' => [
+ 'getProjectName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'numericEnums' => true,
+];
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/tests/Unit/V1beta1/Client/ErrorGroupServiceClientTest.php b/owl-bot-staging/ErrorReporting/v1beta1/tests/Unit/V1beta1/Client/ErrorGroupServiceClientTest.php
new file mode 100644
index 000000000000..100a41dab981
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/tests/Unit/V1beta1/Client/ErrorGroupServiceClientTest.php
@@ -0,0 +1,226 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return ErrorGroupServiceClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new ErrorGroupServiceClient($options);
+ }
+
+ /** @test */
+ public function getGroupTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $groupId = 'groupId506361563';
+ $expectedResponse = new ErrorGroup();
+ $expectedResponse->setName($name);
+ $expectedResponse->setGroupId($groupId);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedGroupName = $gapicClient->errorGroupName('[PROJECT]', '[GROUP]');
+ $request = (new GetGroupRequest())
+ ->setGroupName($formattedGroupName);
+ $response = $gapicClient->getGroup($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.clouderrorreporting.v1beta1.ErrorGroupService/GetGroup', $actualFuncCall);
+ $actualValue = $actualRequestObject->getGroupName();
+ $this->assertProtobufEquals($formattedGroupName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getGroupExceptionTest()
+ {
+ $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
+ $formattedGroupName = $gapicClient->errorGroupName('[PROJECT]', '[GROUP]');
+ $request = (new GetGroupRequest())
+ ->setGroupName($formattedGroupName);
+ try {
+ $gapicClient->getGroup($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 updateGroupTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $groupId = 'groupId506361563';
+ $expectedResponse = new ErrorGroup();
+ $expectedResponse->setName($name);
+ $expectedResponse->setGroupId($groupId);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $group = new ErrorGroup();
+ $request = (new UpdateGroupRequest())
+ ->setGroup($group);
+ $response = $gapicClient->updateGroup($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.clouderrorreporting.v1beta1.ErrorGroupService/UpdateGroup', $actualFuncCall);
+ $actualValue = $actualRequestObject->getGroup();
+ $this->assertProtobufEquals($group, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateGroupExceptionTest()
+ {
+ $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
+ $group = new ErrorGroup();
+ $request = (new UpdateGroupRequest())
+ ->setGroup($group);
+ try {
+ $gapicClient->updateGroup($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 getGroupAsyncTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $groupId = 'groupId506361563';
+ $expectedResponse = new ErrorGroup();
+ $expectedResponse->setName($name);
+ $expectedResponse->setGroupId($groupId);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedGroupName = $gapicClient->errorGroupName('[PROJECT]', '[GROUP]');
+ $request = (new GetGroupRequest())
+ ->setGroupName($formattedGroupName);
+ $response = $gapicClient->getGroupAsync($request)->wait();
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.clouderrorreporting.v1beta1.ErrorGroupService/GetGroup', $actualFuncCall);
+ $actualValue = $actualRequestObject->getGroupName();
+ $this->assertProtobufEquals($formattedGroupName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+}
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/tests/Unit/V1beta1/Client/ErrorStatsServiceClientTest.php b/owl-bot-staging/ErrorReporting/v1beta1/tests/Unit/V1beta1/Client/ErrorStatsServiceClientTest.php
new file mode 100644
index 000000000000..d99c4491f0f9
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/tests/Unit/V1beta1/Client/ErrorStatsServiceClientTest.php
@@ -0,0 +1,307 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return ErrorStatsServiceClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new ErrorStatsServiceClient($options);
+ }
+
+ /** @test */
+ public function deleteEventsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new DeleteEventsResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedProjectName = $gapicClient->projectName('[PROJECT]');
+ $request = (new DeleteEventsRequest())
+ ->setProjectName($formattedProjectName);
+ $response = $gapicClient->deleteEvents($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.clouderrorreporting.v1beta1.ErrorStatsService/DeleteEvents', $actualFuncCall);
+ $actualValue = $actualRequestObject->getProjectName();
+ $this->assertProtobufEquals($formattedProjectName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteEventsExceptionTest()
+ {
+ $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
+ $formattedProjectName = $gapicClient->projectName('[PROJECT]');
+ $request = (new DeleteEventsRequest())
+ ->setProjectName($formattedProjectName);
+ try {
+ $gapicClient->deleteEvents($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 listEventsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $errorEventsElement = new ErrorEvent();
+ $errorEvents = [
+ $errorEventsElement,
+ ];
+ $expectedResponse = new ListEventsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setErrorEvents($errorEvents);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedProjectName = $gapicClient->projectName('[PROJECT]');
+ $groupId = 'groupId506361563';
+ $request = (new ListEventsRequest())
+ ->setProjectName($formattedProjectName)
+ ->setGroupId($groupId);
+ $response = $gapicClient->listEvents($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getErrorEvents()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.clouderrorreporting.v1beta1.ErrorStatsService/ListEvents', $actualFuncCall);
+ $actualValue = $actualRequestObject->getProjectName();
+ $this->assertProtobufEquals($formattedProjectName, $actualValue);
+ $actualValue = $actualRequestObject->getGroupId();
+ $this->assertProtobufEquals($groupId, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listEventsExceptionTest()
+ {
+ $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
+ $formattedProjectName = $gapicClient->projectName('[PROJECT]');
+ $groupId = 'groupId506361563';
+ $request = (new ListEventsRequest())
+ ->setProjectName($formattedProjectName)
+ ->setGroupId($groupId);
+ try {
+ $gapicClient->listEvents($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 listGroupStatsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $errorGroupStatsElement = new ErrorGroupStats();
+ $errorGroupStats = [
+ $errorGroupStatsElement,
+ ];
+ $expectedResponse = new ListGroupStatsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setErrorGroupStats($errorGroupStats);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedProjectName = $gapicClient->projectName('[PROJECT]');
+ $request = (new ListGroupStatsRequest())
+ ->setProjectName($formattedProjectName);
+ $response = $gapicClient->listGroupStats($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getErrorGroupStats()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.clouderrorreporting.v1beta1.ErrorStatsService/ListGroupStats', $actualFuncCall);
+ $actualValue = $actualRequestObject->getProjectName();
+ $this->assertProtobufEquals($formattedProjectName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listGroupStatsExceptionTest()
+ {
+ $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
+ $formattedProjectName = $gapicClient->projectName('[PROJECT]');
+ $request = (new ListGroupStatsRequest())
+ ->setProjectName($formattedProjectName);
+ try {
+ $gapicClient->listGroupStats($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 deleteEventsAsyncTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new DeleteEventsResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedProjectName = $gapicClient->projectName('[PROJECT]');
+ $request = (new DeleteEventsRequest())
+ ->setProjectName($formattedProjectName);
+ $response = $gapicClient->deleteEventsAsync($request)->wait();
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.clouderrorreporting.v1beta1.ErrorStatsService/DeleteEvents', $actualFuncCall);
+ $actualValue = $actualRequestObject->getProjectName();
+ $this->assertProtobufEquals($formattedProjectName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+}
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/tests/Unit/V1beta1/Client/ReportErrorsServiceClientTest.php b/owl-bot-staging/ErrorReporting/v1beta1/tests/Unit/V1beta1/Client/ReportErrorsServiceClientTest.php
new file mode 100644
index 000000000000..be5d01d1b07a
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/tests/Unit/V1beta1/Client/ReportErrorsServiceClientTest.php
@@ -0,0 +1,175 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return ReportErrorsServiceClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new ReportErrorsServiceClient($options);
+ }
+
+ /** @test */
+ public function reportErrorEventTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new ReportErrorEventResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedProjectName = $gapicClient->projectName('[PROJECT]');
+ $event = new ReportedErrorEvent();
+ $eventServiceContext = new ServiceContext();
+ $event->setServiceContext($eventServiceContext);
+ $eventMessage = 'eventMessage1863181325';
+ $event->setMessage($eventMessage);
+ $request = (new ReportErrorEventRequest())
+ ->setProjectName($formattedProjectName)
+ ->setEvent($event);
+ $response = $gapicClient->reportErrorEvent($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.clouderrorreporting.v1beta1.ReportErrorsService/ReportErrorEvent', $actualFuncCall);
+ $actualValue = $actualRequestObject->getProjectName();
+ $this->assertProtobufEquals($formattedProjectName, $actualValue);
+ $actualValue = $actualRequestObject->getEvent();
+ $this->assertProtobufEquals($event, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function reportErrorEventExceptionTest()
+ {
+ $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
+ $formattedProjectName = $gapicClient->projectName('[PROJECT]');
+ $event = new ReportedErrorEvent();
+ $eventServiceContext = new ServiceContext();
+ $event->setServiceContext($eventServiceContext);
+ $eventMessage = 'eventMessage1863181325';
+ $event->setMessage($eventMessage);
+ $request = (new ReportErrorEventRequest())
+ ->setProjectName($formattedProjectName)
+ ->setEvent($event);
+ try {
+ $gapicClient->reportErrorEvent($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 reportErrorEventAsyncTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new ReportErrorEventResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedProjectName = $gapicClient->projectName('[PROJECT]');
+ $event = new ReportedErrorEvent();
+ $eventServiceContext = new ServiceContext();
+ $event->setServiceContext($eventServiceContext);
+ $eventMessage = 'eventMessage1863181325';
+ $event->setMessage($eventMessage);
+ $request = (new ReportErrorEventRequest())
+ ->setProjectName($formattedProjectName)
+ ->setEvent($event);
+ $response = $gapicClient->reportErrorEventAsync($request)->wait();
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.clouderrorreporting.v1beta1.ReportErrorsService/ReportErrorEvent', $actualFuncCall);
+ $actualValue = $actualRequestObject->getProjectName();
+ $this->assertProtobufEquals($formattedProjectName, $actualValue);
+ $actualValue = $actualRequestObject->getEvent();
+ $this->assertProtobufEquals($event, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+}
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/tests/Unit/V1beta1/ErrorGroupServiceClientTest.php b/owl-bot-staging/ErrorReporting/v1beta1/tests/Unit/V1beta1/ErrorGroupServiceClientTest.php
new file mode 100644
index 000000000000..9df60a549c5e
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/tests/Unit/V1beta1/ErrorGroupServiceClientTest.php
@@ -0,0 +1,185 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return ErrorGroupServiceClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new ErrorGroupServiceClient($options);
+ }
+
+ /** @test */
+ public function getGroupTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $groupId = 'groupId506361563';
+ $expectedResponse = new ErrorGroup();
+ $expectedResponse->setName($name);
+ $expectedResponse->setGroupId($groupId);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedGroupName = $gapicClient->errorGroupName('[PROJECT]', '[GROUP]');
+ $response = $gapicClient->getGroup($formattedGroupName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.clouderrorreporting.v1beta1.ErrorGroupService/GetGroup', $actualFuncCall);
+ $actualValue = $actualRequestObject->getGroupName();
+ $this->assertProtobufEquals($formattedGroupName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getGroupExceptionTest()
+ {
+ $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
+ $formattedGroupName = $gapicClient->errorGroupName('[PROJECT]', '[GROUP]');
+ try {
+ $gapicClient->getGroup($formattedGroupName);
+ // 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 updateGroupTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $groupId = 'groupId506361563';
+ $expectedResponse = new ErrorGroup();
+ $expectedResponse->setName($name);
+ $expectedResponse->setGroupId($groupId);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $group = new ErrorGroup();
+ $response = $gapicClient->updateGroup($group);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.clouderrorreporting.v1beta1.ErrorGroupService/UpdateGroup', $actualFuncCall);
+ $actualValue = $actualRequestObject->getGroup();
+ $this->assertProtobufEquals($group, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateGroupExceptionTest()
+ {
+ $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
+ $group = new ErrorGroup();
+ try {
+ $gapicClient->updateGroup($group);
+ // 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());
+ }
+}
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/tests/Unit/V1beta1/ErrorStatsServiceClientTest.php b/owl-bot-staging/ErrorReporting/v1beta1/tests/Unit/V1beta1/ErrorStatsServiceClientTest.php
new file mode 100644
index 000000000000..4fd50e022e43
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/tests/Unit/V1beta1/ErrorStatsServiceClientTest.php
@@ -0,0 +1,263 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return ErrorStatsServiceClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new ErrorStatsServiceClient($options);
+ }
+
+ /** @test */
+ public function deleteEventsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new DeleteEventsResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedProjectName = $gapicClient->projectName('[PROJECT]');
+ $response = $gapicClient->deleteEvents($formattedProjectName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.clouderrorreporting.v1beta1.ErrorStatsService/DeleteEvents', $actualFuncCall);
+ $actualValue = $actualRequestObject->getProjectName();
+ $this->assertProtobufEquals($formattedProjectName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteEventsExceptionTest()
+ {
+ $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
+ $formattedProjectName = $gapicClient->projectName('[PROJECT]');
+ try {
+ $gapicClient->deleteEvents($formattedProjectName);
+ // 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 listEventsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $errorEventsElement = new ErrorEvent();
+ $errorEvents = [
+ $errorEventsElement,
+ ];
+ $expectedResponse = new ListEventsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setErrorEvents($errorEvents);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedProjectName = $gapicClient->projectName('[PROJECT]');
+ $groupId = 'groupId506361563';
+ $response = $gapicClient->listEvents($formattedProjectName, $groupId);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getErrorEvents()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.clouderrorreporting.v1beta1.ErrorStatsService/ListEvents', $actualFuncCall);
+ $actualValue = $actualRequestObject->getProjectName();
+ $this->assertProtobufEquals($formattedProjectName, $actualValue);
+ $actualValue = $actualRequestObject->getGroupId();
+ $this->assertProtobufEquals($groupId, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listEventsExceptionTest()
+ {
+ $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
+ $formattedProjectName = $gapicClient->projectName('[PROJECT]');
+ $groupId = 'groupId506361563';
+ try {
+ $gapicClient->listEvents($formattedProjectName, $groupId);
+ // 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 listGroupStatsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $errorGroupStatsElement = new ErrorGroupStats();
+ $errorGroupStats = [
+ $errorGroupStatsElement,
+ ];
+ $expectedResponse = new ListGroupStatsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setErrorGroupStats($errorGroupStats);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedProjectName = $gapicClient->projectName('[PROJECT]');
+ $response = $gapicClient->listGroupStats($formattedProjectName);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getErrorGroupStats()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.clouderrorreporting.v1beta1.ErrorStatsService/ListGroupStats', $actualFuncCall);
+ $actualValue = $actualRequestObject->getProjectName();
+ $this->assertProtobufEquals($formattedProjectName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listGroupStatsExceptionTest()
+ {
+ $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
+ $formattedProjectName = $gapicClient->projectName('[PROJECT]');
+ try {
+ $gapicClient->listGroupStats($formattedProjectName);
+ // 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());
+ }
+}
diff --git a/owl-bot-staging/ErrorReporting/v1beta1/tests/Unit/V1beta1/ReportErrorsServiceClientTest.php b/owl-bot-staging/ErrorReporting/v1beta1/tests/Unit/V1beta1/ReportErrorsServiceClientTest.php
new file mode 100644
index 000000000000..8b8a666af77d
--- /dev/null
+++ b/owl-bot-staging/ErrorReporting/v1beta1/tests/Unit/V1beta1/ReportErrorsServiceClientTest.php
@@ -0,0 +1,133 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return ReportErrorsServiceClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new ReportErrorsServiceClient($options);
+ }
+
+ /** @test */
+ public function reportErrorEventTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new ReportErrorEventResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedProjectName = $gapicClient->projectName('[PROJECT]');
+ $event = new ReportedErrorEvent();
+ $eventServiceContext = new ServiceContext();
+ $event->setServiceContext($eventServiceContext);
+ $eventMessage = 'eventMessage1863181325';
+ $event->setMessage($eventMessage);
+ $response = $gapicClient->reportErrorEvent($formattedProjectName, $event);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.clouderrorreporting.v1beta1.ReportErrorsService/ReportErrorEvent', $actualFuncCall);
+ $actualValue = $actualRequestObject->getProjectName();
+ $this->assertProtobufEquals($formattedProjectName, $actualValue);
+ $actualValue = $actualRequestObject->getEvent();
+ $this->assertProtobufEquals($event, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function reportErrorEventExceptionTest()
+ {
+ $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
+ $formattedProjectName = $gapicClient->projectName('[PROJECT]');
+ $event = new ReportedErrorEvent();
+ $eventServiceContext = new ServiceContext();
+ $event->setServiceContext($eventServiceContext);
+ $eventMessage = 'eventMessage1863181325';
+ $event->setMessage($eventMessage);
+ try {
+ $gapicClient->reportErrorEvent($formattedProjectName, $event);
+ // 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());
+ }
+}
diff --git a/owl-bot-staging/EssentialContacts/v1/proto/src/GPBMetadata/Google/Cloud/Essentialcontacts/V1/Enums.php b/owl-bot-staging/EssentialContacts/v1/proto/src/GPBMetadata/Google/Cloud/Essentialcontacts/V1/Enums.php
new file mode 100644
index 000000000000..c48076205818
Binary files /dev/null and b/owl-bot-staging/EssentialContacts/v1/proto/src/GPBMetadata/Google/Cloud/Essentialcontacts/V1/Enums.php differ
diff --git a/owl-bot-staging/EssentialContacts/v1/proto/src/GPBMetadata/Google/Cloud/Essentialcontacts/V1/Service.php b/owl-bot-staging/EssentialContacts/v1/proto/src/GPBMetadata/Google/Cloud/Essentialcontacts/V1/Service.php
new file mode 100644
index 000000000000..1b912e16b8da
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/proto/src/GPBMetadata/Google/Cloud/Essentialcontacts/V1/Service.php
@@ -0,0 +1,86 @@
+internalAddGeneratedFile(
+ '
+"
+/google/cloud/essentialcontacts/v1/service.proto!google.cloud.essentialcontacts.v1google/api/client.protogoogle/api/field_behavior.protogoogle/api/resource.proto-google/cloud/essentialcontacts/v1/enums.protogoogle/protobuf/empty.proto google/protobuf/field_mask.protogoogle/protobuf/timestamp.proto"Ñ
+Contact
+name (
+email ( d
+#notification_category_subscriptions (27.google.cloud.essentialcontacts.v1.NotificationCategory
+language_tag ( L
+validation_state (22.google.cloud.essentialcontacts.v1.ValidationState1
+
validate_time (2.google.protobuf.Timestamp:«êA§
+(essentialcontacts.googleapis.com/Contact%projects/{project}/contacts/{contact}#folders/{folder}/contacts/{contact}/organizations/{organization}/contacts/{contact}"ˆ
+ListContactsRequest@
+parent ( B0àAúA*(essentialcontacts.googleapis.com/Contact
+ page_size (BàA
+
+page_token ( BàA"m
+ListContactsResponse<
+contacts (2*.google.cloud.essentialcontacts.v1.Contact
+next_page_token ( "S
+GetContactRequest>
+name ( B0àAúA*
+(essentialcontacts.googleapis.com/Contact"V
+DeleteContactRequest>
+name ( B0àAúA*
+(essentialcontacts.googleapis.com/Contact"š
+CreateContactRequest@
+parent ( B0àAúA*(essentialcontacts.googleapis.com/Contact@
+contact (2*.google.cloud.essentialcontacts.v1.ContactBàA"Ž
+UpdateContactRequest@
+contact (2*.google.cloud.essentialcontacts.v1.ContactBàA4
+update_mask (2.google.protobuf.FieldMaskBàA"å
+ComputeContactsRequest@
+parent ( B0àAúA*(essentialcontacts.googleapis.com/ContactX
+notification_categories (27.google.cloud.essentialcontacts.v1.NotificationCategory
+ page_size (BàA
+
+page_token ( BàA"p
+ComputeContactsResponse<
+contacts (2*.google.cloud.essentialcontacts.v1.Contact
+next_page_token ( "ý
+SendTestMessageRequestB
+contacts ( B0àAúA*
+(essentialcontacts.googleapis.com/ContactB
+resource ( B0àAúA*(essentialcontacts.googleapis.com/Contact[
+notification_category (27.google.cloud.essentialcontacts.v1.NotificationCategoryBàA2Ë
+EssentialContactsService˜
+
CreateContact7.google.cloud.essentialcontacts.v1.CreateContactRequest*.google.cloud.essentialcontacts.v1.Contact"¡‚Ó䓉" /v1/{parent=projects/*}/contacts:contactZ*"/v1/{parent=folders/*}/contacts:contactZ0"%/v1/{parent=organizations/*}/contacts:contactÚAparent,contactµ
+
UpdateContact7.google.cloud.essentialcontacts.v1.UpdateContactRequest*.google.cloud.essentialcontacts.v1.Contact"¾‚Óä“¡2(/v1/{contact.name=projects/*/contacts/*}:contactZ22\'/v1/{contact.name=folders/*/contacts/*}:contactZ82-/v1/{contact.name=organizations/*/contacts/*}:contactÚAcontact,update_maskþ
+ListContacts6.google.cloud.essentialcontacts.v1.ListContactsRequest7.google.cloud.essentialcontacts.v1.ListContactsResponse"}‚Óä“n /v1/{parent=projects/*}/contactsZ!/v1/{parent=folders/*}/contactsZ\'%/v1/{parent=organizations/*}/contactsÚAparentë
+
+GetContact4.google.cloud.essentialcontacts.v1.GetContactRequest*.google.cloud.essentialcontacts.v1.Contact"{‚Óä“n /v1/{name=projects/*/contacts/*}Z!/v1/{name=folders/*/contacts/*}Z\'%/v1/{name=organizations/*/contacts/*}ÚAnameÝ
+
DeleteContact7.google.cloud.essentialcontacts.v1.DeleteContactRequest.google.protobuf.Empty"{‚Óä“n* /v1/{name=projects/*/contacts/*}Z!*/v1/{name=folders/*/contacts/*}Z\'*%/v1/{name=organizations/*/contacts/*}ÚAname˜
+ComputeContacts9.google.cloud.essentialcontacts.v1.ComputeContactsRequest:.google.cloud.essentialcontacts.v1.ComputeContactsResponse"‚Ó䓆(/v1/{parent=projects/*}/contacts:computeZ)\'/v1/{parent=folders/*}/contacts:computeZ/-/v1/{parent=organizations/*}/contacts:compute›
+SendTestMessage9.google.cloud.essentialcontacts.v1.SendTestMessageRequest.google.protobuf.Empty"´‚Óä“"2/v1/{resource=projects/*}/contacts:sendTestMessage:*Z6"1/v1/{resource=folders/*}/contacts:sendTestMessage:*Z<"7/v1/{resource=organizations/*}/contacts:sendTestMessage:*TÊA essentialcontacts.googleapis.comÒA.https://www.googleapis.com/auth/cloud-platformBí
+%com.google.cloud.essentialcontacts.v1PZScloud.google.com/go/essentialcontacts/apiv1/essentialcontactspb;essentialcontactspbª!Google.Cloud.EssentialContacts.V1Ê!Google\\Cloud\\EssentialContacts\\V1ê$Google::Cloud::EssentialContacts::V1bproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/ComputeContactsRequest.php b/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/ComputeContactsRequest.php
new file mode 100644
index 000000000000..a00eed430a0d
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/ComputeContactsRequest.php
@@ -0,0 +1,209 @@
+google.cloud.essentialcontacts.v1.ComputeContactsRequest
+ */
+class ComputeContactsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the resource to compute contacts for.
+ * Format: organizations/{organization_id},
+ * folders/{folder_id} or projects/{project_id}
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * The categories of notifications to compute contacts for. If ALL is included
+ * in this list, contacts subscribed to any notification category will be
+ * returned.
+ *
+ * Generated from protobuf field repeated .google.cloud.essentialcontacts.v1.NotificationCategory notification_categories = 6;
+ */
+ private $notification_categories;
+ /**
+ * Optional. The maximum number of results to return from this request.
+ * Non-positive values are ignored. The presence of `next_page_token` in the
+ * response indicates that more results might be available.
+ * If not specified, the default page_size is 100.
+ *
+ * Generated from protobuf field int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. If present, retrieves the next batch of results from the
+ * preceding call to this method. `page_token` must be the value of
+ * `next_page_token` from the previous response. The values of other method
+ * parameters should be identical to those in the previous call.
+ *
+ * Generated from protobuf field string page_token = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The name of the resource to compute contacts for.
+ * Format: organizations/{organization_id},
+ * folders/{folder_id} or projects/{project_id}
+ * @type array|\Google\Protobuf\Internal\RepeatedField $notification_categories
+ * The categories of notifications to compute contacts for. If ALL is included
+ * in this list, contacts subscribed to any notification category will be
+ * returned.
+ * @type int $page_size
+ * Optional. The maximum number of results to return from this request.
+ * Non-positive values are ignored. The presence of `next_page_token` in the
+ * response indicates that more results might be available.
+ * If not specified, the default page_size is 100.
+ * @type string $page_token
+ * Optional. If present, retrieves the next batch of results from the
+ * preceding call to this method. `page_token` must be the value of
+ * `next_page_token` from the previous response. The values of other method
+ * parameters should be identical to those in the previous call.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Essentialcontacts\V1\Service::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the resource to compute contacts for.
+ * Format: organizations/{organization_id},
+ * folders/{folder_id} or projects/{project_id}
+ *
+ * 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 name of the resource to compute contacts for.
+ * Format: organizations/{organization_id},
+ * folders/{folder_id} or projects/{project_id}
+ *
+ * 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 categories of notifications to compute contacts for. If ALL is included
+ * in this list, contacts subscribed to any notification category will be
+ * returned.
+ *
+ * Generated from protobuf field repeated .google.cloud.essentialcontacts.v1.NotificationCategory notification_categories = 6;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getNotificationCategories()
+ {
+ return $this->notification_categories;
+ }
+
+ /**
+ * The categories of notifications to compute contacts for. If ALL is included
+ * in this list, contacts subscribed to any notification category will be
+ * returned.
+ *
+ * Generated from protobuf field repeated .google.cloud.essentialcontacts.v1.NotificationCategory notification_categories = 6;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setNotificationCategories($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::ENUM, \Google\Cloud\EssentialContacts\V1\NotificationCategory::class);
+ $this->notification_categories = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The maximum number of results to return from this request.
+ * Non-positive values are ignored. The presence of `next_page_token` in the
+ * response indicates that more results might be available.
+ * If not specified, the default page_size is 100.
+ *
+ * Generated from protobuf field int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Optional. The maximum number of results to return from this request.
+ * Non-positive values are ignored. The presence of `next_page_token` in the
+ * response indicates that more results might be available.
+ * If not specified, the default page_size is 100.
+ *
+ * Generated from protobuf field int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. If present, retrieves the next batch of results from the
+ * preceding call to this method. `page_token` must be the value of
+ * `next_page_token` from the previous response. The values of other method
+ * parameters should be identical to those in the previous call.
+ *
+ * Generated from protobuf field string page_token = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Optional. If present, retrieves the next batch of results from the
+ * preceding call to this method. `page_token` must be the value of
+ * `next_page_token` from the previous response. The values of other method
+ * parameters should be identical to those in the previous call.
+ *
+ * Generated from protobuf field string page_token = 4 [(.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/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/ComputeContactsResponse.php b/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/ComputeContactsResponse.php
new file mode 100644
index 000000000000..3bd97e666fdd
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/ComputeContactsResponse.php
@@ -0,0 +1,121 @@
+google.cloud.essentialcontacts.v1.ComputeContactsResponse
+ */
+class ComputeContactsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * All contacts for the resource that are subscribed to the specified
+ * notification categories, including contacts inherited from any parent
+ * resources.
+ *
+ * Generated from protobuf field repeated .google.cloud.essentialcontacts.v1.Contact contacts = 1;
+ */
+ private $contacts;
+ /**
+ * If there are more results than those appearing in this response, then
+ * `next_page_token` is included. To get the next set of results, call this
+ * method again using the value of `next_page_token` as `page_token` and the
+ * rest of the parameters the same as the original request.
+ *
+ * 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\EssentialContacts\V1\Contact>|\Google\Protobuf\Internal\RepeatedField $contacts
+ * All contacts for the resource that are subscribed to the specified
+ * notification categories, including contacts inherited from any parent
+ * resources.
+ * @type string $next_page_token
+ * If there are more results than those appearing in this response, then
+ * `next_page_token` is included. To get the next set of results, call this
+ * method again using the value of `next_page_token` as `page_token` and the
+ * rest of the parameters the same as the original request.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Essentialcontacts\V1\Service::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * All contacts for the resource that are subscribed to the specified
+ * notification categories, including contacts inherited from any parent
+ * resources.
+ *
+ * Generated from protobuf field repeated .google.cloud.essentialcontacts.v1.Contact contacts = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getContacts()
+ {
+ return $this->contacts;
+ }
+
+ /**
+ * All contacts for the resource that are subscribed to the specified
+ * notification categories, including contacts inherited from any parent
+ * resources.
+ *
+ * Generated from protobuf field repeated .google.cloud.essentialcontacts.v1.Contact contacts = 1;
+ * @param array<\Google\Cloud\EssentialContacts\V1\Contact>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setContacts($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\EssentialContacts\V1\Contact::class);
+ $this->contacts = $arr;
+
+ return $this;
+ }
+
+ /**
+ * If there are more results than those appearing in this response, then
+ * `next_page_token` is included. To get the next set of results, call this
+ * method again using the value of `next_page_token` as `page_token` and the
+ * rest of the parameters the same as the original request.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * If there are more results than those appearing in this response, then
+ * `next_page_token` is included. To get the next set of results, call this
+ * method again using the value of `next_page_token` as `page_token` and the
+ * rest of the parameters the same as the original request.
+ *
+ * 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/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/Contact.php b/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/Contact.php
new file mode 100644
index 000000000000..895ee5d8e570
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/Contact.php
@@ -0,0 +1,283 @@
+google.cloud.essentialcontacts.v1.Contact
+ */
+class Contact extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The identifier for the contact.
+ * Format: {resource_type}/{resource_id}/contacts/{contact_id}
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * Required. The email address to send notifications to. This does not need to
+ * be a Google account.
+ *
+ * Generated from protobuf field string email = 2;
+ */
+ protected $email = '';
+ /**
+ * The categories of notifications that the contact will receive
+ * communications for.
+ *
+ * Generated from protobuf field repeated .google.cloud.essentialcontacts.v1.NotificationCategory notification_category_subscriptions = 3;
+ */
+ private $notification_category_subscriptions;
+ /**
+ * The preferred language for notifications, as a ISO 639-1 language code. See
+ * [Supported
+ * languages](https://cloud.google.com/resource-manager/docs/managing-notification-contacts#supported-languages)
+ * for a list of supported languages.
+ *
+ * Generated from protobuf field string language_tag = 4;
+ */
+ protected $language_tag = '';
+ /**
+ * The validity of the contact. A contact is considered valid if it is the
+ * correct recipient for notifications for a particular resource.
+ *
+ * Generated from protobuf field .google.cloud.essentialcontacts.v1.ValidationState validation_state = 8;
+ */
+ protected $validation_state = 0;
+ /**
+ * The last time the validation_state was updated, either manually or
+ * automatically. A contact is considered stale if its validation state was
+ * updated more than 1 year ago.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp validate_time = 9;
+ */
+ protected $validate_time = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The identifier for the contact.
+ * Format: {resource_type}/{resource_id}/contacts/{contact_id}
+ * @type string $email
+ * Required. The email address to send notifications to. This does not need to
+ * be a Google account.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $notification_category_subscriptions
+ * The categories of notifications that the contact will receive
+ * communications for.
+ * @type string $language_tag
+ * The preferred language for notifications, as a ISO 639-1 language code. See
+ * [Supported
+ * languages](https://cloud.google.com/resource-manager/docs/managing-notification-contacts#supported-languages)
+ * for a list of supported languages.
+ * @type int $validation_state
+ * The validity of the contact. A contact is considered valid if it is the
+ * correct recipient for notifications for a particular resource.
+ * @type \Google\Protobuf\Timestamp $validate_time
+ * The last time the validation_state was updated, either manually or
+ * automatically. A contact is considered stale if its validation state was
+ * updated more than 1 year ago.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Essentialcontacts\V1\Service::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The identifier for the contact.
+ * Format: {resource_type}/{resource_id}/contacts/{contact_id}
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The identifier for the contact.
+ * Format: {resource_type}/{resource_id}/contacts/{contact_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;
+ }
+
+ /**
+ * Required. The email address to send notifications to. This does not need to
+ * be a Google account.
+ *
+ * Generated from protobuf field string email = 2;
+ * @return string
+ */
+ public function getEmail()
+ {
+ return $this->email;
+ }
+
+ /**
+ * Required. The email address to send notifications to. This does not need to
+ * be a Google account.
+ *
+ * Generated from protobuf field string email = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setEmail($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->email = $var;
+
+ return $this;
+ }
+
+ /**
+ * The categories of notifications that the contact will receive
+ * communications for.
+ *
+ * Generated from protobuf field repeated .google.cloud.essentialcontacts.v1.NotificationCategory notification_category_subscriptions = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getNotificationCategorySubscriptions()
+ {
+ return $this->notification_category_subscriptions;
+ }
+
+ /**
+ * The categories of notifications that the contact will receive
+ * communications for.
+ *
+ * Generated from protobuf field repeated .google.cloud.essentialcontacts.v1.NotificationCategory notification_category_subscriptions = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setNotificationCategorySubscriptions($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::ENUM, \Google\Cloud\EssentialContacts\V1\NotificationCategory::class);
+ $this->notification_category_subscriptions = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The preferred language for notifications, as a ISO 639-1 language code. See
+ * [Supported
+ * languages](https://cloud.google.com/resource-manager/docs/managing-notification-contacts#supported-languages)
+ * for a list of supported languages.
+ *
+ * Generated from protobuf field string language_tag = 4;
+ * @return string
+ */
+ public function getLanguageTag()
+ {
+ return $this->language_tag;
+ }
+
+ /**
+ * The preferred language for notifications, as a ISO 639-1 language code. See
+ * [Supported
+ * languages](https://cloud.google.com/resource-manager/docs/managing-notification-contacts#supported-languages)
+ * for a list of supported languages.
+ *
+ * Generated from protobuf field string language_tag = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setLanguageTag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->language_tag = $var;
+
+ return $this;
+ }
+
+ /**
+ * The validity of the contact. A contact is considered valid if it is the
+ * correct recipient for notifications for a particular resource.
+ *
+ * Generated from protobuf field .google.cloud.essentialcontacts.v1.ValidationState validation_state = 8;
+ * @return int
+ */
+ public function getValidationState()
+ {
+ return $this->validation_state;
+ }
+
+ /**
+ * The validity of the contact. A contact is considered valid if it is the
+ * correct recipient for notifications for a particular resource.
+ *
+ * Generated from protobuf field .google.cloud.essentialcontacts.v1.ValidationState validation_state = 8;
+ * @param int $var
+ * @return $this
+ */
+ public function setValidationState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\EssentialContacts\V1\ValidationState::class);
+ $this->validation_state = $var;
+
+ return $this;
+ }
+
+ /**
+ * The last time the validation_state was updated, either manually or
+ * automatically. A contact is considered stale if its validation state was
+ * updated more than 1 year ago.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp validate_time = 9;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getValidateTime()
+ {
+ return $this->validate_time;
+ }
+
+ public function hasValidateTime()
+ {
+ return isset($this->validate_time);
+ }
+
+ public function clearValidateTime()
+ {
+ unset($this->validate_time);
+ }
+
+ /**
+ * The last time the validation_state was updated, either manually or
+ * automatically. A contact is considered stale if its validation state was
+ * updated more than 1 year ago.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp validate_time = 9;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setValidateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->validate_time = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/CreateContactRequest.php b/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/CreateContactRequest.php
new file mode 100644
index 000000000000..aa04a1644f45
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/CreateContactRequest.php
@@ -0,0 +1,142 @@
+google.cloud.essentialcontacts.v1.CreateContactRequest
+ */
+class CreateContactRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The resource to save this contact for.
+ * Format: organizations/{organization_id}, folders/{folder_id} or
+ * projects/{project_id}
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The contact to create. Must specify an email address and language
+ * tag.
+ *
+ * Generated from protobuf field .google.cloud.essentialcontacts.v1.Contact contact = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $contact = null;
+
+ /**
+ * @param string $parent Required. The resource to save this contact for.
+ * Format: organizations/{organization_id}, folders/{folder_id} or
+ * projects/{project_id}
+ * Please see {@see EssentialContactsServiceClient::projectName()} for help formatting this field.
+ * @param \Google\Cloud\EssentialContacts\V1\Contact $contact Required. The contact to create. Must specify an email address and language
+ * tag.
+ *
+ * @return \Google\Cloud\EssentialContacts\V1\CreateContactRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\EssentialContacts\V1\Contact $contact): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setContact($contact);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The resource to save this contact for.
+ * Format: organizations/{organization_id}, folders/{folder_id} or
+ * projects/{project_id}
+ * @type \Google\Cloud\EssentialContacts\V1\Contact $contact
+ * Required. The contact to create. Must specify an email address and language
+ * tag.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Essentialcontacts\V1\Service::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The resource to save this contact for.
+ * Format: organizations/{organization_id}, folders/{folder_id} or
+ * projects/{project_id}
+ *
+ * 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 to save this contact for.
+ * Format: organizations/{organization_id}, folders/{folder_id} or
+ * projects/{project_id}
+ *
+ * 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 contact to create. Must specify an email address and language
+ * tag.
+ *
+ * Generated from protobuf field .google.cloud.essentialcontacts.v1.Contact contact = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\EssentialContacts\V1\Contact|null
+ */
+ public function getContact()
+ {
+ return $this->contact;
+ }
+
+ public function hasContact()
+ {
+ return isset($this->contact);
+ }
+
+ public function clearContact()
+ {
+ unset($this->contact);
+ }
+
+ /**
+ * Required. The contact to create. Must specify an email address and language
+ * tag.
+ *
+ * Generated from protobuf field .google.cloud.essentialcontacts.v1.Contact contact = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\EssentialContacts\V1\Contact $var
+ * @return $this
+ */
+ public function setContact($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\EssentialContacts\V1\Contact::class);
+ $this->contact = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/DeleteContactRequest.php b/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/DeleteContactRequest.php
new file mode 100644
index 000000000000..f07753c9588d
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/DeleteContactRequest.php
@@ -0,0 +1,96 @@
+google.cloud.essentialcontacts.v1.DeleteContactRequest
+ */
+class DeleteContactRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the contact to delete.
+ * Format: organizations/{organization_id}/contacts/{contact_id},
+ * folders/{folder_id}/contacts/{contact_id} or
+ * projects/{project_id}/contacts/{contact_id}
+ *
+ * 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 contact to delete.
+ * Format: organizations/{organization_id}/contacts/{contact_id},
+ * folders/{folder_id}/contacts/{contact_id} or
+ * projects/{project_id}/contacts/{contact_id}
+ * Please see {@see EssentialContactsServiceClient::contactName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\EssentialContacts\V1\DeleteContactRequest
+ *
+ * @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 contact to delete.
+ * Format: organizations/{organization_id}/contacts/{contact_id},
+ * folders/{folder_id}/contacts/{contact_id} or
+ * projects/{project_id}/contacts/{contact_id}
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Essentialcontacts\V1\Service::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the contact to delete.
+ * Format: organizations/{organization_id}/contacts/{contact_id},
+ * folders/{folder_id}/contacts/{contact_id} or
+ * projects/{project_id}/contacts/{contact_id}
+ *
+ * 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 contact to delete.
+ * Format: organizations/{organization_id}/contacts/{contact_id},
+ * folders/{folder_id}/contacts/{contact_id} or
+ * projects/{project_id}/contacts/{contact_id}
+ *
+ * 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/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/EssentialContactsServiceGrpcClient.php b/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/EssentialContactsServiceGrpcClient.php
new file mode 100644
index 000000000000..9f4d2da086dc
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/EssentialContactsServiceGrpcClient.php
@@ -0,0 +1,144 @@
+_simpleRequest('/google.cloud.essentialcontacts.v1.EssentialContactsService/CreateContact',
+ $argument,
+ ['\Google\Cloud\EssentialContacts\V1\Contact', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Updates a contact.
+ * Note: A contact's email address cannot be changed.
+ * @param \Google\Cloud\EssentialContacts\V1\UpdateContactRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function UpdateContact(\Google\Cloud\EssentialContacts\V1\UpdateContactRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.essentialcontacts.v1.EssentialContactsService/UpdateContact',
+ $argument,
+ ['\Google\Cloud\EssentialContacts\V1\Contact', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Lists the contacts that have been set on a resource.
+ * @param \Google\Cloud\EssentialContacts\V1\ListContactsRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ListContacts(\Google\Cloud\EssentialContacts\V1\ListContactsRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.essentialcontacts.v1.EssentialContactsService/ListContacts',
+ $argument,
+ ['\Google\Cloud\EssentialContacts\V1\ListContactsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Gets a single contact.
+ * @param \Google\Cloud\EssentialContacts\V1\GetContactRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function GetContact(\Google\Cloud\EssentialContacts\V1\GetContactRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.essentialcontacts.v1.EssentialContactsService/GetContact',
+ $argument,
+ ['\Google\Cloud\EssentialContacts\V1\Contact', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Deletes a contact.
+ * @param \Google\Cloud\EssentialContacts\V1\DeleteContactRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function DeleteContact(\Google\Cloud\EssentialContacts\V1\DeleteContactRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.essentialcontacts.v1.EssentialContactsService/DeleteContact',
+ $argument,
+ ['\Google\Protobuf\GPBEmpty', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Lists all contacts for the resource that are subscribed to the
+ * specified notification categories, including contacts inherited from
+ * any parent resources.
+ * @param \Google\Cloud\EssentialContacts\V1\ComputeContactsRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function ComputeContacts(\Google\Cloud\EssentialContacts\V1\ComputeContactsRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.essentialcontacts.v1.EssentialContactsService/ComputeContacts',
+ $argument,
+ ['\Google\Cloud\EssentialContacts\V1\ComputeContactsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Allows a contact admin to send a test message to contact to verify that it
+ * has been configured correctly.
+ * @param \Google\Cloud\EssentialContacts\V1\SendTestMessageRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function SendTestMessage(\Google\Cloud\EssentialContacts\V1\SendTestMessageRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.essentialcontacts.v1.EssentialContactsService/SendTestMessage',
+ $argument,
+ ['\Google\Protobuf\GPBEmpty', 'decode'],
+ $metadata, $options);
+ }
+
+}
diff --git a/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/GetContactRequest.php b/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/GetContactRequest.php
new file mode 100644
index 000000000000..dbdbff500ad2
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/GetContactRequest.php
@@ -0,0 +1,96 @@
+google.cloud.essentialcontacts.v1.GetContactRequest
+ */
+class GetContactRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the contact to retrieve.
+ * Format: organizations/{organization_id}/contacts/{contact_id},
+ * folders/{folder_id}/contacts/{contact_id} or
+ * projects/{project_id}/contacts/{contact_id}
+ *
+ * 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 contact to retrieve.
+ * Format: organizations/{organization_id}/contacts/{contact_id},
+ * folders/{folder_id}/contacts/{contact_id} or
+ * projects/{project_id}/contacts/{contact_id}
+ * Please see {@see EssentialContactsServiceClient::contactName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\EssentialContacts\V1\GetContactRequest
+ *
+ * @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 contact to retrieve.
+ * Format: organizations/{organization_id}/contacts/{contact_id},
+ * folders/{folder_id}/contacts/{contact_id} or
+ * projects/{project_id}/contacts/{contact_id}
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Essentialcontacts\V1\Service::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the contact to retrieve.
+ * Format: organizations/{organization_id}/contacts/{contact_id},
+ * folders/{folder_id}/contacts/{contact_id} or
+ * projects/{project_id}/contacts/{contact_id}
+ *
+ * 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 contact to retrieve.
+ * Format: organizations/{organization_id}/contacts/{contact_id},
+ * folders/{folder_id}/contacts/{contact_id} or
+ * projects/{project_id}/contacts/{contact_id}
+ *
+ * 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/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/ListContactsRequest.php b/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/ListContactsRequest.php
new file mode 100644
index 000000000000..4cb6c56e7bb4
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/ListContactsRequest.php
@@ -0,0 +1,183 @@
+google.cloud.essentialcontacts.v1.ListContactsRequest
+ */
+class ListContactsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The parent resource name.
+ * Format: organizations/{organization_id}, folders/{folder_id} or
+ * projects/{project_id}
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. The maximum number of results to return from this request.
+ * Non-positive values are ignored. The presence of `next_page_token` in the
+ * response indicates that more results might be available.
+ * If not specified, the default page_size is 100.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. If present, retrieves the next batch of results from the
+ * preceding call to this method. `page_token` must be the value of
+ * `next_page_token` from the previous response. The values of other method
+ * parameters should be identical to those in the previous call.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_token = '';
+
+ /**
+ * @param string $parent Required. The parent resource name.
+ * Format: organizations/{organization_id}, folders/{folder_id} or
+ * projects/{project_id}
+ * Please see {@see EssentialContactsServiceClient::projectName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\EssentialContacts\V1\ListContactsRequest
+ *
+ * @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 resource name.
+ * Format: organizations/{organization_id}, folders/{folder_id} or
+ * projects/{project_id}
+ * @type int $page_size
+ * Optional. The maximum number of results to return from this request.
+ * Non-positive values are ignored. The presence of `next_page_token` in the
+ * response indicates that more results might be available.
+ * If not specified, the default page_size is 100.
+ * @type string $page_token
+ * Optional. If present, retrieves the next batch of results from the
+ * preceding call to this method. `page_token` must be the value of
+ * `next_page_token` from the previous response. The values of other method
+ * parameters should be identical to those in the previous call.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Essentialcontacts\V1\Service::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The parent resource name.
+ * Format: organizations/{organization_id}, folders/{folder_id} or
+ * projects/{project_id}
+ *
+ * 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 resource name.
+ * Format: organizations/{organization_id}, folders/{folder_id} or
+ * projects/{project_id}
+ *
+ * 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 results to return from this request.
+ * Non-positive values are ignored. The presence of `next_page_token` in the
+ * response indicates that more results might be available.
+ * If not specified, the default page_size is 100.
+ *
+ * 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 results to return from this request.
+ * Non-positive values are ignored. The presence of `next_page_token` in the
+ * response indicates that more results might be available.
+ * If not specified, the default page_size is 100.
+ *
+ * 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. If present, retrieves the next batch of results from the
+ * preceding call to this method. `page_token` must be the value of
+ * `next_page_token` from the previous response. The values of other method
+ * parameters should be identical to those in the previous call.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Optional. If present, retrieves the next batch of results from the
+ * preceding call to this method. `page_token` must be the value of
+ * `next_page_token` from the previous response. The values of other method
+ * parameters should be identical to those in the previous call.
+ *
+ * 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/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/ListContactsResponse.php b/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/ListContactsResponse.php
new file mode 100644
index 000000000000..7d094531e0d4
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/ListContactsResponse.php
@@ -0,0 +1,113 @@
+google.cloud.essentialcontacts.v1.ListContactsResponse
+ */
+class ListContactsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The contacts for the specified resource.
+ *
+ * Generated from protobuf field repeated .google.cloud.essentialcontacts.v1.Contact contacts = 1;
+ */
+ private $contacts;
+ /**
+ * If there are more results than those appearing in this response, then
+ * `next_page_token` is included. To get the next set of results, call this
+ * method again using the value of `next_page_token` as `page_token` and the
+ * rest of the parameters the same as the original request.
+ *
+ * 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\EssentialContacts\V1\Contact>|\Google\Protobuf\Internal\RepeatedField $contacts
+ * The contacts for the specified resource.
+ * @type string $next_page_token
+ * If there are more results than those appearing in this response, then
+ * `next_page_token` is included. To get the next set of results, call this
+ * method again using the value of `next_page_token` as `page_token` and the
+ * rest of the parameters the same as the original request.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Essentialcontacts\V1\Service::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The contacts for the specified resource.
+ *
+ * Generated from protobuf field repeated .google.cloud.essentialcontacts.v1.Contact contacts = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getContacts()
+ {
+ return $this->contacts;
+ }
+
+ /**
+ * The contacts for the specified resource.
+ *
+ * Generated from protobuf field repeated .google.cloud.essentialcontacts.v1.Contact contacts = 1;
+ * @param array<\Google\Cloud\EssentialContacts\V1\Contact>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setContacts($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\EssentialContacts\V1\Contact::class);
+ $this->contacts = $arr;
+
+ return $this;
+ }
+
+ /**
+ * If there are more results than those appearing in this response, then
+ * `next_page_token` is included. To get the next set of results, call this
+ * method again using the value of `next_page_token` as `page_token` and the
+ * rest of the parameters the same as the original request.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * If there are more results than those appearing in this response, then
+ * `next_page_token` is included. To get the next set of results, call this
+ * method again using the value of `next_page_token` as `page_token` and the
+ * rest of the parameters the same as the original request.
+ *
+ * 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/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/NotificationCategory.php b/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/NotificationCategory.php
new file mode 100644
index 000000000000..4839f5697d55
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/NotificationCategory.php
@@ -0,0 +1,113 @@
+google.cloud.essentialcontacts.v1.NotificationCategory
+ */
+class NotificationCategory
+{
+ /**
+ * Notification category is unrecognized or unspecified.
+ *
+ * Generated from protobuf enum NOTIFICATION_CATEGORY_UNSPECIFIED = 0;
+ */
+ const NOTIFICATION_CATEGORY_UNSPECIFIED = 0;
+ /**
+ * All notifications related to the resource, including notifications
+ * pertaining to categories added in the future.
+ *
+ * Generated from protobuf enum ALL = 2;
+ */
+ const ALL = 2;
+ /**
+ * Notifications related to imminent account suspension.
+ *
+ * Generated from protobuf enum SUSPENSION = 3;
+ */
+ const SUSPENSION = 3;
+ /**
+ * Notifications related to security/privacy incidents, notifications, and
+ * vulnerabilities.
+ *
+ * Generated from protobuf enum SECURITY = 5;
+ */
+ const SECURITY = 5;
+ /**
+ * Notifications related to technical events and issues such as outages,
+ * errors, or bugs.
+ *
+ * Generated from protobuf enum TECHNICAL = 6;
+ */
+ const TECHNICAL = 6;
+ /**
+ * Notifications related to billing and payments notifications, price updates,
+ * errors, or credits.
+ *
+ * Generated from protobuf enum BILLING = 7;
+ */
+ const BILLING = 7;
+ /**
+ * Notifications related to enforcement actions, regulatory compliance, or
+ * government notices.
+ *
+ * Generated from protobuf enum LEGAL = 8;
+ */
+ const LEGAL = 8;
+ /**
+ * Notifications related to new versions, product terms updates, or
+ * deprecations.
+ *
+ * Generated from protobuf enum PRODUCT_UPDATES = 9;
+ */
+ const PRODUCT_UPDATES = 9;
+ /**
+ * Child category of TECHNICAL. If assigned, technical incident notifications
+ * will go to these contacts instead of TECHNICAL.
+ *
+ * Generated from protobuf enum TECHNICAL_INCIDENTS = 10;
+ */
+ const TECHNICAL_INCIDENTS = 10;
+
+ private static $valueToName = [
+ self::NOTIFICATION_CATEGORY_UNSPECIFIED => 'NOTIFICATION_CATEGORY_UNSPECIFIED',
+ self::ALL => 'ALL',
+ self::SUSPENSION => 'SUSPENSION',
+ self::SECURITY => 'SECURITY',
+ self::TECHNICAL => 'TECHNICAL',
+ self::BILLING => 'BILLING',
+ self::LEGAL => 'LEGAL',
+ self::PRODUCT_UPDATES => 'PRODUCT_UPDATES',
+ self::TECHNICAL_INCIDENTS => 'TECHNICAL_INCIDENTS',
+ ];
+
+ 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/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/SendTestMessageRequest.php b/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/SendTestMessageRequest.php
new file mode 100644
index 000000000000..e756f41f0c33
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/SendTestMessageRequest.php
@@ -0,0 +1,167 @@
+google.cloud.essentialcontacts.v1.SendTestMessageRequest
+ */
+class SendTestMessageRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The list of names of the contacts to send a test message to.
+ * Format: organizations/{organization_id}/contacts/{contact_id},
+ * folders/{folder_id}/contacts/{contact_id} or
+ * projects/{project_id}/contacts/{contact_id}
+ *
+ * Generated from protobuf field repeated string contacts = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ private $contacts;
+ /**
+ * Required. The name of the resource to send the test message for. All
+ * contacts must either be set directly on this resource or inherited from
+ * another resource that is an ancestor of this one. Format:
+ * organizations/{organization_id}, folders/{folder_id} or
+ * projects/{project_id}
+ *
+ * Generated from protobuf field string resource = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $resource = '';
+ /**
+ * Required. The notification category to send the test message for. All
+ * contacts must be subscribed to this category.
+ *
+ * Generated from protobuf field .google.cloud.essentialcontacts.v1.NotificationCategory notification_category = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $notification_category = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $contacts
+ * Required. The list of names of the contacts to send a test message to.
+ * Format: organizations/{organization_id}/contacts/{contact_id},
+ * folders/{folder_id}/contacts/{contact_id} or
+ * projects/{project_id}/contacts/{contact_id}
+ * @type string $resource
+ * Required. The name of the resource to send the test message for. All
+ * contacts must either be set directly on this resource or inherited from
+ * another resource that is an ancestor of this one. Format:
+ * organizations/{organization_id}, folders/{folder_id} or
+ * projects/{project_id}
+ * @type int $notification_category
+ * Required. The notification category to send the test message for. All
+ * contacts must be subscribed to this category.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Essentialcontacts\V1\Service::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The list of names of the contacts to send a test message to.
+ * Format: organizations/{organization_id}/contacts/{contact_id},
+ * folders/{folder_id}/contacts/{contact_id} or
+ * projects/{project_id}/contacts/{contact_id}
+ *
+ * Generated from protobuf field repeated string contacts = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getContacts()
+ {
+ return $this->contacts;
+ }
+
+ /**
+ * Required. The list of names of the contacts to send a test message to.
+ * Format: organizations/{organization_id}/contacts/{contact_id},
+ * folders/{folder_id}/contacts/{contact_id} or
+ * projects/{project_id}/contacts/{contact_id}
+ *
+ * Generated from protobuf field repeated string contacts = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setContacts($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->contacts = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Required. The name of the resource to send the test message for. All
+ * contacts must either be set directly on this resource or inherited from
+ * another resource that is an ancestor of this one. Format:
+ * organizations/{organization_id}, folders/{folder_id} or
+ * projects/{project_id}
+ *
+ * Generated from protobuf field string resource = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getResource()
+ {
+ return $this->resource;
+ }
+
+ /**
+ * Required. The name of the resource to send the test message for. All
+ * contacts must either be set directly on this resource or inherited from
+ * another resource that is an ancestor of this one. Format:
+ * organizations/{organization_id}, folders/{folder_id} or
+ * projects/{project_id}
+ *
+ * Generated from protobuf field string resource = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setResource($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->resource = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The notification category to send the test message for. All
+ * contacts must be subscribed to this category.
+ *
+ * Generated from protobuf field .google.cloud.essentialcontacts.v1.NotificationCategory notification_category = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return int
+ */
+ public function getNotificationCategory()
+ {
+ return $this->notification_category;
+ }
+
+ /**
+ * Required. The notification category to send the test message for. All
+ * contacts must be subscribed to this category.
+ *
+ * Generated from protobuf field .google.cloud.essentialcontacts.v1.NotificationCategory notification_category = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param int $var
+ * @return $this
+ */
+ public function setNotificationCategory($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\EssentialContacts\V1\NotificationCategory::class);
+ $this->notification_category = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/UpdateContactRequest.php b/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/UpdateContactRequest.php
new file mode 100644
index 000000000000..33f95f31b4a2
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/UpdateContactRequest.php
@@ -0,0 +1,151 @@
+google.cloud.essentialcontacts.v1.UpdateContactRequest
+ */
+class UpdateContactRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The contact resource to replace the existing saved contact. Note:
+ * the email address of the contact cannot be modified.
+ *
+ * Generated from protobuf field .google.cloud.essentialcontacts.v1.Contact contact = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $contact = null;
+ /**
+ * Optional. The update mask applied to the resource. For the `FieldMask`
+ * definition, see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $update_mask = null;
+
+ /**
+ * @param \Google\Cloud\EssentialContacts\V1\Contact $contact Required. The contact resource to replace the existing saved contact. Note:
+ * the email address of the contact cannot be modified.
+ * @param \Google\Protobuf\FieldMask $updateMask Optional. The update mask applied to the resource. For the `FieldMask`
+ * definition, see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * @return \Google\Cloud\EssentialContacts\V1\UpdateContactRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\EssentialContacts\V1\Contact $contact, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setContact($contact)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\EssentialContacts\V1\Contact $contact
+ * Required. The contact resource to replace the existing saved contact. Note:
+ * the email address of the contact cannot be modified.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Optional. The update mask applied to the resource. For the `FieldMask`
+ * definition, see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Essentialcontacts\V1\Service::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The contact resource to replace the existing saved contact. Note:
+ * the email address of the contact cannot be modified.
+ *
+ * Generated from protobuf field .google.cloud.essentialcontacts.v1.Contact contact = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\EssentialContacts\V1\Contact|null
+ */
+ public function getContact()
+ {
+ return $this->contact;
+ }
+
+ public function hasContact()
+ {
+ return isset($this->contact);
+ }
+
+ public function clearContact()
+ {
+ unset($this->contact);
+ }
+
+ /**
+ * Required. The contact resource to replace the existing saved contact. Note:
+ * the email address of the contact cannot be modified.
+ *
+ * Generated from protobuf field .google.cloud.essentialcontacts.v1.Contact contact = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\EssentialContacts\V1\Contact $var
+ * @return $this
+ */
+ public function setContact($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\EssentialContacts\V1\Contact::class);
+ $this->contact = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The update mask applied to the resource. For the `FieldMask`
+ * definition, see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @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);
+ }
+
+ /**
+ * Optional. The update mask applied to the resource. For the `FieldMask`
+ * definition, see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @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/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/ValidationState.php b/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/ValidationState.php
new file mode 100644
index 000000000000..d1085febe567
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/proto/src/Google/Cloud/EssentialContacts/V1/ValidationState.php
@@ -0,0 +1,64 @@
+google.cloud.essentialcontacts.v1.ValidationState
+ */
+class ValidationState
+{
+ /**
+ * The validation state is unknown or unspecified.
+ *
+ * Generated from protobuf enum VALIDATION_STATE_UNSPECIFIED = 0;
+ */
+ const VALIDATION_STATE_UNSPECIFIED = 0;
+ /**
+ * The contact is marked as valid. This is usually done manually by the
+ * contact admin. All new contacts begin in the valid state.
+ *
+ * Generated from protobuf enum VALID = 1;
+ */
+ const VALID = 1;
+ /**
+ * The contact is considered invalid. This may become the state if the
+ * contact's email is found to be unreachable.
+ *
+ * Generated from protobuf enum INVALID = 2;
+ */
+ const INVALID = 2;
+
+ private static $valueToName = [
+ self::VALIDATION_STATE_UNSPECIFIED => 'VALIDATION_STATE_UNSPECIFIED',
+ self::VALID => 'VALID',
+ 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);
+ }
+}
+
diff --git a/owl-bot-staging/EssentialContacts/v1/samples/V1/EssentialContactsServiceClient/compute_contacts.php b/owl-bot-staging/EssentialContacts/v1/samples/V1/EssentialContactsServiceClient/compute_contacts.php
new file mode 100644
index 000000000000..dd83dfdc6419
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/samples/V1/EssentialContactsServiceClient/compute_contacts.php
@@ -0,0 +1,80 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $essentialContactsServiceClient->computeContacts($request);
+
+ /** @var Contact $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 = EssentialContactsServiceClient::projectName('[PROJECT]');
+
+ compute_contacts_sample($formattedParent);
+}
+// [END essentialcontacts_v1_generated_EssentialContactsService_ComputeContacts_sync]
diff --git a/owl-bot-staging/EssentialContacts/v1/samples/V1/EssentialContactsServiceClient/create_contact.php b/owl-bot-staging/EssentialContacts/v1/samples/V1/EssentialContactsServiceClient/create_contact.php
new file mode 100644
index 000000000000..652bf6b0f2d2
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/samples/V1/EssentialContactsServiceClient/create_contact.php
@@ -0,0 +1,75 @@
+setParent($formattedParent)
+ ->setContact($contact);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Contact $response */
+ $response = $essentialContactsServiceClient->createContact($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 = EssentialContactsServiceClient::projectName('[PROJECT]');
+
+ create_contact_sample($formattedParent);
+}
+// [END essentialcontacts_v1_generated_EssentialContactsService_CreateContact_sync]
diff --git a/owl-bot-staging/EssentialContacts/v1/samples/V1/EssentialContactsServiceClient/delete_contact.php b/owl-bot-staging/EssentialContacts/v1/samples/V1/EssentialContactsServiceClient/delete_contact.php
new file mode 100644
index 000000000000..d8e7317ad6b1
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/samples/V1/EssentialContactsServiceClient/delete_contact.php
@@ -0,0 +1,72 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ $essentialContactsServiceClient->deleteContact($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 = EssentialContactsServiceClient::contactName('[PROJECT]', '[CONTACT]');
+
+ delete_contact_sample($formattedName);
+}
+// [END essentialcontacts_v1_generated_EssentialContactsService_DeleteContact_sync]
diff --git a/owl-bot-staging/EssentialContacts/v1/samples/V1/EssentialContactsServiceClient/get_contact.php b/owl-bot-staging/EssentialContacts/v1/samples/V1/EssentialContactsServiceClient/get_contact.php
new file mode 100644
index 000000000000..e457a3a8ea03
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/samples/V1/EssentialContactsServiceClient/get_contact.php
@@ -0,0 +1,74 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Contact $response */
+ $response = $essentialContactsServiceClient->getContact($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 = EssentialContactsServiceClient::contactName('[PROJECT]', '[CONTACT]');
+
+ get_contact_sample($formattedName);
+}
+// [END essentialcontacts_v1_generated_EssentialContactsService_GetContact_sync]
diff --git a/owl-bot-staging/EssentialContacts/v1/samples/V1/EssentialContactsServiceClient/list_contacts.php b/owl-bot-staging/EssentialContacts/v1/samples/V1/EssentialContactsServiceClient/list_contacts.php
new file mode 100644
index 000000000000..5e65c6d7198a
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/samples/V1/EssentialContactsServiceClient/list_contacts.php
@@ -0,0 +1,78 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $essentialContactsServiceClient->listContacts($request);
+
+ /** @var Contact $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 = EssentialContactsServiceClient::projectName('[PROJECT]');
+
+ list_contacts_sample($formattedParent);
+}
+// [END essentialcontacts_v1_generated_EssentialContactsService_ListContacts_sync]
diff --git a/owl-bot-staging/EssentialContacts/v1/samples/V1/EssentialContactsServiceClient/send_test_message.php b/owl-bot-staging/EssentialContacts/v1/samples/V1/EssentialContactsServiceClient/send_test_message.php
new file mode 100644
index 000000000000..187f0fad033c
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/samples/V1/EssentialContactsServiceClient/send_test_message.php
@@ -0,0 +1,90 @@
+setContacts($formattedContacts)
+ ->setResource($formattedResource)
+ ->setNotificationCategory($notificationCategory);
+
+ // Call the API and handle any network failures.
+ try {
+ $essentialContactsServiceClient->sendTestMessage($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
+{
+ $formattedContactsElement = EssentialContactsServiceClient::contactName('[PROJECT]', '[CONTACT]');
+ $formattedResource = EssentialContactsServiceClient::projectName('[PROJECT]');
+ $notificationCategory = NotificationCategory::NOTIFICATION_CATEGORY_UNSPECIFIED;
+
+ send_test_message_sample($formattedContactsElement, $formattedResource, $notificationCategory);
+}
+// [END essentialcontacts_v1_generated_EssentialContactsService_SendTestMessage_sync]
diff --git a/owl-bot-staging/EssentialContacts/v1/samples/V1/EssentialContactsServiceClient/update_contact.php b/owl-bot-staging/EssentialContacts/v1/samples/V1/EssentialContactsServiceClient/update_contact.php
new file mode 100644
index 000000000000..9dd27a98a0cc
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/samples/V1/EssentialContactsServiceClient/update_contact.php
@@ -0,0 +1,60 @@
+setContact($contact);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Contact $response */
+ $response = $essentialContactsServiceClient->updateContact($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END essentialcontacts_v1_generated_EssentialContactsService_UpdateContact_sync]
diff --git a/owl-bot-staging/EssentialContacts/v1/src/V1/Client/BaseClient/EssentialContactsServiceBaseClient.php b/owl-bot-staging/EssentialContacts/v1/src/V1/Client/BaseClient/EssentialContactsServiceBaseClient.php
new file mode 100644
index 000000000000..32c6117c33b1
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/src/V1/Client/BaseClient/EssentialContactsServiceBaseClient.php
@@ -0,0 +1,493 @@
+ self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../../resources/essential_contacts_service_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../../resources/essential_contacts_service_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../../resources/essential_contacts_service_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../../resources/essential_contacts_service_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a contact
+ * resource.
+ *
+ * @param string $project
+ * @param string $contact
+ *
+ * @return string The formatted contact resource.
+ */
+ public static function contactName(string $project, string $contact): string
+ {
+ return self::getPathTemplate('contact')->render([
+ 'project' => $project,
+ 'contact' => $contact,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a folder
+ * resource.
+ *
+ * @param string $folder
+ *
+ * @return string The formatted folder resource.
+ */
+ public static function folderName(string $folder): string
+ {
+ return self::getPathTemplate('folder')->render([
+ 'folder' => $folder,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * folder_contact resource.
+ *
+ * @param string $folder
+ * @param string $contact
+ *
+ * @return string The formatted folder_contact resource.
+ */
+ public static function folderContactName(string $folder, string $contact): string
+ {
+ return self::getPathTemplate('folderContact')->render([
+ 'folder' => $folder,
+ 'contact' => $contact,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a organization
+ * resource.
+ *
+ * @param string $organization
+ *
+ * @return string The formatted organization resource.
+ */
+ public static function organizationName(string $organization): string
+ {
+ return self::getPathTemplate('organization')->render([
+ 'organization' => $organization,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * organization_contact resource.
+ *
+ * @param string $organization
+ * @param string $contact
+ *
+ * @return string The formatted organization_contact resource.
+ */
+ public static function organizationContactName(string $organization, string $contact): string
+ {
+ return self::getPathTemplate('organizationContact')->render([
+ 'organization' => $organization,
+ 'contact' => $contact,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a project
+ * resource.
+ *
+ * @param string $project
+ *
+ * @return string The formatted project resource.
+ */
+ public static function projectName(string $project): string
+ {
+ return self::getPathTemplate('project')->render([
+ 'project' => $project,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * project_contact resource.
+ *
+ * @param string $project
+ * @param string $contact
+ *
+ * @return string The formatted project_contact resource.
+ */
+ public static function projectContactName(string $project, string $contact): string
+ {
+ return self::getPathTemplate('projectContact')->render([
+ 'project' => $project,
+ 'contact' => $contact,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - contact: projects/{project}/contacts/{contact}
+ * - folder: folders/{folder}
+ * - folderContact: folders/{folder}/contacts/{contact}
+ * - organization: organizations/{organization}
+ * - organizationContact: organizations/{organization}/contacts/{contact}
+ * - project: projects/{project}
+ * - projectContact: projects/{project}/contacts/{contact}
+ *
+ * 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 'essentialcontacts.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
+ */
+ 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);
+ }
+
+ /**
+ * Lists all contacts for the resource that are subscribed to the
+ * specified notification categories, including contacts inherited from
+ * any parent resources.
+ *
+ * The async variant is {@see self::computeContactsAsync()} .
+ *
+ * @param ComputeContactsRequest $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 computeContacts(ComputeContactsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ComputeContacts', $request, $callOptions);
+ }
+
+ /**
+ * Adds a new contact for a resource.
+ *
+ * The async variant is {@see self::createContactAsync()} .
+ *
+ * @param CreateContactRequest $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 Contact
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createContact(CreateContactRequest $request, array $callOptions = []): Contact
+ {
+ return $this->startApiCall('CreateContact', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a contact.
+ *
+ * The async variant is {@see self::deleteContactAsync()} .
+ *
+ * @param DeleteContactRequest $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 deleteContact(DeleteContactRequest $request, array $callOptions = []): void
+ {
+ $this->startApiCall('DeleteContact', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets a single contact.
+ *
+ * The async variant is {@see self::getContactAsync()} .
+ *
+ * @param GetContactRequest $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 Contact
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getContact(GetContactRequest $request, array $callOptions = []): Contact
+ {
+ return $this->startApiCall('GetContact', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Lists the contacts that have been set on a resource.
+ *
+ * The async variant is {@see self::listContactsAsync()} .
+ *
+ * @param ListContactsRequest $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 listContacts(ListContactsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListContacts', $request, $callOptions);
+ }
+
+ /**
+ * Allows a contact admin to send a test message to contact to verify that it
+ * has been configured correctly.
+ *
+ * The async variant is {@see self::sendTestMessageAsync()} .
+ *
+ * @param SendTestMessageRequest $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 sendTestMessage(SendTestMessageRequest $request, array $callOptions = []): void
+ {
+ $this->startApiCall('SendTestMessage', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates a contact.
+ * Note: A contact's email address cannot be changed.
+ *
+ * The async variant is {@see self::updateContactAsync()} .
+ *
+ * @param UpdateContactRequest $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 Contact
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateContact(UpdateContactRequest $request, array $callOptions = []): Contact
+ {
+ return $this->startApiCall('UpdateContact', $request, $callOptions)->wait();
+ }
+}
diff --git a/owl-bot-staging/EssentialContacts/v1/src/V1/Client/EssentialContactsServiceClient.php b/owl-bot-staging/EssentialContacts/v1/src/V1/Client/EssentialContactsServiceClient.php
new file mode 100644
index 000000000000..e5f6c658786d
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/src/V1/Client/EssentialContactsServiceClient.php
@@ -0,0 +1,40 @@
+projectName('[PROJECT]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $essentialContactsServiceClient->computeContacts($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $essentialContactsServiceClient->computeContacts($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $essentialContactsServiceClient->close();
+ * }
+ * ```
+ *
+ * Many parameters require resource names to be formatted in a particular way. To
+ * assist with these names, this class includes a format method for each type of
+ * name, and additionally a parseName method to extract the individual identifiers
+ * contained within formatted names that are returned by the API.
+ */
+class EssentialContactsServiceGapicClient
+{
+ use GapicClientTrait;
+
+ /** The name of the service. */
+ const SERVICE_NAME = 'google.cloud.essentialcontacts.v1.EssentialContactsService';
+
+ /** The default address of the service. */
+ const SERVICE_ADDRESS = 'essentialcontacts.googleapis.com';
+
+ /** 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 $contactNameTemplate;
+
+ private static $folderNameTemplate;
+
+ private static $folderContactNameTemplate;
+
+ private static $organizationNameTemplate;
+
+ private static $organizationContactNameTemplate;
+
+ private static $projectNameTemplate;
+
+ private static $projectContactNameTemplate;
+
+ private static $pathTemplateMap;
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/essential_contacts_service_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/essential_contacts_service_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/essential_contacts_service_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/essential_contacts_service_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ private static function getContactNameTemplate()
+ {
+ if (self::$contactNameTemplate == null) {
+ self::$contactNameTemplate = new PathTemplate('projects/{project}/contacts/{contact}');
+ }
+
+ return self::$contactNameTemplate;
+ }
+
+ private static function getFolderNameTemplate()
+ {
+ if (self::$folderNameTemplate == null) {
+ self::$folderNameTemplate = new PathTemplate('folders/{folder}');
+ }
+
+ return self::$folderNameTemplate;
+ }
+
+ private static function getFolderContactNameTemplate()
+ {
+ if (self::$folderContactNameTemplate == null) {
+ self::$folderContactNameTemplate = new PathTemplate('folders/{folder}/contacts/{contact}');
+ }
+
+ return self::$folderContactNameTemplate;
+ }
+
+ private static function getOrganizationNameTemplate()
+ {
+ if (self::$organizationNameTemplate == null) {
+ self::$organizationNameTemplate = new PathTemplate('organizations/{organization}');
+ }
+
+ return self::$organizationNameTemplate;
+ }
+
+ private static function getOrganizationContactNameTemplate()
+ {
+ if (self::$organizationContactNameTemplate == null) {
+ self::$organizationContactNameTemplate = new PathTemplate('organizations/{organization}/contacts/{contact}');
+ }
+
+ return self::$organizationContactNameTemplate;
+ }
+
+ private static function getProjectNameTemplate()
+ {
+ if (self::$projectNameTemplate == null) {
+ self::$projectNameTemplate = new PathTemplate('projects/{project}');
+ }
+
+ return self::$projectNameTemplate;
+ }
+
+ private static function getProjectContactNameTemplate()
+ {
+ if (self::$projectContactNameTemplate == null) {
+ self::$projectContactNameTemplate = new PathTemplate('projects/{project}/contacts/{contact}');
+ }
+
+ return self::$projectContactNameTemplate;
+ }
+
+ private static function getPathTemplateMap()
+ {
+ if (self::$pathTemplateMap == null) {
+ self::$pathTemplateMap = [
+ 'contact' => self::getContactNameTemplate(),
+ 'folder' => self::getFolderNameTemplate(),
+ 'folderContact' => self::getFolderContactNameTemplate(),
+ 'organization' => self::getOrganizationNameTemplate(),
+ 'organizationContact' => self::getOrganizationContactNameTemplate(),
+ 'project' => self::getProjectNameTemplate(),
+ 'projectContact' => self::getProjectContactNameTemplate(),
+ ];
+ }
+
+ return self::$pathTemplateMap;
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a contact
+ * resource.
+ *
+ * @param string $project
+ * @param string $contact
+ *
+ * @return string The formatted contact resource.
+ */
+ public static function contactName($project, $contact)
+ {
+ return self::getContactNameTemplate()->render([
+ 'project' => $project,
+ 'contact' => $contact,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a folder
+ * resource.
+ *
+ * @param string $folder
+ *
+ * @return string The formatted folder resource.
+ */
+ public static function folderName($folder)
+ {
+ return self::getFolderNameTemplate()->render([
+ 'folder' => $folder,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * folder_contact resource.
+ *
+ * @param string $folder
+ * @param string $contact
+ *
+ * @return string The formatted folder_contact resource.
+ */
+ public static function folderContactName($folder, $contact)
+ {
+ return self::getFolderContactNameTemplate()->render([
+ 'folder' => $folder,
+ 'contact' => $contact,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a organization
+ * resource.
+ *
+ * @param string $organization
+ *
+ * @return string The formatted organization resource.
+ */
+ public static function organizationName($organization)
+ {
+ return self::getOrganizationNameTemplate()->render([
+ 'organization' => $organization,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * organization_contact resource.
+ *
+ * @param string $organization
+ * @param string $contact
+ *
+ * @return string The formatted organization_contact resource.
+ */
+ public static function organizationContactName($organization, $contact)
+ {
+ return self::getOrganizationContactNameTemplate()->render([
+ 'organization' => $organization,
+ 'contact' => $contact,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a project
+ * resource.
+ *
+ * @param string $project
+ *
+ * @return string The formatted project resource.
+ */
+ public static function projectName($project)
+ {
+ return self::getProjectNameTemplate()->render([
+ 'project' => $project,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * project_contact resource.
+ *
+ * @param string $project
+ * @param string $contact
+ *
+ * @return string The formatted project_contact resource.
+ */
+ public static function projectContactName($project, $contact)
+ {
+ return self::getProjectContactNameTemplate()->render([
+ 'project' => $project,
+ 'contact' => $contact,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - contact: projects/{project}/contacts/{contact}
+ * - folder: folders/{folder}
+ * - folderContact: folders/{folder}/contacts/{contact}
+ * - organization: organizations/{organization}
+ * - organizationContact: organizations/{organization}/contacts/{contact}
+ * - project: projects/{project}
+ * - projectContact: projects/{project}/contacts/{contact}
+ *
+ * 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($formattedName, $template = null)
+ {
+ $templateMap = self::getPathTemplateMap();
+ if ($template) {
+ if (!isset($templateMap[$template])) {
+ throw new ValidationException("Template name $template does not exist");
+ }
+
+ return $templateMap[$template]->match($formattedName);
+ }
+
+ foreach ($templateMap as $templateName => $pathTemplate) {
+ try {
+ return $pathTemplate->match($formattedName);
+ } catch (ValidationException $ex) {
+ // Swallow the exception to continue trying other path templates
+ }
+ }
+
+ throw new ValidationException("Input did not match any known format. Input: $formattedName");
+ }
+
+ /**
+ * 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 'essentialcontacts.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
+ */
+ public function __construct(array $options = [])
+ {
+ $clientOptions = $this->buildClientOptions($options);
+ $this->setClientOptions($clientOptions);
+ }
+
+ /**
+ * Lists all contacts for the resource that are subscribed to the
+ * specified notification categories, including contacts inherited from
+ * any parent resources.
+ *
+ * Sample code:
+ * ```
+ * $essentialContactsServiceClient = new EssentialContactsServiceClient();
+ * try {
+ * $formattedParent = $essentialContactsServiceClient->projectName('[PROJECT]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $essentialContactsServiceClient->computeContacts($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $essentialContactsServiceClient->computeContacts($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $essentialContactsServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The name of the resource to compute contacts for.
+ * Format: organizations/{organization_id},
+ * folders/{folder_id} or projects/{project_id}
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int[] $notificationCategories
+ * The categories of notifications to compute contacts for. If ALL is included
+ * in this list, contacts subscribed to any notification category will be
+ * returned.
+ * For allowed values, use constants defined on {@see \Google\Cloud\EssentialContacts\V1\NotificationCategory}
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function computeContacts($parent, array $optionalArgs = [])
+ {
+ $request = new ComputeContactsRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['notificationCategories'])) {
+ $request->setNotificationCategories($optionalArgs['notificationCategories']);
+ }
+
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ComputeContacts', $optionalArgs, ComputeContactsResponse::class, $request);
+ }
+
+ /**
+ * Adds a new contact for a resource.
+ *
+ * Sample code:
+ * ```
+ * $essentialContactsServiceClient = new EssentialContactsServiceClient();
+ * try {
+ * $formattedParent = $essentialContactsServiceClient->projectName('[PROJECT]');
+ * $contact = new Contact();
+ * $response = $essentialContactsServiceClient->createContact($formattedParent, $contact);
+ * } finally {
+ * $essentialContactsServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The resource to save this contact for.
+ * Format: organizations/{organization_id}, folders/{folder_id} or
+ * projects/{project_id}
+ * @param Contact $contact Required. The contact to create. Must specify an email address and language
+ * tag.
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\EssentialContacts\V1\Contact
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function createContact($parent, $contact, array $optionalArgs = [])
+ {
+ $request = new CreateContactRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setContact($contact);
+ $requestParamHeaders['parent'] = $parent;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('CreateContact', Contact::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Deletes a contact.
+ *
+ * Sample code:
+ * ```
+ * $essentialContactsServiceClient = new EssentialContactsServiceClient();
+ * try {
+ * $formattedName = $essentialContactsServiceClient->contactName('[PROJECT]', '[CONTACT]');
+ * $essentialContactsServiceClient->deleteContact($formattedName);
+ * } finally {
+ * $essentialContactsServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The name of the contact to delete.
+ * Format: organizations/{organization_id}/contacts/{contact_id},
+ * folders/{folder_id}/contacts/{contact_id} or
+ * projects/{project_id}/contacts/{contact_id}
+ * @param array $optionalArgs {
+ * 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 if the remote call fails
+ */
+ public function deleteContact($name, array $optionalArgs = [])
+ {
+ $request = new DeleteContactRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('DeleteContact', GPBEmpty::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Gets a single contact.
+ *
+ * Sample code:
+ * ```
+ * $essentialContactsServiceClient = new EssentialContactsServiceClient();
+ * try {
+ * $formattedName = $essentialContactsServiceClient->contactName('[PROJECT]', '[CONTACT]');
+ * $response = $essentialContactsServiceClient->getContact($formattedName);
+ * } finally {
+ * $essentialContactsServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The name of the contact to retrieve.
+ * Format: organizations/{organization_id}/contacts/{contact_id},
+ * folders/{folder_id}/contacts/{contact_id} or
+ * projects/{project_id}/contacts/{contact_id}
+ * @param array $optionalArgs {
+ * 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 \Google\Cloud\EssentialContacts\V1\Contact
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getContact($name, array $optionalArgs = [])
+ {
+ $request = new GetContactRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetContact', Contact::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Lists the contacts that have been set on a resource.
+ *
+ * Sample code:
+ * ```
+ * $essentialContactsServiceClient = new EssentialContactsServiceClient();
+ * try {
+ * $formattedParent = $essentialContactsServiceClient->projectName('[PROJECT]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $essentialContactsServiceClient->listContacts($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $essentialContactsServiceClient->listContacts($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $essentialContactsServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The parent resource name.
+ * Format: organizations/{organization_id}, folders/{folder_id} or
+ * projects/{project_id}
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type int $pageSize
+ * The maximum number of resources contained in the underlying API
+ * response. The API may return fewer values in a page, even if
+ * there are additional values to be retrieved.
+ * @type string $pageToken
+ * A page token is used to specify a page of values to be returned.
+ * If no page token is specified (the default), the first page
+ * of values will be returned. Any page token used here must have
+ * been generated by a previous call to the API.
+ * @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 \Google\ApiCore\PagedListResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function listContacts($parent, array $optionalArgs = [])
+ {
+ $request = new ListContactsRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['pageSize'])) {
+ $request->setPageSize($optionalArgs['pageSize']);
+ }
+
+ if (isset($optionalArgs['pageToken'])) {
+ $request->setPageToken($optionalArgs['pageToken']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListContacts', $optionalArgs, ListContactsResponse::class, $request);
+ }
+
+ /**
+ * Allows a contact admin to send a test message to contact to verify that it
+ * has been configured correctly.
+ *
+ * Sample code:
+ * ```
+ * $essentialContactsServiceClient = new EssentialContactsServiceClient();
+ * try {
+ * $formattedContacts = [
+ * $essentialContactsServiceClient->contactName('[PROJECT]', '[CONTACT]'),
+ * ];
+ * $formattedResource = $essentialContactsServiceClient->projectName('[PROJECT]');
+ * $notificationCategory = NotificationCategory::NOTIFICATION_CATEGORY_UNSPECIFIED;
+ * $essentialContactsServiceClient->sendTestMessage($formattedContacts, $formattedResource, $notificationCategory);
+ * } finally {
+ * $essentialContactsServiceClient->close();
+ * }
+ * ```
+ *
+ * @param string[] $contacts Required. The list of names of the contacts to send a test message to.
+ * Format: organizations/{organization_id}/contacts/{contact_id},
+ * folders/{folder_id}/contacts/{contact_id} or
+ * projects/{project_id}/contacts/{contact_id}
+ * @param string $resource Required. The name of the resource to send the test message for. All
+ * contacts must either be set directly on this resource or inherited from
+ * another resource that is an ancestor of this one. Format:
+ * organizations/{organization_id}, folders/{folder_id} or
+ * projects/{project_id}
+ * @param int $notificationCategory Required. The notification category to send the test message for. All
+ * contacts must be subscribed to this category.
+ * For allowed values, use constants defined on {@see \Google\Cloud\EssentialContacts\V1\NotificationCategory}
+ * @param array $optionalArgs {
+ * 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 if the remote call fails
+ */
+ public function sendTestMessage($contacts, $resource, $notificationCategory, array $optionalArgs = [])
+ {
+ $request = new SendTestMessageRequest();
+ $requestParamHeaders = [];
+ $request->setContacts($contacts);
+ $request->setResource($resource);
+ $request->setNotificationCategory($notificationCategory);
+ $requestParamHeaders['resource'] = $resource;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('SendTestMessage', GPBEmpty::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Updates a contact.
+ * Note: A contact's email address cannot be changed.
+ *
+ * Sample code:
+ * ```
+ * $essentialContactsServiceClient = new EssentialContactsServiceClient();
+ * try {
+ * $contact = new Contact();
+ * $response = $essentialContactsServiceClient->updateContact($contact);
+ * } finally {
+ * $essentialContactsServiceClient->close();
+ * }
+ * ```
+ *
+ * @param Contact $contact Required. The contact resource to replace the existing saved contact. Note:
+ * the email address of the contact cannot be modified.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type FieldMask $updateMask
+ * Optional. The update mask applied to the resource. For the `FieldMask`
+ * definition, see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ * @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 \Google\Cloud\EssentialContacts\V1\Contact
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function updateContact($contact, array $optionalArgs = [])
+ {
+ $request = new UpdateContactRequest();
+ $requestParamHeaders = [];
+ $request->setContact($contact);
+ $requestParamHeaders['contact.name'] = $contact->getName();
+ if (isset($optionalArgs['updateMask'])) {
+ $request->setUpdateMask($optionalArgs['updateMask']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('UpdateContact', Contact::class, $optionalArgs, $request)->wait();
+ }
+}
diff --git a/owl-bot-staging/EssentialContacts/v1/src/V1/gapic_metadata.json b/owl-bot-staging/EssentialContacts/v1/src/V1/gapic_metadata.json
new file mode 100644
index 000000000000..2a955b8f76f0
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/src/V1/gapic_metadata.json
@@ -0,0 +1,53 @@
+{
+ "schema": "1.0",
+ "comment": "This file maps proto services\/RPCs to the corresponding library clients\/methods",
+ "language": "php",
+ "protoPackage": "google.cloud.essentialcontacts.v1",
+ "libraryPackage": "Google\\Cloud\\EssentialContacts\\V1",
+ "services": {
+ "EssentialContactsService": {
+ "clients": {
+ "grpc": {
+ "libraryClient": "EssentialContactsServiceGapicClient",
+ "rpcs": {
+ "ComputeContacts": {
+ "methods": [
+ "computeContacts"
+ ]
+ },
+ "CreateContact": {
+ "methods": [
+ "createContact"
+ ]
+ },
+ "DeleteContact": {
+ "methods": [
+ "deleteContact"
+ ]
+ },
+ "GetContact": {
+ "methods": [
+ "getContact"
+ ]
+ },
+ "ListContacts": {
+ "methods": [
+ "listContacts"
+ ]
+ },
+ "SendTestMessage": {
+ "methods": [
+ "sendTestMessage"
+ ]
+ },
+ "UpdateContact": {
+ "methods": [
+ "updateContact"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/owl-bot-staging/EssentialContacts/v1/src/V1/resources/essential_contacts_service_client_config.json b/owl-bot-staging/EssentialContacts/v1/src/V1/resources/essential_contacts_service_client_config.json
new file mode 100644
index 000000000000..304dacd21d0f
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/src/V1/resources/essential_contacts_service_client_config.json
@@ -0,0 +1,79 @@
+{
+ "interfaces": {
+ "google.cloud.essentialcontacts.v1.EssentialContactsService": {
+ "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": {
+ "ComputeContacts": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateContact": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteContact": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetContact": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListContacts": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "SendTestMessage": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateContact": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ }
+ }
+ }
+ }
+}
diff --git a/owl-bot-staging/EssentialContacts/v1/src/V1/resources/essential_contacts_service_descriptor_config.php b/owl-bot-staging/EssentialContacts/v1/src/V1/resources/essential_contacts_service_descriptor_config.php
new file mode 100644
index 000000000000..fffc2713f526
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/src/V1/resources/essential_contacts_service_descriptor_config.php
@@ -0,0 +1,118 @@
+ [
+ 'google.cloud.essentialcontacts.v1.EssentialContactsService' => [
+ 'ComputeContacts' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getContacts',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\EssentialContacts\V1\ComputeContactsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateContact' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\EssentialContacts\V1\Contact',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteContact' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Protobuf\GPBEmpty',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetContact' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\EssentialContacts\V1\Contact',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListContacts' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getContacts',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\EssentialContacts\V1\ListContactsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'SendTestMessage' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Protobuf\GPBEmpty',
+ 'headerParams' => [
+ [
+ 'keyName' => 'resource',
+ 'fieldAccessors' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateContact' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\EssentialContacts\V1\Contact',
+ 'headerParams' => [
+ [
+ 'keyName' => 'contact.name',
+ 'fieldAccessors' => [
+ 'getContact',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'templateMap' => [
+ 'contact' => 'projects/{project}/contacts/{contact}',
+ 'folder' => 'folders/{folder}',
+ 'folderContact' => 'folders/{folder}/contacts/{contact}',
+ 'organization' => 'organizations/{organization}',
+ 'organizationContact' => 'organizations/{organization}/contacts/{contact}',
+ 'project' => 'projects/{project}',
+ 'projectContact' => 'projects/{project}/contacts/{contact}',
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/EssentialContacts/v1/src/V1/resources/essential_contacts_service_rest_client_config.php b/owl-bot-staging/EssentialContacts/v1/src/V1/resources/essential_contacts_service_rest_client_config.php
new file mode 100644
index 000000000000..04bf88c1516f
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/src/V1/resources/essential_contacts_service_rest_client_config.php
@@ -0,0 +1,166 @@
+ [
+ 'google.cloud.essentialcontacts.v1.EssentialContactsService' => [
+ 'ComputeContacts' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*}/contacts:compute',
+ 'additionalBindings' => [
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=folders/*}/contacts:compute',
+ ],
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=organizations/*}/contacts:compute',
+ ],
+ ],
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateContact' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*}/contacts',
+ 'body' => 'contact',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=folders/*}/contacts',
+ 'body' => 'contact',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=organizations/*}/contacts',
+ 'body' => 'contact',
+ ],
+ ],
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteContact' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/contacts/*}',
+ 'additionalBindings' => [
+ [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=folders/*/contacts/*}',
+ ],
+ [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=organizations/*/contacts/*}',
+ ],
+ ],
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetContact' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/contacts/*}',
+ 'additionalBindings' => [
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=folders/*/contacts/*}',
+ ],
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=organizations/*/contacts/*}',
+ ],
+ ],
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListContacts' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*}/contacts',
+ 'additionalBindings' => [
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=folders/*}/contacts',
+ ],
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=organizations/*}/contacts',
+ ],
+ ],
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'SendTestMessage' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*}/contacts:sendTestMessage',
+ 'body' => '*',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=folders/*}/contacts:sendTestMessage',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=organizations/*}/contacts:sendTestMessage',
+ 'body' => '*',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateContact' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{contact.name=projects/*/contacts/*}',
+ 'body' => 'contact',
+ 'additionalBindings' => [
+ [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{contact.name=folders/*/contacts/*}',
+ 'body' => 'contact',
+ ],
+ [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{contact.name=organizations/*/contacts/*}',
+ 'body' => 'contact',
+ ],
+ ],
+ 'placeholders' => [
+ 'contact.name' => [
+ 'getters' => [
+ 'getContact',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'numericEnums' => true,
+];
diff --git a/owl-bot-staging/EssentialContacts/v1/tests/Unit/V1/Client/EssentialContactsServiceClientTest.php b/owl-bot-staging/EssentialContacts/v1/tests/Unit/V1/Client/EssentialContactsServiceClientTest.php
new file mode 100644
index 000000000000..caeb5d0e0301
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/tests/Unit/V1/Client/EssentialContactsServiceClientTest.php
@@ -0,0 +1,601 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return EssentialContactsServiceClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new EssentialContactsServiceClient($options);
+ }
+
+ /** @test */
+ public function computeContactsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $contactsElement = new Contact();
+ $contacts = [
+ $contactsElement,
+ ];
+ $expectedResponse = new ComputeContactsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setContacts($contacts);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->projectName('[PROJECT]');
+ $request = (new ComputeContactsRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->computeContacts($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getContacts()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.essentialcontacts.v1.EssentialContactsService/ComputeContacts', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function computeContactsExceptionTest()
+ {
+ $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->projectName('[PROJECT]');
+ $request = (new ComputeContactsRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->computeContacts($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 createContactTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $email = 'email96619420';
+ $languageTag = 'languageTag-2091510221';
+ $expectedResponse = new Contact();
+ $expectedResponse->setName($name);
+ $expectedResponse->setEmail($email);
+ $expectedResponse->setLanguageTag($languageTag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->projectName('[PROJECT]');
+ $contact = new Contact();
+ $request = (new CreateContactRequest())
+ ->setParent($formattedParent)
+ ->setContact($contact);
+ $response = $gapicClient->createContact($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.essentialcontacts.v1.EssentialContactsService/CreateContact', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getContact();
+ $this->assertProtobufEquals($contact, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createContactExceptionTest()
+ {
+ $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->projectName('[PROJECT]');
+ $contact = new Contact();
+ $request = (new CreateContactRequest())
+ ->setParent($formattedParent)
+ ->setContact($contact);
+ try {
+ $gapicClient->createContact($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 deleteContactTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->contactName('[PROJECT]', '[CONTACT]');
+ $request = (new DeleteContactRequest())
+ ->setName($formattedName);
+ $gapicClient->deleteContact($request);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.essentialcontacts.v1.EssentialContactsService/DeleteContact', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteContactExceptionTest()
+ {
+ $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->contactName('[PROJECT]', '[CONTACT]');
+ $request = (new DeleteContactRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->deleteContact($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 getContactTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $email = 'email96619420';
+ $languageTag = 'languageTag-2091510221';
+ $expectedResponse = new Contact();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setEmail($email);
+ $expectedResponse->setLanguageTag($languageTag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->contactName('[PROJECT]', '[CONTACT]');
+ $request = (new GetContactRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getContact($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.essentialcontacts.v1.EssentialContactsService/GetContact', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getContactExceptionTest()
+ {
+ $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->contactName('[PROJECT]', '[CONTACT]');
+ $request = (new GetContactRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getContact($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 listContactsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $contactsElement = new Contact();
+ $contacts = [
+ $contactsElement,
+ ];
+ $expectedResponse = new ListContactsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setContacts($contacts);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->projectName('[PROJECT]');
+ $request = (new ListContactsRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listContacts($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getContacts()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.essentialcontacts.v1.EssentialContactsService/ListContacts', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listContactsExceptionTest()
+ {
+ $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->projectName('[PROJECT]');
+ $request = (new ListContactsRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listContacts($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 sendTestMessageTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedContacts = [
+ $gapicClient->contactName('[PROJECT]', '[CONTACT]'),
+ ];
+ $formattedResource = $gapicClient->projectName('[PROJECT]');
+ $notificationCategory = NotificationCategory::NOTIFICATION_CATEGORY_UNSPECIFIED;
+ $request = (new SendTestMessageRequest())
+ ->setContacts($formattedContacts)
+ ->setResource($formattedResource)
+ ->setNotificationCategory($notificationCategory);
+ $gapicClient->sendTestMessage($request);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.essentialcontacts.v1.EssentialContactsService/SendTestMessage', $actualFuncCall);
+ $actualValue = $actualRequestObject->getContacts();
+ $this->assertProtobufEquals($formattedContacts, $actualValue);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($formattedResource, $actualValue);
+ $actualValue = $actualRequestObject->getNotificationCategory();
+ $this->assertProtobufEquals($notificationCategory, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function sendTestMessageExceptionTest()
+ {
+ $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
+ $formattedContacts = [
+ $gapicClient->contactName('[PROJECT]', '[CONTACT]'),
+ ];
+ $formattedResource = $gapicClient->projectName('[PROJECT]');
+ $notificationCategory = NotificationCategory::NOTIFICATION_CATEGORY_UNSPECIFIED;
+ $request = (new SendTestMessageRequest())
+ ->setContacts($formattedContacts)
+ ->setResource($formattedResource)
+ ->setNotificationCategory($notificationCategory);
+ try {
+ $gapicClient->sendTestMessage($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 updateContactTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $email = 'email96619420';
+ $languageTag = 'languageTag-2091510221';
+ $expectedResponse = new Contact();
+ $expectedResponse->setName($name);
+ $expectedResponse->setEmail($email);
+ $expectedResponse->setLanguageTag($languageTag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $contact = new Contact();
+ $request = (new UpdateContactRequest())
+ ->setContact($contact);
+ $response = $gapicClient->updateContact($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.essentialcontacts.v1.EssentialContactsService/UpdateContact', $actualFuncCall);
+ $actualValue = $actualRequestObject->getContact();
+ $this->assertProtobufEquals($contact, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateContactExceptionTest()
+ {
+ $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
+ $contact = new Contact();
+ $request = (new UpdateContactRequest())
+ ->setContact($contact);
+ try {
+ $gapicClient->updateContact($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 computeContactsAsyncTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $contactsElement = new Contact();
+ $contacts = [
+ $contactsElement,
+ ];
+ $expectedResponse = new ComputeContactsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setContacts($contacts);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->projectName('[PROJECT]');
+ $request = (new ComputeContactsRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->computeContactsAsync($request)->wait();
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getContacts()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.essentialcontacts.v1.EssentialContactsService/ComputeContacts', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+}
diff --git a/owl-bot-staging/EssentialContacts/v1/tests/Unit/V1/EssentialContactsServiceClientTest.php b/owl-bot-staging/EssentialContacts/v1/tests/Unit/V1/EssentialContactsServiceClientTest.php
new file mode 100644
index 000000000000..a21e0e6a56ba
--- /dev/null
+++ b/owl-bot-staging/EssentialContacts/v1/tests/Unit/V1/EssentialContactsServiceClientTest.php
@@ -0,0 +1,523 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return EssentialContactsServiceClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new EssentialContactsServiceClient($options);
+ }
+
+ /** @test */
+ public function computeContactsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $contactsElement = new Contact();
+ $contacts = [
+ $contactsElement,
+ ];
+ $expectedResponse = new ComputeContactsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setContacts($contacts);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->projectName('[PROJECT]');
+ $response = $gapicClient->computeContacts($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getContacts()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.essentialcontacts.v1.EssentialContactsService/ComputeContacts', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function computeContactsExceptionTest()
+ {
+ $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->projectName('[PROJECT]');
+ try {
+ $gapicClient->computeContacts($formattedParent);
+ // 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 createContactTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $email = 'email96619420';
+ $languageTag = 'languageTag-2091510221';
+ $expectedResponse = new Contact();
+ $expectedResponse->setName($name);
+ $expectedResponse->setEmail($email);
+ $expectedResponse->setLanguageTag($languageTag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->projectName('[PROJECT]');
+ $contact = new Contact();
+ $response = $gapicClient->createContact($formattedParent, $contact);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.essentialcontacts.v1.EssentialContactsService/CreateContact', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getContact();
+ $this->assertProtobufEquals($contact, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createContactExceptionTest()
+ {
+ $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->projectName('[PROJECT]');
+ $contact = new Contact();
+ try {
+ $gapicClient->createContact($formattedParent, $contact);
+ // 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 deleteContactTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->contactName('[PROJECT]', '[CONTACT]');
+ $gapicClient->deleteContact($formattedName);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.essentialcontacts.v1.EssentialContactsService/DeleteContact', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteContactExceptionTest()
+ {
+ $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->contactName('[PROJECT]', '[CONTACT]');
+ try {
+ $gapicClient->deleteContact($formattedName);
+ // 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 getContactTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $email = 'email96619420';
+ $languageTag = 'languageTag-2091510221';
+ $expectedResponse = new Contact();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setEmail($email);
+ $expectedResponse->setLanguageTag($languageTag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->contactName('[PROJECT]', '[CONTACT]');
+ $response = $gapicClient->getContact($formattedName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.essentialcontacts.v1.EssentialContactsService/GetContact', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getContactExceptionTest()
+ {
+ $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->contactName('[PROJECT]', '[CONTACT]');
+ try {
+ $gapicClient->getContact($formattedName);
+ // 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 listContactsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $contactsElement = new Contact();
+ $contacts = [
+ $contactsElement,
+ ];
+ $expectedResponse = new ListContactsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setContacts($contacts);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->projectName('[PROJECT]');
+ $response = $gapicClient->listContacts($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getContacts()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.essentialcontacts.v1.EssentialContactsService/ListContacts', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listContactsExceptionTest()
+ {
+ $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->projectName('[PROJECT]');
+ try {
+ $gapicClient->listContacts($formattedParent);
+ // 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 sendTestMessageTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedContacts = [
+ $gapicClient->contactName('[PROJECT]', '[CONTACT]'),
+ ];
+ $formattedResource = $gapicClient->projectName('[PROJECT]');
+ $notificationCategory = NotificationCategory::NOTIFICATION_CATEGORY_UNSPECIFIED;
+ $gapicClient->sendTestMessage($formattedContacts, $formattedResource, $notificationCategory);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.essentialcontacts.v1.EssentialContactsService/SendTestMessage', $actualFuncCall);
+ $actualValue = $actualRequestObject->getContacts();
+ $this->assertProtobufEquals($formattedContacts, $actualValue);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($formattedResource, $actualValue);
+ $actualValue = $actualRequestObject->getNotificationCategory();
+ $this->assertProtobufEquals($notificationCategory, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function sendTestMessageExceptionTest()
+ {
+ $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
+ $formattedContacts = [
+ $gapicClient->contactName('[PROJECT]', '[CONTACT]'),
+ ];
+ $formattedResource = $gapicClient->projectName('[PROJECT]');
+ $notificationCategory = NotificationCategory::NOTIFICATION_CATEGORY_UNSPECIFIED;
+ try {
+ $gapicClient->sendTestMessage($formattedContacts, $formattedResource, $notificationCategory);
+ // 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 updateContactTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $email = 'email96619420';
+ $languageTag = 'languageTag-2091510221';
+ $expectedResponse = new Contact();
+ $expectedResponse->setName($name);
+ $expectedResponse->setEmail($email);
+ $expectedResponse->setLanguageTag($languageTag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $contact = new Contact();
+ $response = $gapicClient->updateContact($contact);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.essentialcontacts.v1.EssentialContactsService/UpdateContact', $actualFuncCall);
+ $actualValue = $actualRequestObject->getContact();
+ $this->assertProtobufEquals($contact, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateContactExceptionTest()
+ {
+ $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
+ $contact = new Contact();
+ try {
+ $gapicClient->updateContact($contact);
+ // 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());
+ }
+}
diff --git a/owl-bot-staging/EventarcPublishing/v1/proto/src/GPBMetadata/Google/Cloud/Eventarc/Publishing/V1/Publisher.php b/owl-bot-staging/EventarcPublishing/v1/proto/src/GPBMetadata/Google/Cloud/Eventarc/Publishing/V1/Publisher.php
new file mode 100644
index 000000000000..026594dd2e33
--- /dev/null
+++ b/owl-bot-staging/EventarcPublishing/v1/proto/src/GPBMetadata/Google/Cloud/Eventarc/Publishing/V1/Publisher.php
@@ -0,0 +1,44 @@
+internalAddGeneratedFile(
+ '
+
+
+3google/cloud/eventarc/publishing/v1/publisher.proto#google.cloud.eventarc.publishing.v1google/api/client.protogoogle/protobuf/any.proto"~
+%PublishChannelConnectionEventsRequest
+channel_connection ( $
+events (2.google.protobuf.Any
+text_events ( "(
+&PublishChannelConnectionEventsResponse"b
+PublishEventsRequest
+channel ( $
+events (2.google.protobuf.Any
+text_events ( "
+PublishEventsResponse2Ð
+ Publisher˜
+PublishChannelConnectionEventsJ.google.cloud.eventarc.publishing.v1.PublishChannelConnectionEventsRequestK.google.cloud.eventarc.publishing.v1.PublishChannelConnectionEventsResponse"]‚Óä“W"R/v1/{channel_connection=projects/*/locations/*/channelConnections/*}:publishEvents:*Ð
+
PublishEvents9.google.cloud.eventarc.publishing.v1.PublishEventsRequest:.google.cloud.eventarc.publishing.v1.PublishEventsResponse"H‚Óä“B"=/v1/{channel=projects/*/locations/*/channels/*}:publishEvents:*UÊA!eventarcpublishing.googleapis.comÒA.https://www.googleapis.com/auth/cloud-platformBú
+\'com.google.cloud.eventarc.publishing.v1BPublisherProtoPZGcloud.google.com/go/eventarc/publishing/apiv1/publishingpb;publishingpbª#Google.Cloud.Eventarc.Publishing.V1Ê#Google\\Cloud\\Eventarc\\Publishing\\V1ê\'Google::Cloud::Eventarc::Publishing::V1bproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/owl-bot-staging/EventarcPublishing/v1/proto/src/Google/Cloud/Eventarc/Publishing/V1/PublishChannelConnectionEventsRequest.php b/owl-bot-staging/EventarcPublishing/v1/proto/src/Google/Cloud/Eventarc/Publishing/V1/PublishChannelConnectionEventsRequest.php
new file mode 100644
index 000000000000..79180267cebb
--- /dev/null
+++ b/owl-bot-staging/EventarcPublishing/v1/proto/src/Google/Cloud/Eventarc/Publishing/V1/PublishChannelConnectionEventsRequest.php
@@ -0,0 +1,159 @@
+google.cloud.eventarc.publishing.v1.PublishChannelConnectionEventsRequest
+ */
+class PublishChannelConnectionEventsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The channel_connection that the events are published from. For example:
+ * `projects/{partner_project_id}/locations/{location}/channelConnections/{channel_connection_id}`.
+ *
+ * Generated from protobuf field string channel_connection = 1;
+ */
+ protected $channel_connection = '';
+ /**
+ * The CloudEvents v1.0 events to publish. No other types are allowed.
+ * If this field is set, then the `text_events` fields must not be set.
+ *
+ * Generated from protobuf field repeated .google.protobuf.Any events = 2;
+ */
+ private $events;
+ /**
+ * The text representation of events to publish.
+ * CloudEvent v1.0 in JSON format is the only allowed type. Refer to
+ * https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/formats/json-format.md
+ * for specification.
+ * If this field is set, then the `events` fields must not be set.
+ *
+ * Generated from protobuf field repeated string text_events = 3;
+ */
+ private $text_events;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $channel_connection
+ * The channel_connection that the events are published from. For example:
+ * `projects/{partner_project_id}/locations/{location}/channelConnections/{channel_connection_id}`.
+ * @type array<\Google\Protobuf\Any>|\Google\Protobuf\Internal\RepeatedField $events
+ * The CloudEvents v1.0 events to publish. No other types are allowed.
+ * If this field is set, then the `text_events` fields must not be set.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $text_events
+ * The text representation of events to publish.
+ * CloudEvent v1.0 in JSON format is the only allowed type. Refer to
+ * https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/formats/json-format.md
+ * for specification.
+ * If this field is set, then the `events` fields must not be set.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Eventarc\Publishing\V1\Publisher::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The channel_connection that the events are published from. For example:
+ * `projects/{partner_project_id}/locations/{location}/channelConnections/{channel_connection_id}`.
+ *
+ * Generated from protobuf field string channel_connection = 1;
+ * @return string
+ */
+ public function getChannelConnection()
+ {
+ return $this->channel_connection;
+ }
+
+ /**
+ * The channel_connection that the events are published from. For example:
+ * `projects/{partner_project_id}/locations/{location}/channelConnections/{channel_connection_id}`.
+ *
+ * Generated from protobuf field string channel_connection = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setChannelConnection($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->channel_connection = $var;
+
+ return $this;
+ }
+
+ /**
+ * The CloudEvents v1.0 events to publish. No other types are allowed.
+ * If this field is set, then the `text_events` fields must not be set.
+ *
+ * Generated from protobuf field repeated .google.protobuf.Any events = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getEvents()
+ {
+ return $this->events;
+ }
+
+ /**
+ * The CloudEvents v1.0 events to publish. No other types are allowed.
+ * If this field is set, then the `text_events` fields must not be set.
+ *
+ * Generated from protobuf field repeated .google.protobuf.Any events = 2;
+ * @param array<\Google\Protobuf\Any>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setEvents($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Any::class);
+ $this->events = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The text representation of events to publish.
+ * CloudEvent v1.0 in JSON format is the only allowed type. Refer to
+ * https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/formats/json-format.md
+ * for specification.
+ * If this field is set, then the `events` fields must not be set.
+ *
+ * Generated from protobuf field repeated string text_events = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTextEvents()
+ {
+ return $this->text_events;
+ }
+
+ /**
+ * The text representation of events to publish.
+ * CloudEvent v1.0 in JSON format is the only allowed type. Refer to
+ * https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/formats/json-format.md
+ * for specification.
+ * If this field is set, then the `events` fields must not be set.
+ *
+ * Generated from protobuf field repeated string text_events = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTextEvents($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->text_events = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/EventarcPublishing/v1/proto/src/Google/Cloud/Eventarc/Publishing/V1/PublishChannelConnectionEventsResponse.php b/owl-bot-staging/EventarcPublishing/v1/proto/src/Google/Cloud/Eventarc/Publishing/V1/PublishChannelConnectionEventsResponse.php
new file mode 100644
index 000000000000..6a7494facfc6
--- /dev/null
+++ b/owl-bot-staging/EventarcPublishing/v1/proto/src/Google/Cloud/Eventarc/Publishing/V1/PublishChannelConnectionEventsResponse.php
@@ -0,0 +1,33 @@
+google.cloud.eventarc.publishing.v1.PublishChannelConnectionEventsResponse
+ */
+class PublishChannelConnectionEventsResponse extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Eventarc\Publishing\V1\Publisher::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/EventarcPublishing/v1/proto/src/Google/Cloud/Eventarc/Publishing/V1/PublishEventsRequest.php b/owl-bot-staging/EventarcPublishing/v1/proto/src/Google/Cloud/Eventarc/Publishing/V1/PublishEventsRequest.php
new file mode 100644
index 000000000000..f5c6a6cfa164
--- /dev/null
+++ b/owl-bot-staging/EventarcPublishing/v1/proto/src/Google/Cloud/Eventarc/Publishing/V1/PublishEventsRequest.php
@@ -0,0 +1,159 @@
+google.cloud.eventarc.publishing.v1.PublishEventsRequest
+ */
+class PublishEventsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The full name of the channel to publish to. For example:
+ * `projects/{project}/locations/{location}/channels/{channel-id}`.
+ *
+ * Generated from protobuf field string channel = 1;
+ */
+ protected $channel = '';
+ /**
+ * The CloudEvents v1.0 events to publish. No other types are allowed.
+ * If this field is set, then the `text_events` fields must not be set.
+ *
+ * Generated from protobuf field repeated .google.protobuf.Any events = 2;
+ */
+ private $events;
+ /**
+ * The text representation of events to publish.
+ * CloudEvent v1.0 in JSON format is the only allowed type. Refer to
+ * https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/formats/json-format.md
+ * for specification.
+ * If this field is set, then the `events` fields must not be set.
+ *
+ * Generated from protobuf field repeated string text_events = 3;
+ */
+ private $text_events;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $channel
+ * The full name of the channel to publish to. For example:
+ * `projects/{project}/locations/{location}/channels/{channel-id}`.
+ * @type array<\Google\Protobuf\Any>|\Google\Protobuf\Internal\RepeatedField $events
+ * The CloudEvents v1.0 events to publish. No other types are allowed.
+ * If this field is set, then the `text_events` fields must not be set.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $text_events
+ * The text representation of events to publish.
+ * CloudEvent v1.0 in JSON format is the only allowed type. Refer to
+ * https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/formats/json-format.md
+ * for specification.
+ * If this field is set, then the `events` fields must not be set.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Eventarc\Publishing\V1\Publisher::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The full name of the channel to publish to. For example:
+ * `projects/{project}/locations/{location}/channels/{channel-id}`.
+ *
+ * Generated from protobuf field string channel = 1;
+ * @return string
+ */
+ public function getChannel()
+ {
+ return $this->channel;
+ }
+
+ /**
+ * The full name of the channel to publish to. For example:
+ * `projects/{project}/locations/{location}/channels/{channel-id}`.
+ *
+ * Generated from protobuf field string channel = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setChannel($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->channel = $var;
+
+ return $this;
+ }
+
+ /**
+ * The CloudEvents v1.0 events to publish. No other types are allowed.
+ * If this field is set, then the `text_events` fields must not be set.
+ *
+ * Generated from protobuf field repeated .google.protobuf.Any events = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getEvents()
+ {
+ return $this->events;
+ }
+
+ /**
+ * The CloudEvents v1.0 events to publish. No other types are allowed.
+ * If this field is set, then the `text_events` fields must not be set.
+ *
+ * Generated from protobuf field repeated .google.protobuf.Any events = 2;
+ * @param array<\Google\Protobuf\Any>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setEvents($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Any::class);
+ $this->events = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The text representation of events to publish.
+ * CloudEvent v1.0 in JSON format is the only allowed type. Refer to
+ * https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/formats/json-format.md
+ * for specification.
+ * If this field is set, then the `events` fields must not be set.
+ *
+ * Generated from protobuf field repeated string text_events = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTextEvents()
+ {
+ return $this->text_events;
+ }
+
+ /**
+ * The text representation of events to publish.
+ * CloudEvent v1.0 in JSON format is the only allowed type. Refer to
+ * https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/formats/json-format.md
+ * for specification.
+ * If this field is set, then the `events` fields must not be set.
+ *
+ * Generated from protobuf field repeated string text_events = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTextEvents($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->text_events = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/EventarcPublishing/v1/proto/src/Google/Cloud/Eventarc/Publishing/V1/PublishEventsResponse.php b/owl-bot-staging/EventarcPublishing/v1/proto/src/Google/Cloud/Eventarc/Publishing/V1/PublishEventsResponse.php
new file mode 100644
index 000000000000..4291ac3bfd78
--- /dev/null
+++ b/owl-bot-staging/EventarcPublishing/v1/proto/src/Google/Cloud/Eventarc/Publishing/V1/PublishEventsResponse.php
@@ -0,0 +1,33 @@
+google.cloud.eventarc.publishing.v1.PublishEventsResponse
+ */
+class PublishEventsResponse extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Eventarc\Publishing\V1\Publisher::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/EventarcPublishing/v1/proto/src/Google/Cloud/Eventarc/Publishing/V1/PublisherGrpcClient.php b/owl-bot-staging/EventarcPublishing/v1/proto/src/Google/Cloud/Eventarc/Publishing/V1/PublisherGrpcClient.php
new file mode 100644
index 000000000000..53e8b7edf935
--- /dev/null
+++ b/owl-bot-staging/EventarcPublishing/v1/proto/src/Google/Cloud/Eventarc/Publishing/V1/PublisherGrpcClient.php
@@ -0,0 +1,87 @@
+_simpleRequest('/google.cloud.eventarc.publishing.v1.Publisher/PublishChannelConnectionEvents',
+ $argument,
+ ['\Google\Cloud\Eventarc\Publishing\V1\PublishChannelConnectionEventsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+ /**
+ * Publish events to a subscriber's channel.
+ * @param \Google\Cloud\Eventarc\Publishing\V1\PublishEventsRequest $argument input argument
+ * @param array $metadata metadata
+ * @param array $options call options
+ * @return \Grpc\UnaryCall
+ */
+ public function PublishEvents(\Google\Cloud\Eventarc\Publishing\V1\PublishEventsRequest $argument,
+ $metadata = [], $options = []) {
+ return $this->_simpleRequest('/google.cloud.eventarc.publishing.v1.Publisher/PublishEvents',
+ $argument,
+ ['\Google\Cloud\Eventarc\Publishing\V1\PublishEventsResponse', 'decode'],
+ $metadata, $options);
+ }
+
+}
diff --git a/owl-bot-staging/EventarcPublishing/v1/samples/V1/PublisherClient/publish_channel_connection_events.php b/owl-bot-staging/EventarcPublishing/v1/samples/V1/PublisherClient/publish_channel_connection_events.php
new file mode 100644
index 000000000000..8c76a6070404
--- /dev/null
+++ b/owl-bot-staging/EventarcPublishing/v1/samples/V1/PublisherClient/publish_channel_connection_events.php
@@ -0,0 +1,57 @@
+publishChannelConnectionEvents($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END eventarcpublishing_v1_generated_Publisher_PublishChannelConnectionEvents_sync]
diff --git a/owl-bot-staging/EventarcPublishing/v1/samples/V1/PublisherClient/publish_events.php b/owl-bot-staging/EventarcPublishing/v1/samples/V1/PublisherClient/publish_events.php
new file mode 100644
index 000000000000..aae1a0668c60
--- /dev/null
+++ b/owl-bot-staging/EventarcPublishing/v1/samples/V1/PublisherClient/publish_events.php
@@ -0,0 +1,57 @@
+publishEvents($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END eventarcpublishing_v1_generated_Publisher_PublishEvents_sync]
diff --git a/owl-bot-staging/EventarcPublishing/v1/src/V1/Client/BaseClient/PublisherBaseClient.php b/owl-bot-staging/EventarcPublishing/v1/src/V1/Client/BaseClient/PublisherBaseClient.php
new file mode 100644
index 000000000000..7a47d1e8bb3b
--- /dev/null
+++ b/owl-bot-staging/EventarcPublishing/v1/src/V1/Client/BaseClient/PublisherBaseClient.php
@@ -0,0 +1,237 @@
+ self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../../resources/publisher_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../../resources/publisher_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../../resources/publisher_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../../resources/publisher_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 'eventarcpublishing.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
+ */
+ 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);
+ }
+
+ /**
+ * Publish events to a ChannelConnection in a partner's project.
+ *
+ * The async variant is {@see self::publishChannelConnectionEventsAsync()} .
+ *
+ * @param PublishChannelConnectionEventsRequest $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 PublishChannelConnectionEventsResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function publishChannelConnectionEvents(PublishChannelConnectionEventsRequest $request, array $callOptions = []): PublishChannelConnectionEventsResponse
+ {
+ return $this->startApiCall('PublishChannelConnectionEvents', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Publish events to a subscriber's channel.
+ *
+ * The async variant is {@see self::publishEventsAsync()} .
+ *
+ * @param PublishEventsRequest $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 PublishEventsResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function publishEvents(PublishEventsRequest $request, array $callOptions = []): PublishEventsResponse
+ {
+ return $this->startApiCall('PublishEvents', $request, $callOptions)->wait();
+ }
+}
diff --git a/owl-bot-staging/EventarcPublishing/v1/src/V1/Client/PublisherClient.php b/owl-bot-staging/EventarcPublishing/v1/src/V1/Client/PublisherClient.php
new file mode 100644
index 000000000000..353777a80665
--- /dev/null
+++ b/owl-bot-staging/EventarcPublishing/v1/src/V1/Client/PublisherClient.php
@@ -0,0 +1,40 @@
+publishChannelConnectionEvents();
+ * } finally {
+ * $publisherClient->close();
+ * }
+ * ```
+ */
+class PublisherGapicClient
+{
+ use GapicClientTrait;
+
+ /** The name of the service. */
+ const SERVICE_NAME = 'google.cloud.eventarc.publishing.v1.Publisher';
+
+ /** The default address of the service. */
+ const SERVICE_ADDRESS = 'eventarcpublishing.googleapis.com';
+
+ /** 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/publisher_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/publisher_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/publisher_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/publisher_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 'eventarcpublishing.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
+ */
+ public function __construct(array $options = [])
+ {
+ $clientOptions = $this->buildClientOptions($options);
+ $this->setClientOptions($clientOptions);
+ }
+
+ /**
+ * Publish events to a ChannelConnection in a partner's project.
+ *
+ * Sample code:
+ * ```
+ * $publisherClient = new PublisherClient();
+ * try {
+ * $response = $publisherClient->publishChannelConnectionEvents();
+ * } finally {
+ * $publisherClient->close();
+ * }
+ * ```
+ *
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $channelConnection
+ * The channel_connection that the events are published from. For example:
+ * `projects/{partner_project_id}/locations/{location}/channelConnections/{channel_connection_id}`.
+ * @type Any[] $events
+ * The CloudEvents v1.0 events to publish. No other types are allowed.
+ * If this field is set, then the `text_events` fields must not be set.
+ * @type string[] $textEvents
+ * The text representation of events to publish.
+ * CloudEvent v1.0 in JSON format is the only allowed type. Refer to
+ * https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/formats/json-format.md
+ * for specification.
+ * If this field is set, then the `events` fields must not be set.
+ * @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 \Google\Cloud\Eventarc\Publishing\V1\PublishChannelConnectionEventsResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function publishChannelConnectionEvents(array $optionalArgs = [])
+ {
+ $request = new PublishChannelConnectionEventsRequest();
+ $requestParamHeaders = [];
+ if (isset($optionalArgs['channelConnection'])) {
+ $request->setChannelConnection($optionalArgs['channelConnection']);
+ $requestParamHeaders['channel_connection'] = $optionalArgs['channelConnection'];
+ }
+
+ if (isset($optionalArgs['events'])) {
+ $request->setEvents($optionalArgs['events']);
+ }
+
+ if (isset($optionalArgs['textEvents'])) {
+ $request->setTextEvents($optionalArgs['textEvents']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('PublishChannelConnectionEvents', PublishChannelConnectionEventsResponse::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Publish events to a subscriber's channel.
+ *
+ * Sample code:
+ * ```
+ * $publisherClient = new PublisherClient();
+ * try {
+ * $response = $publisherClient->publishEvents();
+ * } finally {
+ * $publisherClient->close();
+ * }
+ * ```
+ *
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $channel
+ * The full name of the channel to publish to. For example:
+ * `projects/{project}/locations/{location}/channels/{channel-id}`.
+ * @type Any[] $events
+ * The CloudEvents v1.0 events to publish. No other types are allowed.
+ * If this field is set, then the `text_events` fields must not be set.
+ * @type string[] $textEvents
+ * The text representation of events to publish.
+ * CloudEvent v1.0 in JSON format is the only allowed type. Refer to
+ * https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/formats/json-format.md
+ * for specification.
+ * If this field is set, then the `events` fields must not be set.
+ * @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 \Google\Cloud\Eventarc\Publishing\V1\PublishEventsResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function publishEvents(array $optionalArgs = [])
+ {
+ $request = new PublishEventsRequest();
+ $requestParamHeaders = [];
+ if (isset($optionalArgs['channel'])) {
+ $request->setChannel($optionalArgs['channel']);
+ $requestParamHeaders['channel'] = $optionalArgs['channel'];
+ }
+
+ if (isset($optionalArgs['events'])) {
+ $request->setEvents($optionalArgs['events']);
+ }
+
+ if (isset($optionalArgs['textEvents'])) {
+ $request->setTextEvents($optionalArgs['textEvents']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('PublishEvents', PublishEventsResponse::class, $optionalArgs, $request)->wait();
+ }
+}
diff --git a/owl-bot-staging/EventarcPublishing/v1/src/V1/PublisherClient.php b/owl-bot-staging/EventarcPublishing/v1/src/V1/PublisherClient.php
new file mode 100644
index 000000000000..c5d913b397f5
--- /dev/null
+++ b/owl-bot-staging/EventarcPublishing/v1/src/V1/PublisherClient.php
@@ -0,0 +1,34 @@
+ [
+ 'google.cloud.eventarc.publishing.v1.Publisher' => [
+ 'PublishChannelConnectionEvents' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Eventarc\Publishing\V1\PublishChannelConnectionEventsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'channel_connection',
+ 'fieldAccessors' => [
+ 'getChannelConnection',
+ ],
+ ],
+ ],
+ ],
+ 'PublishEvents' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Eventarc\Publishing\V1\PublishEventsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'channel',
+ 'fieldAccessors' => [
+ 'getChannel',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/EventarcPublishing/v1/src/V1/resources/publisher_rest_client_config.php b/owl-bot-staging/EventarcPublishing/v1/src/V1/resources/publisher_rest_client_config.php
new file mode 100644
index 000000000000..2c4ad8b6ef1c
--- /dev/null
+++ b/owl-bot-staging/EventarcPublishing/v1/src/V1/resources/publisher_rest_client_config.php
@@ -0,0 +1,33 @@
+ [
+ 'google.cloud.eventarc.publishing.v1.Publisher' => [
+ 'PublishChannelConnectionEvents' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{channel_connection=projects/*/locations/*/channelConnections/*}:publishEvents',
+ 'body' => '*',
+ 'placeholders' => [
+ 'channel_connection' => [
+ 'getters' => [
+ 'getChannelConnection',
+ ],
+ ],
+ ],
+ ],
+ 'PublishEvents' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{channel=projects/*/locations/*/channels/*}:publishEvents',
+ 'body' => '*',
+ 'placeholders' => [
+ 'channel' => [
+ 'getters' => [
+ 'getChannel',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'numericEnums' => true,
+];
diff --git a/owl-bot-staging/EventarcPublishing/v1/tests/Unit/V1/Client/PublisherClientTest.php b/owl-bot-staging/EventarcPublishing/v1/tests/Unit/V1/Client/PublisherClientTest.php
new file mode 100644
index 000000000000..39e04dec518f
--- /dev/null
+++ b/owl-bot-staging/EventarcPublishing/v1/tests/Unit/V1/Client/PublisherClientTest.php
@@ -0,0 +1,194 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return PublisherClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new PublisherClient($options);
+ }
+
+ /** @test */
+ public function publishChannelConnectionEventsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new PublishChannelConnectionEventsResponse();
+ $transport->addResponse($expectedResponse);
+ $request = new PublishChannelConnectionEventsRequest();
+ $response = $gapicClient->publishChannelConnectionEvents($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.eventarc.publishing.v1.Publisher/PublishChannelConnectionEvents', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function publishChannelConnectionEventsExceptionTest()
+ {
+ $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 PublishChannelConnectionEventsRequest();
+ try {
+ $gapicClient->publishChannelConnectionEvents($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 publishEventsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new PublishEventsResponse();
+ $transport->addResponse($expectedResponse);
+ $request = new PublishEventsRequest();
+ $response = $gapicClient->publishEvents($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.eventarc.publishing.v1.Publisher/PublishEvents', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function publishEventsExceptionTest()
+ {
+ $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 PublishEventsRequest();
+ try {
+ $gapicClient->publishEvents($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 publishChannelConnectionEventsAsyncTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new PublishChannelConnectionEventsResponse();
+ $transport->addResponse($expectedResponse);
+ $request = new PublishChannelConnectionEventsRequest();
+ $response = $gapicClient->publishChannelConnectionEventsAsync($request)->wait();
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.eventarc.publishing.v1.Publisher/PublishChannelConnectionEvents', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+}
diff --git a/owl-bot-staging/EventarcPublishing/v1/tests/Unit/V1/PublisherClientTest.php b/owl-bot-staging/EventarcPublishing/v1/tests/Unit/V1/PublisherClientTest.php
new file mode 100644
index 000000000000..22b9275862a8
--- /dev/null
+++ b/owl-bot-staging/EventarcPublishing/v1/tests/Unit/V1/PublisherClientTest.php
@@ -0,0 +1,166 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return PublisherClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new PublisherClient($options);
+ }
+
+ /** @test */
+ public function publishChannelConnectionEventsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new PublishChannelConnectionEventsResponse();
+ $transport->addResponse($expectedResponse);
+ $response = $gapicClient->publishChannelConnectionEvents();
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.eventarc.publishing.v1.Publisher/PublishChannelConnectionEvents', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function publishChannelConnectionEventsExceptionTest()
+ {
+ $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);
+ try {
+ $gapicClient->publishChannelConnectionEvents();
+ // 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 publishEventsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new PublishEventsResponse();
+ $transport->addResponse($expectedResponse);
+ $response = $gapicClient->publishEvents();
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.eventarc.publishing.v1.Publisher/PublishEvents', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function publishEventsExceptionTest()
+ {
+ $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);
+ try {
+ $gapicClient->publishEvents();
+ // 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());
+ }
+}
diff --git a/owl-bot-staging/GSuiteAddOns/v1/proto/src/GPBMetadata/Google/Cloud/Gsuiteaddons/V1/Gsuiteaddons.php b/owl-bot-staging/GSuiteAddOns/v1/proto/src/GPBMetadata/Google/Cloud/Gsuiteaddons/V1/Gsuiteaddons.php
new file mode 100644
index 000000000000..b3872fe3224b
--- /dev/null
+++ b/owl-bot-staging/GSuiteAddOns/v1/proto/src/GPBMetadata/Google/Cloud/Gsuiteaddons/V1/Gsuiteaddons.php
@@ -0,0 +1,116 @@
+internalAddGeneratedFile(
+ '
+š%
+/google/cloud/gsuiteaddons/v1/gsuiteaddons.protogoogle.cloud.gsuiteaddons.v1google/api/client.protogoogle/api/field_behavior.protogoogle/api/resource.proto>google/apps/script/type/calendar/calendar_addon_manifest.proto6google/apps/script/type/docs/docs_addon_manifest.proto8google/apps/script/type/drive/drive_addon_manifest.proto8google/apps/script/type/gmail/gmail_addon_manifest.proto-google/apps/script/type/script_manifest.proto:google/apps/script/type/sheets/sheets_addon_manifest.proto:google/apps/script/type/slides/slides_addon_manifest.protogoogle/protobuf/empty.protogoogle/protobuf/wrappers.proto"Z
+GetAuthorizationRequest?
+name ( B1àAúA+
+)gsuiteaddons.googleapis.com/Authorization"§
+
Authorization
+name (
+service_account_email (
+oauth_client_id ( :PêAM
+)gsuiteaddons.googleapis.com/Authorization projects/{project}/authorization"½
+CreateDeploymentRequestC
+parent ( B3àAúA-
++cloudresourcemanager.googleapis.com/Project
+
deployment_id ( BàAA
+
+deployment (2(.google.cloud.gsuiteaddons.v1.DeploymentBàA"]
+ReplaceDeploymentRequestA
+
+deployment (2(.google.cloud.gsuiteaddons.v1.DeploymentBàA"T
+GetDeploymentRequest<
+name ( B.àAúA(
+&gsuiteaddons.googleapis.com/Deployment"„
+ListDeploymentsRequestC
+parent ( B3àAúA-
++cloudresourcemanager.googleapis.com/Project
+ page_size (
+
+page_token ( "q
+ListDeploymentsResponse=
+deployments (2(.google.cloud.gsuiteaddons.v1.Deployment
+next_page_token ( "e
+DeleteDeploymentRequest<
+name ( B.àAúA(
+&gsuiteaddons.googleapis.com/Deployment
+etag ( "X
+InstallDeploymentRequest<
+name ( B.àAúA(
+&gsuiteaddons.googleapis.com/Deployment"Z
+UninstallDeploymentRequest<
+name ( B.àAúA(
+&gsuiteaddons.googleapis.com/Deployment"Z
+GetInstallStatusRequest?
+name ( B1àAúA+
+)gsuiteaddons.googleapis.com/InstallStatus"·
+
InstallStatus
+name ( -
+ installed (2.google.protobuf.BoolValue:iêAf
+)gsuiteaddons.googleapis.com/InstallStatus9projects/{project}/deployments/{deployment}/installStatus"Ï
+
+Deployment
+name (
+oauth_scopes ( 5
+add_ons (2$.google.cloud.gsuiteaddons.v1.AddOns
+etag ( :XêAU
+&gsuiteaddons.googleapis.com/Deployment+projects/{project}/deployments/{deployment}"š
+AddOns<
+common (2,.google.apps.script.type.CommonAddOnManifest@
+gmail (21.google.apps.script.type.gmail.GmailAddOnManifest@
+drive (21.google.apps.script.type.drive.DriveAddOnManifestI
+calendar (27.google.apps.script.type.calendar.CalendarAddOnManifest=
+docs (2/.google.apps.script.type.docs.DocsAddOnManifestC
+sheets (23.google.apps.script.type.sheets.SheetsAddOnManifestC
+slides
+ (23.google.apps.script.type.slides.SlidesAddOnManifest:
+http_options (2$.google.apps.script.type.HttpOptions2¤
+GSuiteAddOnsª
+GetAuthorization5.google.cloud.gsuiteaddons.v1.GetAuthorizationRequest+.google.cloud.gsuiteaddons.v1.Authorization"2‚Óä“%#/v1/{name=projects/*/authorization}ÚAnameÎ
+CreateDeployment5.google.cloud.gsuiteaddons.v1.CreateDeploymentRequest(.google.cloud.gsuiteaddons.v1.Deployment"Y‚Óä“1"#/v1/{parent=projects/*}/deployments:
+deploymentÚAparent,deployment,deployment_idÆ
+ReplaceDeployment6.google.cloud.gsuiteaddons.v1.ReplaceDeploymentRequest(.google.cloud.gsuiteaddons.v1.Deployment"O‚Óä“<./v1/{deployment.name=projects/*/deployments/*}:
+deploymentÚA
+deployment¡
+
GetDeployment2.google.cloud.gsuiteaddons.v1.GetDeploymentRequest(.google.cloud.gsuiteaddons.v1.Deployment"2‚Óä“%#/v1/{name=projects/*/deployments/*}ÚAname´
+ListDeployments4.google.cloud.gsuiteaddons.v1.ListDeploymentsRequest5.google.cloud.gsuiteaddons.v1.ListDeploymentsResponse"4‚Óä“%#/v1/{parent=projects/*}/deploymentsÚAparent•
+DeleteDeployment5.google.cloud.gsuiteaddons.v1.DeleteDeploymentRequest.google.protobuf.Empty"2‚Óä“%*#/v1/{name=projects/*/deployments/*}ÚAname¢
+InstallDeployment6.google.cloud.gsuiteaddons.v1.InstallDeploymentRequest.google.protobuf.Empty"=‚Óä“0"+/v1/{name=projects/*/deployments/*}:install:*ÚAname¨
+UninstallDeployment8.google.cloud.gsuiteaddons.v1.UninstallDeploymentRequest.google.protobuf.Empty"?‚Óä“2"-/v1/{name=projects/*/deployments/*}:uninstall:*ÚAname¸
+GetInstallStatus5.google.cloud.gsuiteaddons.v1.GetInstallStatusRequest+.google.cloud.gsuiteaddons.v1.InstallStatus"@‚Óä“31/v1/{name=projects/*/deployments/*/installStatus}ÚAnameOÊAgsuiteaddons.googleapis.comÒA.https://www.googleapis.com/auth/cloud-platformBÝ
+ com.google.cloud.gsuiteaddons.v1BGSuiteAddOnsProtoPZDcloud.google.com/go/gsuiteaddons/apiv1/gsuiteaddonspb;gsuiteaddonspbªGoogle.Cloud.GSuiteAddOns.V1ÊGoogle\\Cloud\\GSuiteAddOns\\V1êGoogle::Cloud::GSuiteAddOns::V1bproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/owl-bot-staging/GSuiteAddOns/v1/proto/src/Google/Cloud/GSuiteAddOns/V1/AddOns.php b/owl-bot-staging/GSuiteAddOns/v1/proto/src/Google/Cloud/GSuiteAddOns/V1/AddOns.php
new file mode 100644
index 000000000000..e03bb68d1fd1
--- /dev/null
+++ b/owl-bot-staging/GSuiteAddOns/v1/proto/src/Google/Cloud/GSuiteAddOns/V1/AddOns.php
@@ -0,0 +1,385 @@
+google.cloud.gsuiteaddons.v1.AddOns
+ */
+class AddOns extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Configuration that is common across all Google Workspace Add-ons.
+ *
+ * Generated from protobuf field .google.apps.script.type.CommonAddOnManifest common = 1;
+ */
+ protected $common = null;
+ /**
+ * Gmail add-on configuration.
+ *
+ * Generated from protobuf field .google.apps.script.type.gmail.GmailAddOnManifest gmail = 2;
+ */
+ protected $gmail = null;
+ /**
+ * Drive add-on configuration.
+ *
+ * Generated from protobuf field .google.apps.script.type.drive.DriveAddOnManifest drive = 5;
+ */
+ protected $drive = null;
+ /**
+ * Calendar add-on configuration.
+ *
+ * Generated from protobuf field .google.apps.script.type.calendar.CalendarAddOnManifest calendar = 6;
+ */
+ protected $calendar = null;
+ /**
+ * Docs add-on configuration.
+ *
+ * Generated from protobuf field .google.apps.script.type.docs.DocsAddOnManifest docs = 7;
+ */
+ protected $docs = null;
+ /**
+ * Sheets add-on configuration.
+ *
+ * Generated from protobuf field .google.apps.script.type.sheets.SheetsAddOnManifest sheets = 8;
+ */
+ protected $sheets = null;
+ /**
+ * Slides add-on configuration.
+ *
+ * Generated from protobuf field .google.apps.script.type.slides.SlidesAddOnManifest slides = 10;
+ */
+ protected $slides = null;
+ /**
+ * Options for sending requests to add-on HTTP endpoints
+ *
+ * Generated from protobuf field .google.apps.script.type.HttpOptions http_options = 15;
+ */
+ protected $http_options = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Apps\Script\Type\CommonAddOnManifest $common
+ * Configuration that is common across all Google Workspace Add-ons.
+ * @type \Google\Apps\Script\Type\Gmail\GmailAddOnManifest $gmail
+ * Gmail add-on configuration.
+ * @type \Google\Apps\Script\Type\Drive\DriveAddOnManifest $drive
+ * Drive add-on configuration.
+ * @type \Google\Apps\Script\Type\Calendar\CalendarAddOnManifest $calendar
+ * Calendar add-on configuration.
+ * @type \Google\Apps\Script\Type\Docs\DocsAddOnManifest $docs
+ * Docs add-on configuration.
+ * @type \Google\Apps\Script\Type\Sheets\SheetsAddOnManifest $sheets
+ * Sheets add-on configuration.
+ * @type \Google\Apps\Script\Type\Slides\SlidesAddOnManifest $slides
+ * Slides add-on configuration.
+ * @type \Google\Apps\Script\Type\HttpOptions $http_options
+ * Options for sending requests to add-on HTTP endpoints
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Gsuiteaddons\V1\Gsuiteaddons::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Configuration that is common across all Google Workspace Add-ons.
+ *
+ * Generated from protobuf field .google.apps.script.type.CommonAddOnManifest common = 1;
+ * @return \Google\Apps\Script\Type\CommonAddOnManifest|null
+ */
+ public function getCommon()
+ {
+ return $this->common;
+ }
+
+ public function hasCommon()
+ {
+ return isset($this->common);
+ }
+
+ public function clearCommon()
+ {
+ unset($this->common);
+ }
+
+ /**
+ * Configuration that is common across all Google Workspace Add-ons.
+ *
+ * Generated from protobuf field .google.apps.script.type.CommonAddOnManifest common = 1;
+ * @param \Google\Apps\Script\Type\CommonAddOnManifest $var
+ * @return $this
+ */
+ public function setCommon($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Apps\Script\Type\CommonAddOnManifest::class);
+ $this->common = $var;
+
+ return $this;
+ }
+
+ /**
+ * Gmail add-on configuration.
+ *
+ * Generated from protobuf field .google.apps.script.type.gmail.GmailAddOnManifest gmail = 2;
+ * @return \Google\Apps\Script\Type\Gmail\GmailAddOnManifest|null
+ */
+ public function getGmail()
+ {
+ return $this->gmail;
+ }
+
+ public function hasGmail()
+ {
+ return isset($this->gmail);
+ }
+
+ public function clearGmail()
+ {
+ unset($this->gmail);
+ }
+
+ /**
+ * Gmail add-on configuration.
+ *
+ * Generated from protobuf field .google.apps.script.type.gmail.GmailAddOnManifest gmail = 2;
+ * @param \Google\Apps\Script\Type\Gmail\GmailAddOnManifest $var
+ * @return $this
+ */
+ public function setGmail($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Apps\Script\Type\Gmail\GmailAddOnManifest::class);
+ $this->gmail = $var;
+
+ return $this;
+ }
+
+ /**
+ * Drive add-on configuration.
+ *
+ * Generated from protobuf field .google.apps.script.type.drive.DriveAddOnManifest drive = 5;
+ * @return \Google\Apps\Script\Type\Drive\DriveAddOnManifest|null
+ */
+ public function getDrive()
+ {
+ return $this->drive;
+ }
+
+ public function hasDrive()
+ {
+ return isset($this->drive);
+ }
+
+ public function clearDrive()
+ {
+ unset($this->drive);
+ }
+
+ /**
+ * Drive add-on configuration.
+ *
+ * Generated from protobuf field .google.apps.script.type.drive.DriveAddOnManifest drive = 5;
+ * @param \Google\Apps\Script\Type\Drive\DriveAddOnManifest $var
+ * @return $this
+ */
+ public function setDrive($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Apps\Script\Type\Drive\DriveAddOnManifest::class);
+ $this->drive = $var;
+
+ return $this;
+ }
+
+ /**
+ * Calendar add-on configuration.
+ *
+ * Generated from protobuf field .google.apps.script.type.calendar.CalendarAddOnManifest calendar = 6;
+ * @return \Google\Apps\Script\Type\Calendar\CalendarAddOnManifest|null
+ */
+ public function getCalendar()
+ {
+ return $this->calendar;
+ }
+
+ public function hasCalendar()
+ {
+ return isset($this->calendar);
+ }
+
+ public function clearCalendar()
+ {
+ unset($this->calendar);
+ }
+
+ /**
+ * Calendar add-on configuration.
+ *
+ * Generated from protobuf field .google.apps.script.type.calendar.CalendarAddOnManifest calendar = 6;
+ * @param \Google\Apps\Script\Type\Calendar\CalendarAddOnManifest $var
+ * @return $this
+ */
+ public function setCalendar($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Apps\Script\Type\Calendar\CalendarAddOnManifest::class);
+ $this->calendar = $var;
+
+ return $this;
+ }
+
+ /**
+ * Docs add-on configuration.
+ *
+ * Generated from protobuf field .google.apps.script.type.docs.DocsAddOnManifest docs = 7;
+ * @return \Google\Apps\Script\Type\Docs\DocsAddOnManifest|null
+ */
+ public function getDocs()
+ {
+ return $this->docs;
+ }
+
+ public function hasDocs()
+ {
+ return isset($this->docs);
+ }
+
+ public function clearDocs()
+ {
+ unset($this->docs);
+ }
+
+ /**
+ * Docs add-on configuration.
+ *
+ * Generated from protobuf field .google.apps.script.type.docs.DocsAddOnManifest docs = 7;
+ * @param \Google\Apps\Script\Type\Docs\DocsAddOnManifest $var
+ * @return $this
+ */
+ public function setDocs($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Apps\Script\Type\Docs\DocsAddOnManifest::class);
+ $this->docs = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sheets add-on configuration.
+ *
+ * Generated from protobuf field .google.apps.script.type.sheets.SheetsAddOnManifest sheets = 8;
+ * @return \Google\Apps\Script\Type\Sheets\SheetsAddOnManifest|null
+ */
+ public function getSheets()
+ {
+ return $this->sheets;
+ }
+
+ public function hasSheets()
+ {
+ return isset($this->sheets);
+ }
+
+ public function clearSheets()
+ {
+ unset($this->sheets);
+ }
+
+ /**
+ * Sheets add-on configuration.
+ *
+ * Generated from protobuf field .google.apps.script.type.sheets.SheetsAddOnManifest sheets = 8;
+ * @param \Google\Apps\Script\Type\Sheets\SheetsAddOnManifest $var
+ * @return $this
+ */
+ public function setSheets($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Apps\Script\Type\Sheets\SheetsAddOnManifest::class);
+ $this->sheets = $var;
+
+ return $this;
+ }
+
+ /**
+ * Slides add-on configuration.
+ *
+ * Generated from protobuf field .google.apps.script.type.slides.SlidesAddOnManifest slides = 10;
+ * @return \Google\Apps\Script\Type\Slides\SlidesAddOnManifest|null
+ */
+ public function getSlides()
+ {
+ return $this->slides;
+ }
+
+ public function hasSlides()
+ {
+ return isset($this->slides);
+ }
+
+ public function clearSlides()
+ {
+ unset($this->slides);
+ }
+
+ /**
+ * Slides add-on configuration.
+ *
+ * Generated from protobuf field .google.apps.script.type.slides.SlidesAddOnManifest slides = 10;
+ * @param \Google\Apps\Script\Type\Slides\SlidesAddOnManifest $var
+ * @return $this
+ */
+ public function setSlides($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Apps\Script\Type\Slides\SlidesAddOnManifest::class);
+ $this->slides = $var;
+
+ return $this;
+ }
+
+ /**
+ * Options for sending requests to add-on HTTP endpoints
+ *
+ * Generated from protobuf field .google.apps.script.type.HttpOptions http_options = 15;
+ * @return \Google\Apps\Script\Type\HttpOptions|null
+ */
+ public function getHttpOptions()
+ {
+ return $this->http_options;
+ }
+
+ public function hasHttpOptions()
+ {
+ return isset($this->http_options);
+ }
+
+ public function clearHttpOptions()
+ {
+ unset($this->http_options);
+ }
+
+ /**
+ * Options for sending requests to add-on HTTP endpoints
+ *
+ * Generated from protobuf field .google.apps.script.type.HttpOptions http_options = 15;
+ * @param \Google\Apps\Script\Type\HttpOptions $var
+ * @return $this
+ */
+ public function setHttpOptions($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Apps\Script\Type\HttpOptions::class);
+ $this->http_options = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/GSuiteAddOns/v1/proto/src/Google/Cloud/GSuiteAddOns/V1/Authorization.php b/owl-bot-staging/GSuiteAddOns/v1/proto/src/Google/Cloud/GSuiteAddOns/V1/Authorization.php
new file mode 100644
index 000000000000..904cb85121ea
--- /dev/null
+++ b/owl-bot-staging/GSuiteAddOns/v1/proto/src/Google/Cloud/GSuiteAddOns/V1/Authorization.php
@@ -0,0 +1,147 @@
+google.cloud.gsuiteaddons.v1.Authorization
+ */
+class Authorization extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The canonical full name of this resource.
+ * Example: `projects/123/authorization`
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * The email address of the service account used to authenticate requests to
+ * add-on callback endpoints.
+ *
+ * Generated from protobuf field string service_account_email = 2;
+ */
+ protected $service_account_email = '';
+ /**
+ * The OAuth client ID used to obtain OAuth access tokens for a user on the
+ * add-on's behalf.
+ *
+ * Generated from protobuf field string oauth_client_id = 3;
+ */
+ protected $oauth_client_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The canonical full name of this resource.
+ * Example: `projects/123/authorization`
+ * @type string $service_account_email
+ * The email address of the service account used to authenticate requests to
+ * add-on callback endpoints.
+ * @type string $oauth_client_id
+ * The OAuth client ID used to obtain OAuth access tokens for a user on the
+ * add-on's behalf.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Gsuiteaddons\V1\Gsuiteaddons::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The canonical full name of this resource.
+ * Example: `projects/123/authorization`
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The canonical full name of this resource.
+ * Example: `projects/123/authorization`
+ *
+ * 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 email address of the service account used to authenticate requests to
+ * add-on callback endpoints.
+ *
+ * Generated from protobuf field string service_account_email = 2;
+ * @return string
+ */
+ public function getServiceAccountEmail()
+ {
+ return $this->service_account_email;
+ }
+
+ /**
+ * The email address of the service account used to authenticate requests to
+ * add-on callback endpoints.
+ *
+ * Generated from protobuf field string service_account_email = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setServiceAccountEmail($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service_account_email = $var;
+
+ return $this;
+ }
+
+ /**
+ * The OAuth client ID used to obtain OAuth access tokens for a user on the
+ * add-on's behalf.
+ *
+ * Generated from protobuf field string oauth_client_id = 3;
+ * @return string
+ */
+ public function getOauthClientId()
+ {
+ return $this->oauth_client_id;
+ }
+
+ /**
+ * The OAuth client ID used to obtain OAuth access tokens for a user on the
+ * add-on's behalf.
+ *
+ * Generated from protobuf field string oauth_client_id = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setOauthClientId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->oauth_client_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/GSuiteAddOns/v1/proto/src/Google/Cloud/GSuiteAddOns/V1/CreateDeploymentRequest.php b/owl-bot-staging/GSuiteAddOns/v1/proto/src/Google/Cloud/GSuiteAddOns/V1/CreateDeploymentRequest.php
new file mode 100644
index 000000000000..58cf6cc05a17
--- /dev/null
+++ b/owl-bot-staging/GSuiteAddOns/v1/proto/src/Google/Cloud/GSuiteAddOns/V1/CreateDeploymentRequest.php
@@ -0,0 +1,174 @@
+google.cloud.gsuiteaddons.v1.CreateDeploymentRequest
+ */
+class CreateDeploymentRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the project in which to create the deployment.
+ * Example: `projects/my_project`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The id to use for this deployment. The full name of the created
+ * resource will be `projects//deployments/`.
+ *
+ * Generated from protobuf field string deployment_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $deployment_id = '';
+ /**
+ * Required. The deployment to create (deployment.name cannot be set).
+ *
+ * Generated from protobuf field .google.cloud.gsuiteaddons.v1.Deployment deployment = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $deployment = null;
+
+ /**
+ * @param string $parent Required. Name of the project in which to create the deployment.
+ *
+ * Example: `projects/my_project`. Please see
+ * {@see GSuiteAddOnsClient::projectName()} for help formatting this field.
+ * @param \Google\Cloud\GSuiteAddOns\V1\Deployment $deployment Required. The deployment to create (deployment.name cannot be set).
+ * @param string $deploymentId Required. The id to use for this deployment. The full name of the created
+ * resource will be `projects//deployments/`.
+ *
+ * @return \Google\Cloud\GSuiteAddOns\V1\CreateDeploymentRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\GSuiteAddOns\V1\Deployment $deployment, string $deploymentId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setDeployment($deployment)
+ ->setDeploymentId($deploymentId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Name of the project in which to create the deployment.
+ * Example: `projects/my_project`.
+ * @type string $deployment_id
+ * Required. The id to use for this deployment. The full name of the created
+ * resource will be `projects//deployments/`.
+ * @type \Google\Cloud\GSuiteAddOns\V1\Deployment $deployment
+ * Required. The deployment to create (deployment.name cannot be set).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Gsuiteaddons\V1\Gsuiteaddons::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the project in which to create the deployment.
+ * Example: `projects/my_project`.
+ *
+ * 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 project in which to create the deployment.
+ * Example: `projects/my_project`.
+ *
+ * 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 this deployment. The full name of the created
+ * resource will be `projects//deployments/`.
+ *
+ * Generated from protobuf field string deployment_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getDeploymentId()
+ {
+ return $this->deployment_id;
+ }
+
+ /**
+ * Required. The id to use for this deployment. The full name of the created
+ * resource will be `projects//deployments/`.
+ *
+ * Generated from protobuf field