diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Bigquery.php b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Bigquery.php
new file mode 100644
index 000000000000..ee848a4826c8
Binary files /dev/null and b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Bigquery.php differ
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Common.php b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Common.php
new file mode 100644
index 000000000000..4c0cec007b61
Binary files /dev/null and b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Common.php differ
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/DataSource.php b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/DataSource.php
new file mode 100644
index 000000000000..0a0e16648f4b
Binary files /dev/null and b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/DataSource.php differ
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Datacatalog.php b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Datacatalog.php
new file mode 100644
index 000000000000..56ae55d8e248
Binary files /dev/null and b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Datacatalog.php differ
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/DataplexSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/DataplexSpec.php
new file mode 100644
index 000000000000..cd48190b90cb
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/DataplexSpec.php
@@ -0,0 +1,46 @@
+internalAddGeneratedFile(
+ '
+½
+/google/cloud/datacatalog/v1/dataplex_spec.protogoogle.cloud.datacatalog.v11google/cloud/datacatalog/v1/physical_schema.proto"
+DataplexSpec
+asset ( @
+data_format (2+.google.cloud.datacatalog.v1.PhysicalSchema
+compression_format (
+
+project_id ( "W
+DataplexFilesetSpec@
+
dataplex_spec (2).google.cloud.datacatalog.v1.DataplexSpec"¸
+DataplexTableSpecK
+external_tables (22.google.cloud.datacatalog.v1.DataplexExternalTable@
+
dataplex_spec (2).google.cloud.datacatalog.v1.DataplexSpec
+user_managed ("¯
+DataplexExternalTable=
+system (2-.google.cloud.datacatalog.v1.IntegratedSystem
+fully_qualified_name (
+google_cloud_resource (
+data_catalog_entry ( BÙ
+com.google.cloud.datacatalog.v1BDataplexSpecProtoPZAcloud.google.com/go/datacatalog/apiv1/datacatalogpb;datacatalogpbøªGoogle.Cloud.DataCatalog.V1ÊGoogle\\Cloud\\DataCatalog\\V1êGoogle::Cloud::DataCatalog::V1bproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/DumpContent.php b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/DumpContent.php
new file mode 100644
index 000000000000..93abced0982c
Binary files /dev/null and b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/DumpContent.php differ
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/GcsFilesetSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/GcsFilesetSpec.php
new file mode 100644
index 000000000000..2350c774ebd3
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/GcsFilesetSpec.php
@@ -0,0 +1,37 @@
+internalAddGeneratedFile(
+ '
+Ù
+2google/cloud/datacatalog/v1/gcs_fileset_spec.protogoogle.cloud.datacatalog.v1,google/cloud/datacatalog/v1/timestamps.proto"z
+GcsFilesetSpec
+
file_patterns ( BàAL
+sample_gcs_file_specs (2(.google.cloud.datacatalog.v1.GcsFileSpecBàA"Š
+GcsFileSpec
+ file_path ( BàAJ
+gcs_timestamps (2-.google.cloud.datacatalog.v1.SystemTimestampsBàA
+
+size_bytes (BàABÆ
+com.google.cloud.datacatalog.v1PZAcloud.google.com/go/datacatalog/apiv1/datacatalogpb;datacatalogpbøªGoogle.Cloud.DataCatalog.V1ÊGoogle\\Cloud\\DataCatalog\\V1êGoogle::Cloud::DataCatalog::V1bproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/PhysicalSchema.php b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/PhysicalSchema.php
new file mode 100644
index 000000000000..a23ebb0ee678
Binary files /dev/null and b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/PhysicalSchema.php differ
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Policytagmanager.php b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Policytagmanager.php
new file mode 100644
index 000000000000..480b55d6570c
Binary files /dev/null and b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Policytagmanager.php differ
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Policytagmanagerserialization.php b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Policytagmanagerserialization.php
new file mode 100644
index 000000000000..104108eed989
Binary files /dev/null and b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Policytagmanagerserialization.php differ
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Schema.php b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Schema.php
new file mode 100644
index 000000000000..e930b221ecff
Binary files /dev/null and b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Schema.php differ
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Search.php b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Search.php
new file mode 100644
index 000000000000..a559da264d80
Binary files /dev/null and b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Search.php differ
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/TableSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/TableSpec.php
new file mode 100644
index 000000000000..d766306c82d1
Binary files /dev/null and b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/TableSpec.php differ
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Tags.php b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Tags.php
new file mode 100644
index 000000000000..d6799ad6d0a4
Binary files /dev/null and b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Tags.php differ
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Timestamps.php b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Timestamps.php
new file mode 100644
index 000000000000..cbfa95d8ad26
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Timestamps.php
@@ -0,0 +1,33 @@
+internalAddGeneratedFile(
+ '
+ê
+,google/cloud/datacatalog/v1/timestamps.protogoogle.cloud.datacatalog.v1google/protobuf/timestamp.proto"ª
+SystemTimestamps/
+create_time (2.google.protobuf.Timestamp/
+update_time (2.google.protobuf.Timestamp4
+expire_time (2.google.protobuf.TimestampBàABÆ
+com.google.cloud.datacatalog.v1PZAcloud.google.com/go/datacatalog/apiv1/datacatalogpb;datacatalogpbøªGoogle.Cloud.DataCatalog.V1ÊGoogle\\Cloud\\DataCatalog\\V1êGoogle::Cloud::DataCatalog::V1bproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Usage.php b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Usage.php
new file mode 100644
index 000000000000..0207a8caefe7
Binary files /dev/null and b/owl-bot-staging/DataCatalog/v1/proto/src/GPBMetadata/Google/Cloud/Datacatalog/V1/Usage.php differ
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/BigQueryConnectionSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/BigQueryConnectionSpec.php
new file mode 100644
index 000000000000..4e2d0f006d00
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/BigQueryConnectionSpec.php
@@ -0,0 +1,147 @@
+google.cloud.datacatalog.v1.BigQueryConnectionSpec
+ */
+class BigQueryConnectionSpec extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The type of the BigQuery connection.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.BigQueryConnectionSpec.ConnectionType connection_type = 1;
+ */
+ protected $connection_type = 0;
+ /**
+ * True if there are credentials attached to the BigQuery connection; false
+ * otherwise.
+ *
+ * Generated from protobuf field bool has_credential = 3;
+ */
+ protected $has_credential = false;
+ protected $connection_spec;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $connection_type
+ * The type of the BigQuery connection.
+ * @type \Google\Cloud\DataCatalog\V1\CloudSqlBigQueryConnectionSpec $cloud_sql
+ * Specification for the BigQuery connection to a Cloud SQL instance.
+ * @type bool $has_credential
+ * True if there are credentials attached to the BigQuery connection; false
+ * otherwise.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Bigquery::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The type of the BigQuery connection.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.BigQueryConnectionSpec.ConnectionType connection_type = 1;
+ * @return int
+ */
+ public function getConnectionType()
+ {
+ return $this->connection_type;
+ }
+
+ /**
+ * The type of the BigQuery connection.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.BigQueryConnectionSpec.ConnectionType connection_type = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setConnectionType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\DataCatalog\V1\BigQueryConnectionSpec\ConnectionType::class);
+ $this->connection_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specification for the BigQuery connection to a Cloud SQL instance.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.CloudSqlBigQueryConnectionSpec cloud_sql = 2;
+ * @return \Google\Cloud\DataCatalog\V1\CloudSqlBigQueryConnectionSpec|null
+ */
+ public function getCloudSql()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasCloudSql()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Specification for the BigQuery connection to a Cloud SQL instance.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.CloudSqlBigQueryConnectionSpec cloud_sql = 2;
+ * @param \Google\Cloud\DataCatalog\V1\CloudSqlBigQueryConnectionSpec $var
+ * @return $this
+ */
+ public function setCloudSql($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\CloudSqlBigQueryConnectionSpec::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * True if there are credentials attached to the BigQuery connection; false
+ * otherwise.
+ *
+ * Generated from protobuf field bool has_credential = 3;
+ * @return bool
+ */
+ public function getHasCredential()
+ {
+ return $this->has_credential;
+ }
+
+ /**
+ * True if there are credentials attached to the BigQuery connection; false
+ * otherwise.
+ *
+ * Generated from protobuf field bool has_credential = 3;
+ * @param bool $var
+ * @return $this
+ */
+ public function setHasCredential($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->has_credential = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getConnectionSpec()
+ {
+ return $this->whichOneof("connection_spec");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/BigQueryConnectionSpec/ConnectionType.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/BigQueryConnectionSpec/ConnectionType.php
new file mode 100644
index 000000000000..7d8e9296d0aa
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/BigQueryConnectionSpec/ConnectionType.php
@@ -0,0 +1,57 @@
+google.cloud.datacatalog.v1.BigQueryConnectionSpec.ConnectionType
+ */
+class ConnectionType
+{
+ /**
+ * Unspecified type.
+ *
+ * Generated from protobuf enum CONNECTION_TYPE_UNSPECIFIED = 0;
+ */
+ const CONNECTION_TYPE_UNSPECIFIED = 0;
+ /**
+ * Cloud SQL connection.
+ *
+ * Generated from protobuf enum CLOUD_SQL = 1;
+ */
+ const CLOUD_SQL = 1;
+
+ private static $valueToName = [
+ self::CONNECTION_TYPE_UNSPECIFIED => 'CONNECTION_TYPE_UNSPECIFIED',
+ self::CLOUD_SQL => 'CLOUD_SQL',
+ ];
+
+ 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(ConnectionType::class, \Google\Cloud\DataCatalog\V1\BigQueryConnectionSpec_ConnectionType::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/BigQueryDateShardedSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/BigQueryDateShardedSpec.php
new file mode 100644
index 000000000000..d2a24365367c
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/BigQueryDateShardedSpec.php
@@ -0,0 +1,192 @@
+google.cloud.datacatalog.v1.BigQueryDateShardedSpec
+ */
+class BigQueryDateShardedSpec extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The Data Catalog resource name of the dataset entry the
+ * current table belongs to. For example:
+ * `projects/{PROJECT_ID}/locations/{LOCATION}/entrygroups/{ENTRY_GROUP_ID}/entries/{ENTRY_ID}`.
+ *
+ * Generated from protobuf field string dataset = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ */
+ protected $dataset = '';
+ /**
+ * Output only. The table name prefix of the shards.
+ * The name of any given shard is `[table_prefix]YYYYMMDD`.
+ * For example, for the `MyTable20180101` shard, the
+ * `table_prefix` is `MyTable`.
+ *
+ * Generated from protobuf field string table_prefix = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $table_prefix = '';
+ /**
+ * Output only. Total number of shards.
+ *
+ * Generated from protobuf field int64 shard_count = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $shard_count = 0;
+ /**
+ * Output only. BigQuery resource name of the latest shard.
+ *
+ * Generated from protobuf field string latest_shard_resource = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $latest_shard_resource = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $dataset
+ * Output only. The Data Catalog resource name of the dataset entry the
+ * current table belongs to. For example:
+ * `projects/{PROJECT_ID}/locations/{LOCATION}/entrygroups/{ENTRY_GROUP_ID}/entries/{ENTRY_ID}`.
+ * @type string $table_prefix
+ * Output only. The table name prefix of the shards.
+ * The name of any given shard is `[table_prefix]YYYYMMDD`.
+ * For example, for the `MyTable20180101` shard, the
+ * `table_prefix` is `MyTable`.
+ * @type int|string $shard_count
+ * Output only. Total number of shards.
+ * @type string $latest_shard_resource
+ * Output only. BigQuery resource name of the latest shard.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\TableSpec::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The Data Catalog resource name of the dataset entry the
+ * current table belongs to. For example:
+ * `projects/{PROJECT_ID}/locations/{LOCATION}/entrygroups/{ENTRY_GROUP_ID}/entries/{ENTRY_ID}`.
+ *
+ * Generated from protobuf field string dataset = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getDataset()
+ {
+ return $this->dataset;
+ }
+
+ /**
+ * Output only. The Data Catalog resource name of the dataset entry the
+ * current table belongs to. For example:
+ * `projects/{PROJECT_ID}/locations/{LOCATION}/entrygroups/{ENTRY_GROUP_ID}/entries/{ENTRY_ID}`.
+ *
+ * Generated from protobuf field string dataset = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setDataset($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->dataset = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The table name prefix of the shards.
+ * The name of any given shard is `[table_prefix]YYYYMMDD`.
+ * For example, for the `MyTable20180101` shard, the
+ * `table_prefix` is `MyTable`.
+ *
+ * Generated from protobuf field string table_prefix = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getTablePrefix()
+ {
+ return $this->table_prefix;
+ }
+
+ /**
+ * Output only. The table name prefix of the shards.
+ * The name of any given shard is `[table_prefix]YYYYMMDD`.
+ * For example, for the `MyTable20180101` shard, the
+ * `table_prefix` is `MyTable`.
+ *
+ * Generated from protobuf field string table_prefix = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setTablePrefix($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->table_prefix = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Total number of shards.
+ *
+ * Generated from protobuf field int64 shard_count = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int|string
+ */
+ public function getShardCount()
+ {
+ return $this->shard_count;
+ }
+
+ /**
+ * Output only. Total number of shards.
+ *
+ * Generated from protobuf field int64 shard_count = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setShardCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->shard_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. BigQuery resource name of the latest shard.
+ *
+ * Generated from protobuf field string latest_shard_resource = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getLatestShardResource()
+ {
+ return $this->latest_shard_resource;
+ }
+
+ /**
+ * Output only. BigQuery resource name of the latest shard.
+ *
+ * Generated from protobuf field string latest_shard_resource = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setLatestShardResource($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->latest_shard_resource = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/BigQueryRoutineSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/BigQueryRoutineSpec.php
new file mode 100644
index 000000000000..e83b2495d5ff
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/BigQueryRoutineSpec.php
@@ -0,0 +1,67 @@
+google.cloud.datacatalog.v1.BigQueryRoutineSpec
+ */
+class BigQueryRoutineSpec extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Paths of the imported libraries.
+ *
+ * Generated from protobuf field repeated string imported_libraries = 1;
+ */
+ private $imported_libraries;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $imported_libraries
+ * Paths of the imported libraries.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Bigquery::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Paths of the imported libraries.
+ *
+ * Generated from protobuf field repeated string imported_libraries = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getImportedLibraries()
+ {
+ return $this->imported_libraries;
+ }
+
+ /**
+ * Paths of the imported libraries.
+ *
+ * Generated from protobuf field repeated string imported_libraries = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setImportedLibraries($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->imported_libraries = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/BigQueryTableSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/BigQueryTableSpec.php
new file mode 100644
index 000000000000..0cb87b4b854f
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/BigQueryTableSpec.php
@@ -0,0 +1,148 @@
+google.cloud.datacatalog.v1.BigQueryTableSpec
+ */
+class BigQueryTableSpec extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The table source type.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.TableSourceType table_source_type = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $table_source_type = 0;
+ protected $type_spec;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $table_source_type
+ * Output only. The table source type.
+ * @type \Google\Cloud\DataCatalog\V1\ViewSpec $view_spec
+ * Table view specification. Populated only if
+ * the `table_source_type` is `BIGQUERY_VIEW`.
+ * @type \Google\Cloud\DataCatalog\V1\TableSpec $table_spec
+ * Specification of a BigQuery table. Populated only if
+ * the `table_source_type` is `BIGQUERY_TABLE`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\TableSpec::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The table source type.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.TableSourceType table_source_type = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getTableSourceType()
+ {
+ return $this->table_source_type;
+ }
+
+ /**
+ * Output only. The table source type.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.TableSourceType table_source_type = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setTableSourceType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\DataCatalog\V1\TableSourceType::class);
+ $this->table_source_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Table view specification. Populated only if
+ * the `table_source_type` is `BIGQUERY_VIEW`.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.ViewSpec view_spec = 2;
+ * @return \Google\Cloud\DataCatalog\V1\ViewSpec|null
+ */
+ public function getViewSpec()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasViewSpec()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Table view specification. Populated only if
+ * the `table_source_type` is `BIGQUERY_VIEW`.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.ViewSpec view_spec = 2;
+ * @param \Google\Cloud\DataCatalog\V1\ViewSpec $var
+ * @return $this
+ */
+ public function setViewSpec($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\ViewSpec::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Specification of a BigQuery table. Populated only if
+ * the `table_source_type` is `BIGQUERY_TABLE`.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.TableSpec table_spec = 3;
+ * @return \Google\Cloud\DataCatalog\V1\TableSpec|null
+ */
+ public function getTableSpec()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasTableSpec()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * Specification of a BigQuery table. Populated only if
+ * the `table_source_type` is `BIGQUERY_TABLE`.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.TableSpec table_spec = 3;
+ * @param \Google\Cloud\DataCatalog\V1\TableSpec $var
+ * @return $this
+ */
+ public function setTableSpec($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\TableSpec::class);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getTypeSpec()
+ {
+ return $this->whichOneof("type_spec");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/BusinessContext.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/BusinessContext.php
new file mode 100644
index 000000000000..21c5c7db22dc
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/BusinessContext.php
@@ -0,0 +1,121 @@
+google.cloud.datacatalog.v1.BusinessContext
+ */
+class BusinessContext extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Entry overview fields for rich text descriptions of entries.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.EntryOverview entry_overview = 1;
+ */
+ protected $entry_overview = null;
+ /**
+ * Contact people for the entry.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Contacts contacts = 2;
+ */
+ protected $contacts = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\DataCatalog\V1\EntryOverview $entry_overview
+ * Entry overview fields for rich text descriptions of entries.
+ * @type \Google\Cloud\DataCatalog\V1\Contacts $contacts
+ * Contact people for the entry.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Entry overview fields for rich text descriptions of entries.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.EntryOverview entry_overview = 1;
+ * @return \Google\Cloud\DataCatalog\V1\EntryOverview|null
+ */
+ public function getEntryOverview()
+ {
+ return $this->entry_overview;
+ }
+
+ public function hasEntryOverview()
+ {
+ return isset($this->entry_overview);
+ }
+
+ public function clearEntryOverview()
+ {
+ unset($this->entry_overview);
+ }
+
+ /**
+ * Entry overview fields for rich text descriptions of entries.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.EntryOverview entry_overview = 1;
+ * @param \Google\Cloud\DataCatalog\V1\EntryOverview $var
+ * @return $this
+ */
+ public function setEntryOverview($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\EntryOverview::class);
+ $this->entry_overview = $var;
+
+ return $this;
+ }
+
+ /**
+ * Contact people for the entry.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Contacts contacts = 2;
+ * @return \Google\Cloud\DataCatalog\V1\Contacts|null
+ */
+ public function getContacts()
+ {
+ return $this->contacts;
+ }
+
+ public function hasContacts()
+ {
+ return isset($this->contacts);
+ }
+
+ public function clearContacts()
+ {
+ unset($this->contacts);
+ }
+
+ /**
+ * Contact people for the entry.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Contacts contacts = 2;
+ * @param \Google\Cloud\DataCatalog\V1\Contacts $var
+ * @return $this
+ */
+ public function setContacts($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\Contacts::class);
+ $this->contacts = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CloudBigtableInstanceSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CloudBigtableInstanceSpec.php
new file mode 100644
index 000000000000..58a2f17b3fcd
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CloudBigtableInstanceSpec.php
@@ -0,0 +1,69 @@
+google.cloud.datacatalog.v1.CloudBigtableInstanceSpec
+ */
+class CloudBigtableInstanceSpec extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of clusters for the Instance.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.CloudBigtableInstanceSpec.CloudBigtableClusterSpec cloud_bigtable_cluster_specs = 1;
+ */
+ private $cloud_bigtable_cluster_specs;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\DataCatalog\V1\CloudBigtableInstanceSpec\CloudBigtableClusterSpec>|\Google\Protobuf\Internal\RepeatedField $cloud_bigtable_cluster_specs
+ * The list of clusters for the Instance.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of clusters for the Instance.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.CloudBigtableInstanceSpec.CloudBigtableClusterSpec cloud_bigtable_cluster_specs = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getCloudBigtableClusterSpecs()
+ {
+ return $this->cloud_bigtable_cluster_specs;
+ }
+
+ /**
+ * The list of clusters for the Instance.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.CloudBigtableInstanceSpec.CloudBigtableClusterSpec cloud_bigtable_cluster_specs = 1;
+ * @param array<\Google\Cloud\DataCatalog\V1\CloudBigtableInstanceSpec\CloudBigtableClusterSpec>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setCloudBigtableClusterSpecs($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\DataCatalog\V1\CloudBigtableInstanceSpec\CloudBigtableClusterSpec::class);
+ $this->cloud_bigtable_cluster_specs = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CloudBigtableInstanceSpec/CloudBigtableClusterSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CloudBigtableInstanceSpec/CloudBigtableClusterSpec.php
new file mode 100644
index 000000000000..089284475331
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CloudBigtableInstanceSpec/CloudBigtableClusterSpec.php
@@ -0,0 +1,172 @@
+google.cloud.datacatalog.v1.CloudBigtableInstanceSpec.CloudBigtableClusterSpec
+ */
+class CloudBigtableClusterSpec extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Name of the cluster.
+ *
+ * Generated from protobuf field string display_name = 1;
+ */
+ protected $display_name = '';
+ /**
+ * Location of the cluster, typically a Cloud zone.
+ *
+ * Generated from protobuf field string location = 2;
+ */
+ protected $location = '';
+ /**
+ * Type of the resource. For a cluster this would be "CLUSTER".
+ *
+ * Generated from protobuf field string type = 3;
+ */
+ protected $type = '';
+ /**
+ * A link back to the parent resource, in this case Instance.
+ *
+ * Generated from protobuf field string linked_resource = 4;
+ */
+ protected $linked_resource = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $display_name
+ * Name of the cluster.
+ * @type string $location
+ * Location of the cluster, typically a Cloud zone.
+ * @type string $type
+ * Type of the resource. For a cluster this would be "CLUSTER".
+ * @type string $linked_resource
+ * A link back to the parent resource, in this case Instance.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Name of the cluster.
+ *
+ * Generated from protobuf field string display_name = 1;
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * Name of the cluster.
+ *
+ * Generated from protobuf field string display_name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Location of the cluster, typically a Cloud zone.
+ *
+ * Generated from protobuf field string location = 2;
+ * @return string
+ */
+ public function getLocation()
+ {
+ return $this->location;
+ }
+
+ /**
+ * Location of the cluster, typically a Cloud zone.
+ *
+ * Generated from protobuf field string location = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setLocation($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->location = $var;
+
+ return $this;
+ }
+
+ /**
+ * Type of the resource. For a cluster this would be "CLUSTER".
+ *
+ * Generated from protobuf field string type = 3;
+ * @return string
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * Type of the resource. For a cluster this would be "CLUSTER".
+ *
+ * Generated from protobuf field string type = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->type = $var;
+
+ return $this;
+ }
+
+ /**
+ * A link back to the parent resource, in this case Instance.
+ *
+ * Generated from protobuf field string linked_resource = 4;
+ * @return string
+ */
+ public function getLinkedResource()
+ {
+ return $this->linked_resource;
+ }
+
+ /**
+ * A link back to the parent resource, in this case Instance.
+ *
+ * Generated from protobuf field string linked_resource = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setLinkedResource($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->linked_resource = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(CloudBigtableClusterSpec::class, \Google\Cloud\DataCatalog\V1\CloudBigtableInstanceSpec_CloudBigtableClusterSpec::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CloudBigtableSystemSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CloudBigtableSystemSpec.php
new file mode 100644
index 000000000000..4e0008126b26
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CloudBigtableSystemSpec.php
@@ -0,0 +1,73 @@
+google.cloud.datacatalog.v1.CloudBigtableSystemSpec
+ */
+class CloudBigtableSystemSpec extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Display name of the Instance. This is user specified and different from
+ * the resource name.
+ *
+ * Generated from protobuf field string instance_display_name = 1;
+ */
+ protected $instance_display_name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $instance_display_name
+ * Display name of the Instance. This is user specified and different from
+ * the resource name.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Display name of the Instance. This is user specified and different from
+ * the resource name.
+ *
+ * Generated from protobuf field string instance_display_name = 1;
+ * @return string
+ */
+ public function getInstanceDisplayName()
+ {
+ return $this->instance_display_name;
+ }
+
+ /**
+ * Display name of the Instance. This is user specified and different from
+ * the resource name.
+ *
+ * Generated from protobuf field string instance_display_name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setInstanceDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->instance_display_name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CloudSqlBigQueryConnectionSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CloudSqlBigQueryConnectionSpec.php
new file mode 100644
index 000000000000..5069ad521666
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CloudSqlBigQueryConnectionSpec.php
@@ -0,0 +1,135 @@
+google.cloud.datacatalog.v1.CloudSqlBigQueryConnectionSpec
+ */
+class CloudSqlBigQueryConnectionSpec extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Cloud SQL instance ID in the format of `project:location:instance`.
+ *
+ * Generated from protobuf field string instance_id = 1;
+ */
+ protected $instance_id = '';
+ /**
+ * Database name.
+ *
+ * Generated from protobuf field string database = 2;
+ */
+ protected $database = '';
+ /**
+ * Type of the Cloud SQL database.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.CloudSqlBigQueryConnectionSpec.DatabaseType type = 3;
+ */
+ protected $type = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $instance_id
+ * Cloud SQL instance ID in the format of `project:location:instance`.
+ * @type string $database
+ * Database name.
+ * @type int $type
+ * Type of the Cloud SQL database.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Bigquery::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Cloud SQL instance ID in the format of `project:location:instance`.
+ *
+ * Generated from protobuf field string instance_id = 1;
+ * @return string
+ */
+ public function getInstanceId()
+ {
+ return $this->instance_id;
+ }
+
+ /**
+ * Cloud SQL instance ID in the format of `project:location:instance`.
+ *
+ * Generated from protobuf field string instance_id = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setInstanceId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->instance_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Database name.
+ *
+ * Generated from protobuf field string database = 2;
+ * @return string
+ */
+ public function getDatabase()
+ {
+ return $this->database;
+ }
+
+ /**
+ * Database name.
+ *
+ * Generated from protobuf field string database = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setDatabase($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->database = $var;
+
+ return $this;
+ }
+
+ /**
+ * Type of the Cloud SQL database.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.CloudSqlBigQueryConnectionSpec.DatabaseType type = 3;
+ * @return int
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * Type of the Cloud SQL database.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.CloudSqlBigQueryConnectionSpec.DatabaseType type = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\DataCatalog\V1\CloudSqlBigQueryConnectionSpec\DatabaseType::class);
+ $this->type = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CloudSqlBigQueryConnectionSpec/DatabaseType.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CloudSqlBigQueryConnectionSpec/DatabaseType.php
new file mode 100644
index 000000000000..97f9d2e09bcd
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CloudSqlBigQueryConnectionSpec/DatabaseType.php
@@ -0,0 +1,64 @@
+google.cloud.datacatalog.v1.CloudSqlBigQueryConnectionSpec.DatabaseType
+ */
+class DatabaseType
+{
+ /**
+ * Unspecified database type.
+ *
+ * Generated from protobuf enum DATABASE_TYPE_UNSPECIFIED = 0;
+ */
+ const DATABASE_TYPE_UNSPECIFIED = 0;
+ /**
+ * Cloud SQL for PostgreSQL.
+ *
+ * Generated from protobuf enum POSTGRES = 1;
+ */
+ const POSTGRES = 1;
+ /**
+ * Cloud SQL for MySQL.
+ *
+ * Generated from protobuf enum MYSQL = 2;
+ */
+ const MYSQL = 2;
+
+ private static $valueToName = [
+ self::DATABASE_TYPE_UNSPECIFIED => 'DATABASE_TYPE_UNSPECIFIED',
+ self::POSTGRES => 'POSTGRES',
+ 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\DataCatalog\V1\CloudSqlBigQueryConnectionSpec_DatabaseType::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ColumnSchema.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ColumnSchema.php
new file mode 100644
index 000000000000..a2c7b7f27f54
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ColumnSchema.php
@@ -0,0 +1,486 @@
+google.cloud.datacatalog.v1.ColumnSchema
+ */
+class ColumnSchema extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the column.
+ * Must be a UTF-8 string without dots (.).
+ * The maximum size is 64 bytes.
+ *
+ * Generated from protobuf field string column = 6 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $column = '';
+ /**
+ * Required. Type of the column.
+ * Must be a UTF-8 string with the maximum size of 128 bytes.
+ *
+ * Generated from protobuf field string type = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $type = '';
+ /**
+ * Optional. Description of the column. Default value is an empty string.
+ * The description must be a UTF-8 string with the maximum size of 2000
+ * bytes.
+ *
+ * Generated from protobuf field string description = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $description = '';
+ /**
+ * Optional. A column's mode indicates whether values in this column are
+ * required, nullable, or repeated.
+ * Only `NULLABLE`, `REQUIRED`, and `REPEATED` values are supported.
+ * Default mode is `NULLABLE`.
+ *
+ * Generated from protobuf field string mode = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $mode = '';
+ /**
+ * Optional. Default value for the column.
+ *
+ * Generated from protobuf field string default_value = 8 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $default_value = '';
+ /**
+ * Optional. Ordinal position
+ *
+ * Generated from protobuf field int32 ordinal_position = 9 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $ordinal_position = 0;
+ /**
+ * Optional. Most important inclusion of this column.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.ColumnSchema.IndexingType highest_indexing_type = 10 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $highest_indexing_type = 0;
+ /**
+ * Optional. Schema of sub-columns. A column can have zero or more
+ * sub-columns.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.ColumnSchema subcolumns = 7 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $subcolumns;
+ /**
+ * Optional. The subtype of the RANGE, if the type of this field is RANGE. If
+ * the type is RANGE, this field is required. Possible values for the field
+ * element type of a RANGE include:
+ * * DATE
+ * * DATETIME
+ * * TIMESTAMP
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.ColumnSchema.FieldElementType range_element_type = 19 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $range_element_type = null;
+ /**
+ * Optional. Garbage collection policy for the column or column family.
+ * Applies to systems like Cloud Bigtable.
+ *
+ * Generated from protobuf field string gc_rule = 11 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $gc_rule = '';
+ protected $system_spec;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $column
+ * Required. Name of the column.
+ * Must be a UTF-8 string without dots (.).
+ * The maximum size is 64 bytes.
+ * @type string $type
+ * Required. Type of the column.
+ * Must be a UTF-8 string with the maximum size of 128 bytes.
+ * @type string $description
+ * Optional. Description of the column. Default value is an empty string.
+ * The description must be a UTF-8 string with the maximum size of 2000
+ * bytes.
+ * @type string $mode
+ * Optional. A column's mode indicates whether values in this column are
+ * required, nullable, or repeated.
+ * Only `NULLABLE`, `REQUIRED`, and `REPEATED` values are supported.
+ * Default mode is `NULLABLE`.
+ * @type string $default_value
+ * Optional. Default value for the column.
+ * @type int $ordinal_position
+ * Optional. Ordinal position
+ * @type int $highest_indexing_type
+ * Optional. Most important inclusion of this column.
+ * @type array<\Google\Cloud\DataCatalog\V1\ColumnSchema>|\Google\Protobuf\Internal\RepeatedField $subcolumns
+ * Optional. Schema of sub-columns. A column can have zero or more
+ * sub-columns.
+ * @type \Google\Cloud\DataCatalog\V1\ColumnSchema\LookerColumnSpec $looker_column_spec
+ * Looker specific column info of this column.
+ * @type \Google\Cloud\DataCatalog\V1\ColumnSchema\FieldElementType $range_element_type
+ * Optional. The subtype of the RANGE, if the type of this field is RANGE. If
+ * the type is RANGE, this field is required. Possible values for the field
+ * element type of a RANGE include:
+ * * DATE
+ * * DATETIME
+ * * TIMESTAMP
+ * @type string $gc_rule
+ * Optional. Garbage collection policy for the column or column family.
+ * Applies to systems like Cloud Bigtable.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Schema::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the column.
+ * Must be a UTF-8 string without dots (.).
+ * The maximum size is 64 bytes.
+ *
+ * Generated from protobuf field string column = 6 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getColumn()
+ {
+ return $this->column;
+ }
+
+ /**
+ * Required. Name of the column.
+ * Must be a UTF-8 string without dots (.).
+ * The maximum size is 64 bytes.
+ *
+ * Generated from protobuf field string column = 6 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setColumn($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->column = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Type of the column.
+ * Must be a UTF-8 string with the maximum size of 128 bytes.
+ *
+ * Generated from protobuf field string type = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * Required. Type of the column.
+ * Must be a UTF-8 string with the maximum size of 128 bytes.
+ *
+ * Generated from protobuf field string type = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Description of the column. Default value is an empty string.
+ * The description must be a UTF-8 string with the maximum size of 2000
+ * bytes.
+ *
+ * Generated from protobuf field string description = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Optional. Description of the column. Default value is an empty string.
+ * The description must be a UTF-8 string with the maximum size of 2000
+ * bytes.
+ *
+ * Generated from protobuf field string description = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A column's mode indicates whether values in this column are
+ * required, nullable, or repeated.
+ * Only `NULLABLE`, `REQUIRED`, and `REPEATED` values are supported.
+ * Default mode is `NULLABLE`.
+ *
+ * Generated from protobuf field string mode = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getMode()
+ {
+ return $this->mode;
+ }
+
+ /**
+ * Optional. A column's mode indicates whether values in this column are
+ * required, nullable, or repeated.
+ * Only `NULLABLE`, `REQUIRED`, and `REPEATED` values are supported.
+ * Default mode is `NULLABLE`.
+ *
+ * Generated from protobuf field string mode = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setMode($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->mode = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Default value for the column.
+ *
+ * Generated from protobuf field string default_value = 8 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getDefaultValue()
+ {
+ return $this->default_value;
+ }
+
+ /**
+ * Optional. Default value for the column.
+ *
+ * Generated from protobuf field string default_value = 8 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setDefaultValue($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->default_value = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Ordinal position
+ *
+ * Generated from protobuf field int32 ordinal_position = 9 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getOrdinalPosition()
+ {
+ return $this->ordinal_position;
+ }
+
+ /**
+ * Optional. Ordinal position
+ *
+ * Generated from protobuf field int32 ordinal_position = 9 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setOrdinalPosition($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->ordinal_position = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Most important inclusion of this column.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.ColumnSchema.IndexingType highest_indexing_type = 10 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getHighestIndexingType()
+ {
+ return $this->highest_indexing_type;
+ }
+
+ /**
+ * Optional. Most important inclusion of this column.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.ColumnSchema.IndexingType highest_indexing_type = 10 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setHighestIndexingType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\DataCatalog\V1\ColumnSchema\IndexingType::class);
+ $this->highest_indexing_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Schema of sub-columns. A column can have zero or more
+ * sub-columns.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.ColumnSchema subcolumns = 7 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getSubcolumns()
+ {
+ return $this->subcolumns;
+ }
+
+ /**
+ * Optional. Schema of sub-columns. A column can have zero or more
+ * sub-columns.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.ColumnSchema subcolumns = 7 [(.google.api.field_behavior) = OPTIONAL];
+ * @param array<\Google\Cloud\DataCatalog\V1\ColumnSchema>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setSubcolumns($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\DataCatalog\V1\ColumnSchema::class);
+ $this->subcolumns = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Looker specific column info of this column.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.ColumnSchema.LookerColumnSpec looker_column_spec = 18;
+ * @return \Google\Cloud\DataCatalog\V1\ColumnSchema\LookerColumnSpec|null
+ */
+ public function getLookerColumnSpec()
+ {
+ return $this->readOneof(18);
+ }
+
+ public function hasLookerColumnSpec()
+ {
+ return $this->hasOneof(18);
+ }
+
+ /**
+ * Looker specific column info of this column.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.ColumnSchema.LookerColumnSpec looker_column_spec = 18;
+ * @param \Google\Cloud\DataCatalog\V1\ColumnSchema\LookerColumnSpec $var
+ * @return $this
+ */
+ public function setLookerColumnSpec($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\ColumnSchema\LookerColumnSpec::class);
+ $this->writeOneof(18, $var);
+
+ return $this;
+ }
+
+ /**
+ * Optional. The subtype of the RANGE, if the type of this field is RANGE. If
+ * the type is RANGE, this field is required. Possible values for the field
+ * element type of a RANGE include:
+ * * DATE
+ * * DATETIME
+ * * TIMESTAMP
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.ColumnSchema.FieldElementType range_element_type = 19 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\DataCatalog\V1\ColumnSchema\FieldElementType|null
+ */
+ public function getRangeElementType()
+ {
+ return $this->range_element_type;
+ }
+
+ public function hasRangeElementType()
+ {
+ return isset($this->range_element_type);
+ }
+
+ public function clearRangeElementType()
+ {
+ unset($this->range_element_type);
+ }
+
+ /**
+ * Optional. The subtype of the RANGE, if the type of this field is RANGE. If
+ * the type is RANGE, this field is required. Possible values for the field
+ * element type of a RANGE include:
+ * * DATE
+ * * DATETIME
+ * * TIMESTAMP
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.ColumnSchema.FieldElementType range_element_type = 19 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\DataCatalog\V1\ColumnSchema\FieldElementType $var
+ * @return $this
+ */
+ public function setRangeElementType($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\ColumnSchema\FieldElementType::class);
+ $this->range_element_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Garbage collection policy for the column or column family.
+ * Applies to systems like Cloud Bigtable.
+ *
+ * Generated from protobuf field string gc_rule = 11 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getGcRule()
+ {
+ return $this->gc_rule;
+ }
+
+ /**
+ * Optional. Garbage collection policy for the column or column family.
+ * Applies to systems like Cloud Bigtable.
+ *
+ * Generated from protobuf field string gc_rule = 11 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setGcRule($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->gc_rule = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getSystemSpec()
+ {
+ return $this->whichOneof("system_spec");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ColumnSchema/FieldElementType.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ColumnSchema/FieldElementType.php
new file mode 100644
index 000000000000..0a8470dc85c3
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ColumnSchema/FieldElementType.php
@@ -0,0 +1,74 @@
+google.cloud.datacatalog.v1.ColumnSchema.FieldElementType
+ */
+class FieldElementType extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The type of a field element. See
+ * [ColumnSchema.type][google.cloud.datacatalog.v1.ColumnSchema.type].
+ *
+ * Generated from protobuf field string type = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $type = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $type
+ * Required. The type of a field element. See
+ * [ColumnSchema.type][google.cloud.datacatalog.v1.ColumnSchema.type].
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Schema::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The type of a field element. See
+ * [ColumnSchema.type][google.cloud.datacatalog.v1.ColumnSchema.type].
+ *
+ * Generated from protobuf field string type = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * Required. The type of a field element. See
+ * [ColumnSchema.type][google.cloud.datacatalog.v1.ColumnSchema.type].
+ *
+ * Generated from protobuf field string type = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->type = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(FieldElementType::class, \Google\Cloud\DataCatalog\V1\ColumnSchema_FieldElementType::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ColumnSchema/IndexingType.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ColumnSchema/IndexingType.php
new file mode 100644
index 000000000000..88e5298ab423
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ColumnSchema/IndexingType.php
@@ -0,0 +1,78 @@
+google.cloud.datacatalog.v1.ColumnSchema.IndexingType
+ */
+class IndexingType
+{
+ /**
+ * Unspecified.
+ *
+ * Generated from protobuf enum INDEXING_TYPE_UNSPECIFIED = 0;
+ */
+ const INDEXING_TYPE_UNSPECIFIED = 0;
+ /**
+ * Column not a part of an index.
+ *
+ * Generated from protobuf enum INDEXING_TYPE_NONE = 1;
+ */
+ const INDEXING_TYPE_NONE = 1;
+ /**
+ * Column Part of non unique index.
+ *
+ * Generated from protobuf enum INDEXING_TYPE_NON_UNIQUE = 2;
+ */
+ const INDEXING_TYPE_NON_UNIQUE = 2;
+ /**
+ * Column part of unique index.
+ *
+ * Generated from protobuf enum INDEXING_TYPE_UNIQUE = 3;
+ */
+ const INDEXING_TYPE_UNIQUE = 3;
+ /**
+ * Column part of the primary key.
+ *
+ * Generated from protobuf enum INDEXING_TYPE_PRIMARY_KEY = 4;
+ */
+ const INDEXING_TYPE_PRIMARY_KEY = 4;
+
+ private static $valueToName = [
+ self::INDEXING_TYPE_UNSPECIFIED => 'INDEXING_TYPE_UNSPECIFIED',
+ self::INDEXING_TYPE_NONE => 'INDEXING_TYPE_NONE',
+ self::INDEXING_TYPE_NON_UNIQUE => 'INDEXING_TYPE_NON_UNIQUE',
+ self::INDEXING_TYPE_UNIQUE => 'INDEXING_TYPE_UNIQUE',
+ self::INDEXING_TYPE_PRIMARY_KEY => 'INDEXING_TYPE_PRIMARY_KEY',
+ ];
+
+ 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(IndexingType::class, \Google\Cloud\DataCatalog\V1\ColumnSchema_IndexingType::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ColumnSchema/LookerColumnSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ColumnSchema/LookerColumnSpec.php
new file mode 100644
index 000000000000..7fa381a72a8f
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ColumnSchema/LookerColumnSpec.php
@@ -0,0 +1,70 @@
+google.cloud.datacatalog.v1.ColumnSchema.LookerColumnSpec
+ */
+class LookerColumnSpec extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Looker specific column type of this column.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.ColumnSchema.LookerColumnSpec.LookerColumnType type = 1;
+ */
+ protected $type = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $type
+ * Looker specific column type of this column.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Schema::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Looker specific column type of this column.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.ColumnSchema.LookerColumnSpec.LookerColumnType type = 1;
+ * @return int
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * Looker specific column type of this column.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.ColumnSchema.LookerColumnSpec.LookerColumnType type = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\DataCatalog\V1\ColumnSchema\LookerColumnSpec\LookerColumnType::class);
+ $this->type = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(LookerColumnSpec::class, \Google\Cloud\DataCatalog\V1\ColumnSchema_LookerColumnSpec::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ColumnSchema/LookerColumnSpec/LookerColumnType.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ColumnSchema/LookerColumnSpec/LookerColumnType.php
new file mode 100644
index 000000000000..b2db79f640d0
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ColumnSchema/LookerColumnSpec/LookerColumnType.php
@@ -0,0 +1,85 @@
+google.cloud.datacatalog.v1.ColumnSchema.LookerColumnSpec.LookerColumnType
+ */
+class LookerColumnType
+{
+ /**
+ * Unspecified.
+ *
+ * Generated from protobuf enum LOOKER_COLUMN_TYPE_UNSPECIFIED = 0;
+ */
+ const LOOKER_COLUMN_TYPE_UNSPECIFIED = 0;
+ /**
+ * Dimension.
+ *
+ * Generated from protobuf enum DIMENSION = 1;
+ */
+ const DIMENSION = 1;
+ /**
+ * Dimension group - parent for Dimension.
+ *
+ * Generated from protobuf enum DIMENSION_GROUP = 2;
+ */
+ const DIMENSION_GROUP = 2;
+ /**
+ * Filter.
+ *
+ * Generated from protobuf enum FILTER = 3;
+ */
+ const FILTER = 3;
+ /**
+ * Measure.
+ *
+ * Generated from protobuf enum MEASURE = 4;
+ */
+ const MEASURE = 4;
+ /**
+ * Parameter.
+ *
+ * Generated from protobuf enum PARAMETER = 5;
+ */
+ const PARAMETER = 5;
+
+ private static $valueToName = [
+ self::LOOKER_COLUMN_TYPE_UNSPECIFIED => 'LOOKER_COLUMN_TYPE_UNSPECIFIED',
+ self::DIMENSION => 'DIMENSION',
+ self::DIMENSION_GROUP => 'DIMENSION_GROUP',
+ self::FILTER => 'FILTER',
+ self::MEASURE => 'MEASURE',
+ self::PARAMETER => 'PARAMETER',
+ ];
+
+ 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(LookerColumnType::class, \Google\Cloud\DataCatalog\V1\ColumnSchema_LookerColumnSpec_LookerColumnType::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CommonUsageStats.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CommonUsageStats.php
new file mode 100644
index 000000000000..a3f5a8bd425a
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CommonUsageStats.php
@@ -0,0 +1,78 @@
+google.cloud.datacatalog.v1.CommonUsageStats
+ */
+class CommonUsageStats extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * View count in source system.
+ *
+ * Generated from protobuf field optional int64 view_count = 1;
+ */
+ protected $view_count = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $view_count
+ * View count in source system.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Usage::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * View count in source system.
+ *
+ * Generated from protobuf field optional int64 view_count = 1;
+ * @return int|string
+ */
+ public function getViewCount()
+ {
+ return isset($this->view_count) ? $this->view_count : 0;
+ }
+
+ public function hasViewCount()
+ {
+ return isset($this->view_count);
+ }
+
+ public function clearViewCount()
+ {
+ unset($this->view_count);
+ }
+
+ /**
+ * View count in source system.
+ *
+ * Generated from protobuf field optional int64 view_count = 1;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setViewCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->view_count = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/Contacts.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/Contacts.php
new file mode 100644
index 000000000000..3da08ebbe67c
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/Contacts.php
@@ -0,0 +1,67 @@
+google.cloud.datacatalog.v1.Contacts
+ */
+class Contacts extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of contact people for the entry.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Contacts.Person people = 1;
+ */
+ private $people;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\DataCatalog\V1\Contacts\Person>|\Google\Protobuf\Internal\RepeatedField $people
+ * The list of contact people for the entry.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of contact people for the entry.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Contacts.Person people = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getPeople()
+ {
+ return $this->people;
+ }
+
+ /**
+ * The list of contact people for the entry.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Contacts.Person people = 1;
+ * @param array<\Google\Cloud\DataCatalog\V1\Contacts\Person>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setPeople($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\DataCatalog\V1\Contacts\Person::class);
+ $this->people = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/Contacts/Person.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/Contacts/Person.php
new file mode 100644
index 000000000000..a517a943a789
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/Contacts/Person.php
@@ -0,0 +1,108 @@
+google.cloud.datacatalog.v1.Contacts.Person
+ */
+class Person extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Designation of the person, for example, Data Steward.
+ *
+ * Generated from protobuf field string designation = 1;
+ */
+ protected $designation = '';
+ /**
+ * Email of the person in the format of `john.doe@xyz`,
+ * ``, or `John Doe`.
+ *
+ * Generated from protobuf field string email = 2;
+ */
+ protected $email = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $designation
+ * Designation of the person, for example, Data Steward.
+ * @type string $email
+ * Email of the person in the format of `john.doe@xyz`,
+ * ``, or `John Doe`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Designation of the person, for example, Data Steward.
+ *
+ * Generated from protobuf field string designation = 1;
+ * @return string
+ */
+ public function getDesignation()
+ {
+ return $this->designation;
+ }
+
+ /**
+ * Designation of the person, for example, Data Steward.
+ *
+ * Generated from protobuf field string designation = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setDesignation($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->designation = $var;
+
+ return $this;
+ }
+
+ /**
+ * Email of the person in the format of `john.doe@xyz`,
+ * ``, or `John Doe`.
+ *
+ * Generated from protobuf field string email = 2;
+ * @return string
+ */
+ public function getEmail()
+ {
+ return $this->email;
+ }
+
+ /**
+ * Email of the person in the format of `john.doe@xyz`,
+ * ``, or `John Doe`.
+ *
+ * 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;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Person::class, \Google\Cloud\DataCatalog\V1\Contacts_Person::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CreateEntryGroupRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CreateEntryGroupRequest.php
new file mode 100644
index 000000000000..39f4d66f8d5e
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CreateEntryGroupRequest.php
@@ -0,0 +1,196 @@
+google.cloud.datacatalog.v1.CreateEntryGroupRequest
+ */
+class CreateEntryGroupRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The names of the project and location that the new entry group
+ * belongs to.
+ * Note: The entry group itself and its child resources might not be
+ * stored in the location specified in its name.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The ID of the entry group to create.
+ * The ID must contain only letters (a-z, A-Z), numbers (0-9),
+ * underscores (_), and must start with a letter or underscore.
+ * The maximum size is 64 bytes when encoded in UTF-8.
+ *
+ * Generated from protobuf field string entry_group_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $entry_group_id = '';
+ /**
+ * The entry group to create. Defaults to empty.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.EntryGroup entry_group = 2;
+ */
+ protected $entry_group = null;
+
+ /**
+ * @param string $parent Required. The names of the project and location that the new entry group
+ * belongs to.
+ *
+ * Note: The entry group itself and its child resources might not be
+ * stored in the location specified in its name. Please see
+ * {@see DataCatalogClient::locationName()} for help formatting this field.
+ * @param string $entryGroupId Required. The ID of the entry group to create.
+ *
+ * The ID must contain only letters (a-z, A-Z), numbers (0-9),
+ * underscores (_), and must start with a letter or underscore.
+ * The maximum size is 64 bytes when encoded in UTF-8.
+ * @param \Google\Cloud\DataCatalog\V1\EntryGroup $entryGroup The entry group to create. Defaults to empty.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\CreateEntryGroupRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, string $entryGroupId, \Google\Cloud\DataCatalog\V1\EntryGroup $entryGroup): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setEntryGroupId($entryGroupId)
+ ->setEntryGroup($entryGroup);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The names of the project and location that the new entry group
+ * belongs to.
+ * Note: The entry group itself and its child resources might not be
+ * stored in the location specified in its name.
+ * @type string $entry_group_id
+ * Required. The ID of the entry group to create.
+ * The ID must contain only letters (a-z, A-Z), numbers (0-9),
+ * underscores (_), and must start with a letter or underscore.
+ * The maximum size is 64 bytes when encoded in UTF-8.
+ * @type \Google\Cloud\DataCatalog\V1\EntryGroup $entry_group
+ * The entry group to create. Defaults to empty.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The names of the project and location that the new entry group
+ * belongs to.
+ * Note: The entry group itself and its child resources might not be
+ * stored in the location specified in its 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 names of the project and location that the new entry group
+ * belongs to.
+ * Note: The entry group itself and its child resources might not be
+ * stored in the location specified in its 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. The ID of the entry group to create.
+ * The ID must contain only letters (a-z, A-Z), numbers (0-9),
+ * underscores (_), and must start with a letter or underscore.
+ * The maximum size is 64 bytes when encoded in UTF-8.
+ *
+ * Generated from protobuf field string entry_group_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getEntryGroupId()
+ {
+ return $this->entry_group_id;
+ }
+
+ /**
+ * Required. The ID of the entry group to create.
+ * The ID must contain only letters (a-z, A-Z), numbers (0-9),
+ * underscores (_), and must start with a letter or underscore.
+ * The maximum size is 64 bytes when encoded in UTF-8.
+ *
+ * Generated from protobuf field string entry_group_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setEntryGroupId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->entry_group_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The entry group to create. Defaults to empty.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.EntryGroup entry_group = 2;
+ * @return \Google\Cloud\DataCatalog\V1\EntryGroup|null
+ */
+ public function getEntryGroup()
+ {
+ return $this->entry_group;
+ }
+
+ public function hasEntryGroup()
+ {
+ return isset($this->entry_group);
+ }
+
+ public function clearEntryGroup()
+ {
+ unset($this->entry_group);
+ }
+
+ /**
+ * The entry group to create. Defaults to empty.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.EntryGroup entry_group = 2;
+ * @param \Google\Cloud\DataCatalog\V1\EntryGroup $var
+ * @return $this
+ */
+ public function setEntryGroup($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\EntryGroup::class);
+ $this->entry_group = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CreateEntryRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CreateEntryRequest.php
new file mode 100644
index 000000000000..fd4686b7581c
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CreateEntryRequest.php
@@ -0,0 +1,191 @@
+google.cloud.datacatalog.v1.CreateEntryRequest
+ */
+class CreateEntryRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the entry group this entry belongs to.
+ * Note: The entry itself and its child resources might not be stored in
+ * the location specified in its name.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The ID of the entry to create.
+ * The ID must contain only letters (a-z, A-Z), numbers (0-9),
+ * and underscores (_).
+ * The maximum size is 64 bytes when encoded in UTF-8.
+ *
+ * Generated from protobuf field string entry_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $entry_id = '';
+ /**
+ * Required. The entry to create.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Entry entry = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $entry = null;
+
+ /**
+ * @param string $parent Required. The name of the entry group this entry belongs to.
+ *
+ * Note: The entry itself and its child resources might not be stored in
+ * the location specified in its name. Please see
+ * {@see DataCatalogClient::entryGroupName()} for help formatting this field.
+ * @param string $entryId Required. The ID of the entry to create.
+ *
+ * The ID must contain only letters (a-z, A-Z), numbers (0-9),
+ * and underscores (_).
+ * The maximum size is 64 bytes when encoded in UTF-8.
+ * @param \Google\Cloud\DataCatalog\V1\Entry $entry Required. The entry to create.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\CreateEntryRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, string $entryId, \Google\Cloud\DataCatalog\V1\Entry $entry): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setEntryId($entryId)
+ ->setEntry($entry);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The name of the entry group this entry belongs to.
+ * Note: The entry itself and its child resources might not be stored in
+ * the location specified in its name.
+ * @type string $entry_id
+ * Required. The ID of the entry to create.
+ * The ID must contain only letters (a-z, A-Z), numbers (0-9),
+ * and underscores (_).
+ * The maximum size is 64 bytes when encoded in UTF-8.
+ * @type \Google\Cloud\DataCatalog\V1\Entry $entry
+ * Required. The entry to create.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the entry group this entry belongs to.
+ * Note: The entry itself and its child resources might not be stored in
+ * the location specified in its 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 name of the entry group this entry belongs to.
+ * Note: The entry itself and its child resources might not be stored in
+ * the location specified in its 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. The ID of the entry to create.
+ * The ID must contain only letters (a-z, A-Z), numbers (0-9),
+ * and underscores (_).
+ * The maximum size is 64 bytes when encoded in UTF-8.
+ *
+ * Generated from protobuf field string entry_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getEntryId()
+ {
+ return $this->entry_id;
+ }
+
+ /**
+ * Required. The ID of the entry to create.
+ * The ID must contain only letters (a-z, A-Z), numbers (0-9),
+ * and underscores (_).
+ * The maximum size is 64 bytes when encoded in UTF-8.
+ *
+ * Generated from protobuf field string entry_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setEntryId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->entry_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The entry to create.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Entry entry = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\DataCatalog\V1\Entry|null
+ */
+ public function getEntry()
+ {
+ return $this->entry;
+ }
+
+ public function hasEntry()
+ {
+ return isset($this->entry);
+ }
+
+ public function clearEntry()
+ {
+ unset($this->entry);
+ }
+
+ /**
+ * Required. The entry to create.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Entry entry = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\DataCatalog\V1\Entry $var
+ * @return $this
+ */
+ public function setEntry($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\Entry::class);
+ $this->entry = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CreatePolicyTagRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CreatePolicyTagRequest.php
new file mode 100644
index 000000000000..064c852d0a2b
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CreatePolicyTagRequest.php
@@ -0,0 +1,128 @@
+google.cloud.datacatalog.v1.CreatePolicyTagRequest
+ */
+class CreatePolicyTagRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name of the taxonomy that the policy tag will belong to.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * The policy tag to create.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.PolicyTag policy_tag = 2;
+ */
+ protected $policy_tag = null;
+
+ /**
+ * @param string $parent Required. Resource name of the taxonomy that the policy tag will belong to. Please see
+ * {@see PolicyTagManagerClient::taxonomyName()} for help formatting this field.
+ * @param \Google\Cloud\DataCatalog\V1\PolicyTag $policyTag The policy tag to create.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\CreatePolicyTagRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\DataCatalog\V1\PolicyTag $policyTag): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setPolicyTag($policyTag);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Resource name of the taxonomy that the policy tag will belong to.
+ * @type \Google\Cloud\DataCatalog\V1\PolicyTag $policy_tag
+ * The policy tag to create.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Policytagmanager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name of the taxonomy that the policy tag will belong to.
+ *
+ * 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. Resource name of the taxonomy that the policy tag will belong to.
+ *
+ * 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 policy tag to create.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.PolicyTag policy_tag = 2;
+ * @return \Google\Cloud\DataCatalog\V1\PolicyTag|null
+ */
+ public function getPolicyTag()
+ {
+ return $this->policy_tag;
+ }
+
+ public function hasPolicyTag()
+ {
+ return isset($this->policy_tag);
+ }
+
+ public function clearPolicyTag()
+ {
+ unset($this->policy_tag);
+ }
+
+ /**
+ * The policy tag to create.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.PolicyTag policy_tag = 2;
+ * @param \Google\Cloud\DataCatalog\V1\PolicyTag $var
+ * @return $this
+ */
+ public function setPolicyTag($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\PolicyTag::class);
+ $this->policy_tag = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CreateTagRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CreateTagRequest.php
new file mode 100644
index 000000000000..a226f5e17c49
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CreateTagRequest.php
@@ -0,0 +1,150 @@
+google.cloud.datacatalog.v1.CreateTagRequest
+ */
+class CreateTagRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the resource to attach this tag to.
+ * Tags can be attached to entries or entry groups. An entry can have up to
+ * 1000 attached tags.
+ * Note: The tag and its child resources might not be stored in
+ * the location specified in its name.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The tag to create.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Tag tag = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $tag = null;
+
+ /**
+ * @param string $parent Required. The name of the resource to attach this tag to.
+ *
+ * Tags can be attached to entries or entry groups. An entry can have up to
+ * 1000 attached tags.
+ *
+ * Note: The tag and its child resources might not be stored in
+ * the location specified in its name. Please see
+ * {@see DataCatalogClient::entryName()} for help formatting this field.
+ * @param \Google\Cloud\DataCatalog\V1\Tag $tag Required. The tag to create.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\CreateTagRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\DataCatalog\V1\Tag $tag): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setTag($tag);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The name of the resource to attach this tag to.
+ * Tags can be attached to entries or entry groups. An entry can have up to
+ * 1000 attached tags.
+ * Note: The tag and its child resources might not be stored in
+ * the location specified in its name.
+ * @type \Google\Cloud\DataCatalog\V1\Tag $tag
+ * Required. The tag to create.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the resource to attach this tag to.
+ * Tags can be attached to entries or entry groups. An entry can have up to
+ * 1000 attached tags.
+ * Note: The tag and its child resources might not be stored in
+ * the location specified in its 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 name of the resource to attach this tag to.
+ * Tags can be attached to entries or entry groups. An entry can have up to
+ * 1000 attached tags.
+ * Note: The tag and its child resources might not be stored in
+ * the location specified in its 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. The tag to create.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Tag tag = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\DataCatalog\V1\Tag|null
+ */
+ public function getTag()
+ {
+ return $this->tag;
+ }
+
+ public function hasTag()
+ {
+ return isset($this->tag);
+ }
+
+ public function clearTag()
+ {
+ unset($this->tag);
+ }
+
+ /**
+ * Required. The tag to create.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Tag tag = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\DataCatalog\V1\Tag $var
+ * @return $this
+ */
+ public function setTag($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\Tag::class);
+ $this->tag = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CreateTagTemplateFieldRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CreateTagTemplateFieldRequest.php
new file mode 100644
index 000000000000..e9b59f4f670e
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CreateTagTemplateFieldRequest.php
@@ -0,0 +1,196 @@
+google.cloud.datacatalog.v1.CreateTagTemplateFieldRequest
+ */
+class CreateTagTemplateFieldRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the project and the template location
+ * [region](https://cloud.google.com/data-catalog/docs/concepts/regions).
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The ID of the tag template field to create.
+ * Note: Adding a required field to an existing template is *not* allowed.
+ * Field IDs can contain letters (both uppercase and lowercase), numbers
+ * (0-9), underscores (_) and dashes (-). Field IDs must be at least 1
+ * character long and at most 128 characters long. Field IDs must also be
+ * unique within their template.
+ *
+ * Generated from protobuf field string tag_template_field_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $tag_template_field_id = '';
+ /**
+ * Required. The tag template field to create.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.TagTemplateField tag_template_field = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $tag_template_field = null;
+
+ /**
+ * @param string $parent Required. The name of the project and the template location
+ * [region](https://cloud.google.com/data-catalog/docs/concepts/regions). Please see
+ * {@see DataCatalogClient::tagTemplateName()} for help formatting this field.
+ * @param string $tagTemplateFieldId Required. The ID of the tag template field to create.
+ *
+ * Note: Adding a required field to an existing template is *not* allowed.
+ *
+ * Field IDs can contain letters (both uppercase and lowercase), numbers
+ * (0-9), underscores (_) and dashes (-). Field IDs must be at least 1
+ * character long and at most 128 characters long. Field IDs must also be
+ * unique within their template.
+ * @param \Google\Cloud\DataCatalog\V1\TagTemplateField $tagTemplateField Required. The tag template field to create.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\CreateTagTemplateFieldRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, string $tagTemplateFieldId, \Google\Cloud\DataCatalog\V1\TagTemplateField $tagTemplateField): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setTagTemplateFieldId($tagTemplateFieldId)
+ ->setTagTemplateField($tagTemplateField);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The name of the project and the template location
+ * [region](https://cloud.google.com/data-catalog/docs/concepts/regions).
+ * @type string $tag_template_field_id
+ * Required. The ID of the tag template field to create.
+ * Note: Adding a required field to an existing template is *not* allowed.
+ * Field IDs can contain letters (both uppercase and lowercase), numbers
+ * (0-9), underscores (_) and dashes (-). Field IDs must be at least 1
+ * character long and at most 128 characters long. Field IDs must also be
+ * unique within their template.
+ * @type \Google\Cloud\DataCatalog\V1\TagTemplateField $tag_template_field
+ * Required. The tag template field to create.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the project and the template location
+ * [region](https://cloud.google.com/data-catalog/docs/concepts/regions).
+ *
+ * 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 project and the template location
+ * [region](https://cloud.google.com/data-catalog/docs/concepts/regions).
+ *
+ * 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 tag template field to create.
+ * Note: Adding a required field to an existing template is *not* allowed.
+ * Field IDs can contain letters (both uppercase and lowercase), numbers
+ * (0-9), underscores (_) and dashes (-). Field IDs must be at least 1
+ * character long and at most 128 characters long. Field IDs must also be
+ * unique within their template.
+ *
+ * Generated from protobuf field string tag_template_field_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getTagTemplateFieldId()
+ {
+ return $this->tag_template_field_id;
+ }
+
+ /**
+ * Required. The ID of the tag template field to create.
+ * Note: Adding a required field to an existing template is *not* allowed.
+ * Field IDs can contain letters (both uppercase and lowercase), numbers
+ * (0-9), underscores (_) and dashes (-). Field IDs must be at least 1
+ * character long and at most 128 characters long. Field IDs must also be
+ * unique within their template.
+ *
+ * Generated from protobuf field string tag_template_field_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setTagTemplateFieldId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->tag_template_field_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The tag template field to create.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.TagTemplateField tag_template_field = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\DataCatalog\V1\TagTemplateField|null
+ */
+ public function getTagTemplateField()
+ {
+ return $this->tag_template_field;
+ }
+
+ public function hasTagTemplateField()
+ {
+ return isset($this->tag_template_field);
+ }
+
+ public function clearTagTemplateField()
+ {
+ unset($this->tag_template_field);
+ }
+
+ /**
+ * Required. The tag template field to create.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.TagTemplateField tag_template_field = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\DataCatalog\V1\TagTemplateField $var
+ * @return $this
+ */
+ public function setTagTemplateField($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\TagTemplateField::class);
+ $this->tag_template_field = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CreateTagTemplateRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CreateTagTemplateRequest.php
new file mode 100644
index 000000000000..59ff04cc98e8
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CreateTagTemplateRequest.php
@@ -0,0 +1,185 @@
+google.cloud.datacatalog.v1.CreateTagTemplateRequest
+ */
+class CreateTagTemplateRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the project and the template location
+ * [region](https://cloud.google.com/data-catalog/docs/concepts/regions).
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The ID of the tag template to create.
+ * The ID must contain only lowercase letters (a-z), numbers (0-9),
+ * or underscores (_), and must start with a letter or underscore.
+ * The maximum size is 64 bytes when encoded in UTF-8.
+ *
+ * Generated from protobuf field string tag_template_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $tag_template_id = '';
+ /**
+ * Required. The tag template to create.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.TagTemplate tag_template = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $tag_template = null;
+
+ /**
+ * @param string $parent Required. The name of the project and the template location
+ * [region](https://cloud.google.com/data-catalog/docs/concepts/regions). Please see
+ * {@see DataCatalogClient::locationName()} for help formatting this field.
+ * @param string $tagTemplateId Required. The ID of the tag template to create.
+ *
+ * The ID must contain only lowercase letters (a-z), numbers (0-9),
+ * or underscores (_), and must start with a letter or underscore.
+ * The maximum size is 64 bytes when encoded in UTF-8.
+ * @param \Google\Cloud\DataCatalog\V1\TagTemplate $tagTemplate Required. The tag template to create.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\CreateTagTemplateRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, string $tagTemplateId, \Google\Cloud\DataCatalog\V1\TagTemplate $tagTemplate): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setTagTemplateId($tagTemplateId)
+ ->setTagTemplate($tagTemplate);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The name of the project and the template location
+ * [region](https://cloud.google.com/data-catalog/docs/concepts/regions).
+ * @type string $tag_template_id
+ * Required. The ID of the tag template to create.
+ * The ID must contain only lowercase letters (a-z), numbers (0-9),
+ * or underscores (_), and must start with a letter or underscore.
+ * The maximum size is 64 bytes when encoded in UTF-8.
+ * @type \Google\Cloud\DataCatalog\V1\TagTemplate $tag_template
+ * Required. The tag template to create.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the project and the template location
+ * [region](https://cloud.google.com/data-catalog/docs/concepts/regions).
+ *
+ * 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 project and the template location
+ * [region](https://cloud.google.com/data-catalog/docs/concepts/regions).
+ *
+ * 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 tag template to create.
+ * The ID must contain only lowercase letters (a-z), numbers (0-9),
+ * or underscores (_), and must start with a letter or underscore.
+ * The maximum size is 64 bytes when encoded in UTF-8.
+ *
+ * Generated from protobuf field string tag_template_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getTagTemplateId()
+ {
+ return $this->tag_template_id;
+ }
+
+ /**
+ * Required. The ID of the tag template to create.
+ * The ID must contain only lowercase letters (a-z), numbers (0-9),
+ * or underscores (_), and must start with a letter or underscore.
+ * The maximum size is 64 bytes when encoded in UTF-8.
+ *
+ * Generated from protobuf field string tag_template_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setTagTemplateId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->tag_template_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The tag template to create.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.TagTemplate tag_template = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\DataCatalog\V1\TagTemplate|null
+ */
+ public function getTagTemplate()
+ {
+ return $this->tag_template;
+ }
+
+ public function hasTagTemplate()
+ {
+ return isset($this->tag_template);
+ }
+
+ public function clearTagTemplate()
+ {
+ unset($this->tag_template);
+ }
+
+ /**
+ * Required. The tag template to create.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.TagTemplate tag_template = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\DataCatalog\V1\TagTemplate $var
+ * @return $this
+ */
+ public function setTagTemplate($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\TagTemplate::class);
+ $this->tag_template = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CreateTaxonomyRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CreateTaxonomyRequest.php
new file mode 100644
index 000000000000..915bbd53a633
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CreateTaxonomyRequest.php
@@ -0,0 +1,128 @@
+google.cloud.datacatalog.v1.CreateTaxonomyRequest
+ */
+class CreateTaxonomyRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name of the project that the taxonomy will belong to.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * The taxonomy to create.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Taxonomy taxonomy = 2;
+ */
+ protected $taxonomy = null;
+
+ /**
+ * @param string $parent Required. Resource name of the project that the taxonomy will belong to. Please see
+ * {@see PolicyTagManagerClient::locationName()} for help formatting this field.
+ * @param \Google\Cloud\DataCatalog\V1\Taxonomy $taxonomy The taxonomy to create.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\CreateTaxonomyRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\DataCatalog\V1\Taxonomy $taxonomy): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setTaxonomy($taxonomy);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Resource name of the project that the taxonomy will belong to.
+ * @type \Google\Cloud\DataCatalog\V1\Taxonomy $taxonomy
+ * The taxonomy to create.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Policytagmanager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name of the project that the taxonomy will belong to.
+ *
+ * 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. Resource name of the project that the taxonomy will belong to.
+ *
+ * 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 taxonomy to create.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Taxonomy taxonomy = 2;
+ * @return \Google\Cloud\DataCatalog\V1\Taxonomy|null
+ */
+ public function getTaxonomy()
+ {
+ return $this->taxonomy;
+ }
+
+ public function hasTaxonomy()
+ {
+ return isset($this->taxonomy);
+ }
+
+ public function clearTaxonomy()
+ {
+ unset($this->taxonomy);
+ }
+
+ /**
+ * The taxonomy to create.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Taxonomy taxonomy = 2;
+ * @param \Google\Cloud\DataCatalog\V1\Taxonomy $var
+ * @return $this
+ */
+ public function setTaxonomy($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\Taxonomy::class);
+ $this->taxonomy = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CrossRegionalSource.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CrossRegionalSource.php
new file mode 100644
index 000000000000..fd871a9080bf
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/CrossRegionalSource.php
@@ -0,0 +1,68 @@
+google.cloud.datacatalog.v1.CrossRegionalSource
+ */
+class CrossRegionalSource extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The resource name of the source taxonomy to import.
+ *
+ * Generated from protobuf field string taxonomy = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $taxonomy = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $taxonomy
+ * Required. The resource name of the source taxonomy to import.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Policytagmanagerserialization::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The resource name of the source taxonomy to import.
+ *
+ * Generated from protobuf field string taxonomy = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getTaxonomy()
+ {
+ return $this->taxonomy;
+ }
+
+ /**
+ * Required. The resource name of the source taxonomy to import.
+ *
+ * Generated from protobuf field string taxonomy = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setTaxonomy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->taxonomy = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DataSource.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DataSource.php
new file mode 100644
index 000000000000..09404782fe65
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DataSource.php
@@ -0,0 +1,181 @@
+google.cloud.datacatalog.v1.DataSource
+ */
+class DataSource extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Service that physically stores the data.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DataSource.Service service = 1;
+ */
+ protected $service = 0;
+ /**
+ * Full name of a resource as defined by the service. For example:
+ * `//bigquery.googleapis.com/projects/{PROJECT_ID}/locations/{LOCATION}/datasets/{DATASET_ID}/tables/{TABLE_ID}`
+ *
+ * Generated from protobuf field string resource = 2;
+ */
+ protected $resource = '';
+ /**
+ * Output only. Data Catalog entry name, if applicable.
+ *
+ * Generated from protobuf field string source_entry = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $source_entry = '';
+ protected $properties;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $service
+ * Service that physically stores the data.
+ * @type string $resource
+ * Full name of a resource as defined by the service. For example:
+ * `//bigquery.googleapis.com/projects/{PROJECT_ID}/locations/{LOCATION}/datasets/{DATASET_ID}/tables/{TABLE_ID}`
+ * @type string $source_entry
+ * Output only. Data Catalog entry name, if applicable.
+ * @type \Google\Cloud\DataCatalog\V1\StorageProperties $storage_properties
+ * Detailed properties of the underlying storage.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\DataSource::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Service that physically stores the data.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DataSource.Service service = 1;
+ * @return int
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ /**
+ * Service that physically stores the data.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DataSource.Service service = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\DataCatalog\V1\DataSource\Service::class);
+ $this->service = $var;
+
+ return $this;
+ }
+
+ /**
+ * Full name of a resource as defined by the service. For example:
+ * `//bigquery.googleapis.com/projects/{PROJECT_ID}/locations/{LOCATION}/datasets/{DATASET_ID}/tables/{TABLE_ID}`
+ *
+ * Generated from protobuf field string resource = 2;
+ * @return string
+ */
+ public function getResource()
+ {
+ return $this->resource;
+ }
+
+ /**
+ * Full name of a resource as defined by the service. For example:
+ * `//bigquery.googleapis.com/projects/{PROJECT_ID}/locations/{LOCATION}/datasets/{DATASET_ID}/tables/{TABLE_ID}`
+ *
+ * Generated from protobuf field string resource = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setResource($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->resource = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Data Catalog entry name, if applicable.
+ *
+ * Generated from protobuf field string source_entry = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getSourceEntry()
+ {
+ return $this->source_entry;
+ }
+
+ /**
+ * Output only. Data Catalog entry name, if applicable.
+ *
+ * Generated from protobuf field string source_entry = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setSourceEntry($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->source_entry = $var;
+
+ return $this;
+ }
+
+ /**
+ * Detailed properties of the underlying storage.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.StorageProperties storage_properties = 4;
+ * @return \Google\Cloud\DataCatalog\V1\StorageProperties|null
+ */
+ public function getStorageProperties()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasStorageProperties()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * Detailed properties of the underlying storage.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.StorageProperties storage_properties = 4;
+ * @param \Google\Cloud\DataCatalog\V1\StorageProperties $var
+ * @return $this
+ */
+ public function setStorageProperties($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\StorageProperties::class);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getProperties()
+ {
+ return $this->whichOneof("properties");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DataSource/Service.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DataSource/Service.php
new file mode 100644
index 000000000000..57568d1de5b2
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DataSource/Service.php
@@ -0,0 +1,64 @@
+google.cloud.datacatalog.v1.DataSource.Service
+ */
+class Service
+{
+ /**
+ * Default unknown service.
+ *
+ * Generated from protobuf enum SERVICE_UNSPECIFIED = 0;
+ */
+ const SERVICE_UNSPECIFIED = 0;
+ /**
+ * Google Cloud Storage service.
+ *
+ * Generated from protobuf enum CLOUD_STORAGE = 1;
+ */
+ const CLOUD_STORAGE = 1;
+ /**
+ * BigQuery service.
+ *
+ * Generated from protobuf enum BIGQUERY = 2;
+ */
+ const BIGQUERY = 2;
+
+ private static $valueToName = [
+ self::SERVICE_UNSPECIFIED => 'SERVICE_UNSPECIFIED',
+ self::CLOUD_STORAGE => 'CLOUD_STORAGE',
+ self::BIGQUERY => 'BIGQUERY',
+ ];
+
+ 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(Service::class, \Google\Cloud\DataCatalog\V1\DataSource_Service::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DataSourceConnectionSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DataSourceConnectionSpec.php
new file mode 100644
index 000000000000..79706866f1ef
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DataSourceConnectionSpec.php
@@ -0,0 +1,80 @@
+google.cloud.datacatalog.v1.DataSourceConnectionSpec
+ */
+class DataSourceConnectionSpec extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. Fields specific to BigQuery connections.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.BigQueryConnectionSpec bigquery_connection_spec = 1;
+ */
+ protected $bigquery_connection_spec = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\DataCatalog\V1\BigQueryConnectionSpec $bigquery_connection_spec
+ * Output only. Fields specific to BigQuery connections.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Fields specific to BigQuery connections.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.BigQueryConnectionSpec bigquery_connection_spec = 1;
+ * @return \Google\Cloud\DataCatalog\V1\BigQueryConnectionSpec|null
+ */
+ public function getBigqueryConnectionSpec()
+ {
+ return $this->bigquery_connection_spec;
+ }
+
+ public function hasBigqueryConnectionSpec()
+ {
+ return isset($this->bigquery_connection_spec);
+ }
+
+ public function clearBigqueryConnectionSpec()
+ {
+ unset($this->bigquery_connection_spec);
+ }
+
+ /**
+ * Output only. Fields specific to BigQuery connections.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.BigQueryConnectionSpec bigquery_connection_spec = 1;
+ * @param \Google\Cloud\DataCatalog\V1\BigQueryConnectionSpec $var
+ * @return $this
+ */
+ public function setBigqueryConnectionSpec($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\BigQueryConnectionSpec::class);
+ $this->bigquery_connection_spec = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DatabaseTableSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DatabaseTableSpec.php
new file mode 100644
index 000000000000..8baa72ed9130
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DatabaseTableSpec.php
@@ -0,0 +1,164 @@
+google.cloud.datacatalog.v1.DatabaseTableSpec
+ */
+class DatabaseTableSpec extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Type of this table.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DatabaseTableSpec.TableType type = 1;
+ */
+ protected $type = 0;
+ /**
+ * Output only. Fields specific to a Dataplex table and present only in the
+ * Dataplex table entries.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DataplexTableSpec dataplex_table = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $dataplex_table = null;
+ /**
+ * Spec what aplies to tables that are actually views.
+ * Not set for "real" tables.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DatabaseTableSpec.DatabaseViewSpec database_view_spec = 3;
+ */
+ protected $database_view_spec = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $type
+ * Type of this table.
+ * @type \Google\Cloud\DataCatalog\V1\DataplexTableSpec $dataplex_table
+ * Output only. Fields specific to a Dataplex table and present only in the
+ * Dataplex table entries.
+ * @type \Google\Cloud\DataCatalog\V1\DatabaseTableSpec\DatabaseViewSpec $database_view_spec
+ * Spec what aplies to tables that are actually views.
+ * Not set for "real" tables.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Type of this table.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DatabaseTableSpec.TableType type = 1;
+ * @return int
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * Type of this table.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DatabaseTableSpec.TableType type = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\DataCatalog\V1\DatabaseTableSpec\TableType::class);
+ $this->type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Fields specific to a Dataplex table and present only in the
+ * Dataplex table entries.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DataplexTableSpec dataplex_table = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\DataCatalog\V1\DataplexTableSpec|null
+ */
+ public function getDataplexTable()
+ {
+ return $this->dataplex_table;
+ }
+
+ public function hasDataplexTable()
+ {
+ return isset($this->dataplex_table);
+ }
+
+ public function clearDataplexTable()
+ {
+ unset($this->dataplex_table);
+ }
+
+ /**
+ * Output only. Fields specific to a Dataplex table and present only in the
+ * Dataplex table entries.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DataplexTableSpec dataplex_table = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\DataCatalog\V1\DataplexTableSpec $var
+ * @return $this
+ */
+ public function setDataplexTable($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\DataplexTableSpec::class);
+ $this->dataplex_table = $var;
+
+ return $this;
+ }
+
+ /**
+ * Spec what aplies to tables that are actually views.
+ * Not set for "real" tables.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DatabaseTableSpec.DatabaseViewSpec database_view_spec = 3;
+ * @return \Google\Cloud\DataCatalog\V1\DatabaseTableSpec\DatabaseViewSpec|null
+ */
+ public function getDatabaseViewSpec()
+ {
+ return $this->database_view_spec;
+ }
+
+ public function hasDatabaseViewSpec()
+ {
+ return isset($this->database_view_spec);
+ }
+
+ public function clearDatabaseViewSpec()
+ {
+ unset($this->database_view_spec);
+ }
+
+ /**
+ * Spec what aplies to tables that are actually views.
+ * Not set for "real" tables.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DatabaseTableSpec.DatabaseViewSpec database_view_spec = 3;
+ * @param \Google\Cloud\DataCatalog\V1\DatabaseTableSpec\DatabaseViewSpec $var
+ * @return $this
+ */
+ public function setDatabaseViewSpec($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\DatabaseTableSpec\DatabaseViewSpec::class);
+ $this->database_view_spec = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DatabaseTableSpec/DatabaseViewSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DatabaseTableSpec/DatabaseViewSpec.php
new file mode 100644
index 000000000000..6be384655ea3
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DatabaseTableSpec/DatabaseViewSpec.php
@@ -0,0 +1,145 @@
+google.cloud.datacatalog.v1.DatabaseTableSpec.DatabaseViewSpec
+ */
+class DatabaseViewSpec extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Type of this view.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DatabaseTableSpec.DatabaseViewSpec.ViewType view_type = 1;
+ */
+ protected $view_type = 0;
+ protected $source_definition;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $view_type
+ * Type of this view.
+ * @type string $base_table
+ * Name of a singular table this view reflects one to one.
+ * @type string $sql_query
+ * SQL query used to generate this view.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Type of this view.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DatabaseTableSpec.DatabaseViewSpec.ViewType view_type = 1;
+ * @return int
+ */
+ public function getViewType()
+ {
+ return $this->view_type;
+ }
+
+ /**
+ * Type of this view.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DatabaseTableSpec.DatabaseViewSpec.ViewType view_type = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setViewType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\DataCatalog\V1\DatabaseTableSpec\DatabaseViewSpec\ViewType::class);
+ $this->view_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Name of a singular table this view reflects one to one.
+ *
+ * Generated from protobuf field string base_table = 2;
+ * @return string
+ */
+ public function getBaseTable()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasBaseTable()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Name of a singular table this view reflects one to one.
+ *
+ * Generated from protobuf field string base_table = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setBaseTable($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * SQL query used to generate this view.
+ *
+ * Generated from protobuf field string sql_query = 3;
+ * @return string
+ */
+ public function getSqlQuery()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasSqlQuery()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * SQL query used to generate this view.
+ *
+ * Generated from protobuf field string sql_query = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setSqlQuery($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getSourceDefinition()
+ {
+ return $this->whichOneof("source_definition");
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(DatabaseViewSpec::class, \Google\Cloud\DataCatalog\V1\DatabaseTableSpec_DatabaseViewSpec::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DatabaseTableSpec/DatabaseViewSpec/ViewType.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DatabaseTableSpec/DatabaseViewSpec/ViewType.php
new file mode 100644
index 000000000000..6e0092c6b218
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DatabaseTableSpec/DatabaseViewSpec/ViewType.php
@@ -0,0 +1,64 @@
+google.cloud.datacatalog.v1.DatabaseTableSpec.DatabaseViewSpec.ViewType
+ */
+class ViewType
+{
+ /**
+ * Default unknown view type.
+ *
+ * Generated from protobuf enum VIEW_TYPE_UNSPECIFIED = 0;
+ */
+ const VIEW_TYPE_UNSPECIFIED = 0;
+ /**
+ * Standard view.
+ *
+ * Generated from protobuf enum STANDARD_VIEW = 1;
+ */
+ const STANDARD_VIEW = 1;
+ /**
+ * Materialized view.
+ *
+ * Generated from protobuf enum MATERIALIZED_VIEW = 2;
+ */
+ const MATERIALIZED_VIEW = 2;
+
+ private static $valueToName = [
+ self::VIEW_TYPE_UNSPECIFIED => 'VIEW_TYPE_UNSPECIFIED',
+ self::STANDARD_VIEW => 'STANDARD_VIEW',
+ 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(ViewType::class, \Google\Cloud\DataCatalog\V1\DatabaseTableSpec_DatabaseViewSpec_ViewType::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DatabaseTableSpec/TableType.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DatabaseTableSpec/TableType.php
new file mode 100644
index 000000000000..c25cc7a54b26
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DatabaseTableSpec/TableType.php
@@ -0,0 +1,64 @@
+google.cloud.datacatalog.v1.DatabaseTableSpec.TableType
+ */
+class TableType
+{
+ /**
+ * Default unknown table type.
+ *
+ * Generated from protobuf enum TABLE_TYPE_UNSPECIFIED = 0;
+ */
+ const TABLE_TYPE_UNSPECIFIED = 0;
+ /**
+ * Native table.
+ *
+ * Generated from protobuf enum NATIVE = 1;
+ */
+ const NATIVE = 1;
+ /**
+ * External table.
+ *
+ * Generated from protobuf enum EXTERNAL = 2;
+ */
+ const EXTERNAL = 2;
+
+ private static $valueToName = [
+ self::TABLE_TYPE_UNSPECIFIED => 'TABLE_TYPE_UNSPECIFIED',
+ self::NATIVE => 'NATIVE',
+ self::EXTERNAL => 'EXTERNAL',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(TableType::class, \Google\Cloud\DataCatalog\V1\DatabaseTableSpec_TableType::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DataplexExternalTable.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DataplexExternalTable.php
new file mode 100644
index 000000000000..b80f582eeee2
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DataplexExternalTable.php
@@ -0,0 +1,175 @@
+google.cloud.datacatalog.v1.DataplexExternalTable
+ */
+class DataplexExternalTable extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Service in which the external table is registered.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.IntegratedSystem system = 1;
+ */
+ protected $system = 0;
+ /**
+ * Fully qualified name (FQN) of the external table.
+ *
+ * Generated from protobuf field string fully_qualified_name = 28;
+ */
+ protected $fully_qualified_name = '';
+ /**
+ * Google Cloud resource name of the external table.
+ *
+ * Generated from protobuf field string google_cloud_resource = 3;
+ */
+ protected $google_cloud_resource = '';
+ /**
+ * Name of the Data Catalog entry representing the external table.
+ *
+ * Generated from protobuf field string data_catalog_entry = 4;
+ */
+ protected $data_catalog_entry = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $system
+ * Service in which the external table is registered.
+ * @type string $fully_qualified_name
+ * Fully qualified name (FQN) of the external table.
+ * @type string $google_cloud_resource
+ * Google Cloud resource name of the external table.
+ * @type string $data_catalog_entry
+ * Name of the Data Catalog entry representing the external table.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\DataplexSpec::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Service in which the external table is registered.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.IntegratedSystem system = 1;
+ * @return int
+ */
+ public function getSystem()
+ {
+ return $this->system;
+ }
+
+ /**
+ * Service in which the external table is registered.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.IntegratedSystem system = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setSystem($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\DataCatalog\V1\IntegratedSystem::class);
+ $this->system = $var;
+
+ return $this;
+ }
+
+ /**
+ * Fully qualified name (FQN) of the external table.
+ *
+ * Generated from protobuf field string fully_qualified_name = 28;
+ * @return string
+ */
+ public function getFullyQualifiedName()
+ {
+ return $this->fully_qualified_name;
+ }
+
+ /**
+ * Fully qualified name (FQN) of the external table.
+ *
+ * Generated from protobuf field string fully_qualified_name = 28;
+ * @param string $var
+ * @return $this
+ */
+ public function setFullyQualifiedName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->fully_qualified_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Google Cloud resource name of the external table.
+ *
+ * Generated from protobuf field string google_cloud_resource = 3;
+ * @return string
+ */
+ public function getGoogleCloudResource()
+ {
+ return $this->google_cloud_resource;
+ }
+
+ /**
+ * Google Cloud resource name of the external table.
+ *
+ * Generated from protobuf field string google_cloud_resource = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setGoogleCloudResource($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->google_cloud_resource = $var;
+
+ return $this;
+ }
+
+ /**
+ * Name of the Data Catalog entry representing the external table.
+ *
+ * Generated from protobuf field string data_catalog_entry = 4;
+ * @return string
+ */
+ public function getDataCatalogEntry()
+ {
+ return $this->data_catalog_entry;
+ }
+
+ /**
+ * Name of the Data Catalog entry representing the external table.
+ *
+ * Generated from protobuf field string data_catalog_entry = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setDataCatalogEntry($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->data_catalog_entry = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DataplexFilesetSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DataplexFilesetSpec.php
new file mode 100644
index 000000000000..2d446c2e89ed
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DataplexFilesetSpec.php
@@ -0,0 +1,77 @@
+google.cloud.datacatalog.v1.DataplexFilesetSpec
+ */
+class DataplexFilesetSpec extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Common Dataplex fields.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DataplexSpec dataplex_spec = 1;
+ */
+ protected $dataplex_spec = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\DataCatalog\V1\DataplexSpec $dataplex_spec
+ * Common Dataplex fields.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\DataplexSpec::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Common Dataplex fields.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DataplexSpec dataplex_spec = 1;
+ * @return \Google\Cloud\DataCatalog\V1\DataplexSpec|null
+ */
+ public function getDataplexSpec()
+ {
+ return $this->dataplex_spec;
+ }
+
+ public function hasDataplexSpec()
+ {
+ return isset($this->dataplex_spec);
+ }
+
+ public function clearDataplexSpec()
+ {
+ unset($this->dataplex_spec);
+ }
+
+ /**
+ * Common Dataplex fields.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DataplexSpec dataplex_spec = 1;
+ * @param \Google\Cloud\DataCatalog\V1\DataplexSpec $var
+ * @return $this
+ */
+ public function setDataplexSpec($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\DataplexSpec::class);
+ $this->dataplex_spec = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DataplexSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DataplexSpec.php
new file mode 100644
index 000000000000..1cd799f4c9ca
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DataplexSpec.php
@@ -0,0 +1,195 @@
+google.cloud.datacatalog.v1.DataplexSpec
+ */
+class DataplexSpec extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Fully qualified resource name of an asset in Dataplex, to which the
+ * underlying data source (Cloud Storage bucket or BigQuery dataset) of the
+ * entity is attached.
+ *
+ * Generated from protobuf field string asset = 1;
+ */
+ protected $asset = '';
+ /**
+ * Format of the data.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.PhysicalSchema data_format = 2;
+ */
+ protected $data_format = null;
+ /**
+ * Compression format of the data, e.g., zip, gzip etc.
+ *
+ * Generated from protobuf field string compression_format = 3;
+ */
+ protected $compression_format = '';
+ /**
+ * Project ID of the underlying Cloud Storage or BigQuery data. Note that
+ * this may not be the same project as the correspondingly Dataplex lake /
+ * zone / asset.
+ *
+ * Generated from protobuf field string project_id = 4;
+ */
+ protected $project_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $asset
+ * Fully qualified resource name of an asset in Dataplex, to which the
+ * underlying data source (Cloud Storage bucket or BigQuery dataset) of the
+ * entity is attached.
+ * @type \Google\Cloud\DataCatalog\V1\PhysicalSchema $data_format
+ * Format of the data.
+ * @type string $compression_format
+ * Compression format of the data, e.g., zip, gzip etc.
+ * @type string $project_id
+ * Project ID of the underlying Cloud Storage or BigQuery data. Note that
+ * this may not be the same project as the correspondingly Dataplex lake /
+ * zone / asset.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\DataplexSpec::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Fully qualified resource name of an asset in Dataplex, to which the
+ * underlying data source (Cloud Storage bucket or BigQuery dataset) of the
+ * entity is attached.
+ *
+ * Generated from protobuf field string asset = 1;
+ * @return string
+ */
+ public function getAsset()
+ {
+ return $this->asset;
+ }
+
+ /**
+ * Fully qualified resource name of an asset in Dataplex, to which the
+ * underlying data source (Cloud Storage bucket or BigQuery dataset) of the
+ * entity is attached.
+ *
+ * Generated from protobuf field string asset = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setAsset($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->asset = $var;
+
+ return $this;
+ }
+
+ /**
+ * Format of the data.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.PhysicalSchema data_format = 2;
+ * @return \Google\Cloud\DataCatalog\V1\PhysicalSchema|null
+ */
+ public function getDataFormat()
+ {
+ return $this->data_format;
+ }
+
+ public function hasDataFormat()
+ {
+ return isset($this->data_format);
+ }
+
+ public function clearDataFormat()
+ {
+ unset($this->data_format);
+ }
+
+ /**
+ * Format of the data.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.PhysicalSchema data_format = 2;
+ * @param \Google\Cloud\DataCatalog\V1\PhysicalSchema $var
+ * @return $this
+ */
+ public function setDataFormat($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\PhysicalSchema::class);
+ $this->data_format = $var;
+
+ return $this;
+ }
+
+ /**
+ * Compression format of the data, e.g., zip, gzip etc.
+ *
+ * Generated from protobuf field string compression_format = 3;
+ * @return string
+ */
+ public function getCompressionFormat()
+ {
+ return $this->compression_format;
+ }
+
+ /**
+ * Compression format of the data, e.g., zip, gzip etc.
+ *
+ * Generated from protobuf field string compression_format = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setCompressionFormat($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->compression_format = $var;
+
+ return $this;
+ }
+
+ /**
+ * Project ID of the underlying Cloud Storage or BigQuery data. Note that
+ * this may not be the same project as the correspondingly Dataplex lake /
+ * zone / asset.
+ *
+ * Generated from protobuf field string project_id = 4;
+ * @return string
+ */
+ public function getProjectId()
+ {
+ return $this->project_id;
+ }
+
+ /**
+ * Project ID of the underlying Cloud Storage or BigQuery data. Note that
+ * this may not be the same project as the correspondingly Dataplex lake /
+ * zone / asset.
+ *
+ * Generated from protobuf field string project_id = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setProjectId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->project_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DataplexTableSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DataplexTableSpec.php
new file mode 100644
index 000000000000..307535cce500
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DataplexTableSpec.php
@@ -0,0 +1,153 @@
+google.cloud.datacatalog.v1.DataplexTableSpec
+ */
+class DataplexTableSpec extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * List of external tables registered by Dataplex in other systems based on
+ * the same underlying data.
+ * External tables allow to query this data in those systems.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.DataplexExternalTable external_tables = 1;
+ */
+ private $external_tables;
+ /**
+ * Common Dataplex fields.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DataplexSpec dataplex_spec = 2;
+ */
+ protected $dataplex_spec = null;
+ /**
+ * Indicates if the table schema is managed by the user or not.
+ *
+ * Generated from protobuf field bool user_managed = 3;
+ */
+ protected $user_managed = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\DataCatalog\V1\DataplexExternalTable>|\Google\Protobuf\Internal\RepeatedField $external_tables
+ * List of external tables registered by Dataplex in other systems based on
+ * the same underlying data.
+ * External tables allow to query this data in those systems.
+ * @type \Google\Cloud\DataCatalog\V1\DataplexSpec $dataplex_spec
+ * Common Dataplex fields.
+ * @type bool $user_managed
+ * Indicates if the table schema is managed by the user or not.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\DataplexSpec::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * List of external tables registered by Dataplex in other systems based on
+ * the same underlying data.
+ * External tables allow to query this data in those systems.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.DataplexExternalTable external_tables = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getExternalTables()
+ {
+ return $this->external_tables;
+ }
+
+ /**
+ * List of external tables registered by Dataplex in other systems based on
+ * the same underlying data.
+ * External tables allow to query this data in those systems.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.DataplexExternalTable external_tables = 1;
+ * @param array<\Google\Cloud\DataCatalog\V1\DataplexExternalTable>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setExternalTables($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\DataCatalog\V1\DataplexExternalTable::class);
+ $this->external_tables = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Common Dataplex fields.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DataplexSpec dataplex_spec = 2;
+ * @return \Google\Cloud\DataCatalog\V1\DataplexSpec|null
+ */
+ public function getDataplexSpec()
+ {
+ return $this->dataplex_spec;
+ }
+
+ public function hasDataplexSpec()
+ {
+ return isset($this->dataplex_spec);
+ }
+
+ public function clearDataplexSpec()
+ {
+ unset($this->dataplex_spec);
+ }
+
+ /**
+ * Common Dataplex fields.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DataplexSpec dataplex_spec = 2;
+ * @param \Google\Cloud\DataCatalog\V1\DataplexSpec $var
+ * @return $this
+ */
+ public function setDataplexSpec($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\DataplexSpec::class);
+ $this->dataplex_spec = $var;
+
+ return $this;
+ }
+
+ /**
+ * Indicates if the table schema is managed by the user or not.
+ *
+ * Generated from protobuf field bool user_managed = 3;
+ * @return bool
+ */
+ public function getUserManaged()
+ {
+ return $this->user_managed;
+ }
+
+ /**
+ * Indicates if the table schema is managed by the user or not.
+ *
+ * Generated from protobuf field bool user_managed = 3;
+ * @param bool $var
+ * @return $this
+ */
+ public function setUserManaged($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->user_managed = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DatasetSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DatasetSpec.php
new file mode 100644
index 000000000000..62bc3e961fd1
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DatasetSpec.php
@@ -0,0 +1,76 @@
+google.cloud.datacatalog.v1.DatasetSpec
+ */
+class DatasetSpec extends \Google\Protobuf\Internal\Message
+{
+ protected $system_spec;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\DataCatalog\V1\VertexDatasetSpec $vertex_dataset_spec
+ * Vertex AI Dataset specific fields
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Vertex AI Dataset specific fields
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.VertexDatasetSpec vertex_dataset_spec = 2;
+ * @return \Google\Cloud\DataCatalog\V1\VertexDatasetSpec|null
+ */
+ public function getVertexDatasetSpec()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasVertexDatasetSpec()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Vertex AI Dataset specific fields
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.VertexDatasetSpec vertex_dataset_spec = 2;
+ * @param \Google\Cloud\DataCatalog\V1\VertexDatasetSpec $var
+ * @return $this
+ */
+ public function setVertexDatasetSpec($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\VertexDatasetSpec::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getSystemSpec()
+ {
+ return $this->whichOneof("system_spec");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DeleteEntryGroupRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DeleteEntryGroupRequest.php
new file mode 100644
index 000000000000..18b895c7bc8b
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DeleteEntryGroupRequest.php
@@ -0,0 +1,116 @@
+google.cloud.datacatalog.v1.DeleteEntryGroupRequest
+ */
+class DeleteEntryGroupRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the entry group to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Optional. If true, deletes all entries in the entry group.
+ *
+ * Generated from protobuf field bool force = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $force = false;
+
+ /**
+ * @param string $name Required. The name of the entry group to delete. Please see
+ * {@see DataCatalogClient::entryGroupName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\DeleteEntryGroupRequest
+ *
+ * @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 entry group to delete.
+ * @type bool $force
+ * Optional. If true, deletes all entries in the entry group.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the entry group to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the entry group to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. If true, deletes all entries in the entry group.
+ *
+ * Generated from protobuf field bool force = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getForce()
+ {
+ return $this->force;
+ }
+
+ /**
+ * Optional. If true, deletes all entries in the entry group.
+ *
+ * Generated from protobuf field bool force = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setForce($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->force = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DeleteEntryRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DeleteEntryRequest.php
new file mode 100644
index 000000000000..42fa737bce1e
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DeleteEntryRequest.php
@@ -0,0 +1,82 @@
+google.cloud.datacatalog.v1.DeleteEntryRequest
+ */
+class DeleteEntryRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the entry to delete.
+ *
+ * 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 entry to delete. Please see
+ * {@see DataCatalogClient::entryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\DeleteEntryRequest
+ *
+ * @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 entry to delete.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the entry to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the entry to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DeletePolicyTagRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DeletePolicyTagRequest.php
new file mode 100644
index 000000000000..bf6f2daa89c2
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DeletePolicyTagRequest.php
@@ -0,0 +1,88 @@
+google.cloud.datacatalog.v1.DeletePolicyTagRequest
+ */
+class DeletePolicyTagRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name of the policy tag to delete.
+ * Note: All of its descendant policy tags are also deleted.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Resource name of the policy tag to delete.
+ *
+ * Note: All of its descendant policy tags are also deleted. Please see
+ * {@see PolicyTagManagerClient::policyTagName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\DeletePolicyTagRequest
+ *
+ * @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. Resource name of the policy tag to delete.
+ * Note: All of its descendant policy tags are also deleted.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Policytagmanager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name of the policy tag to delete.
+ * Note: All of its descendant policy tags are also deleted.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Resource name of the policy tag to delete.
+ * Note: All of its descendant policy tags are also deleted.
+ *
+ * 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/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DeleteTagRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DeleteTagRequest.php
new file mode 100644
index 000000000000..b2313041c5e7
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DeleteTagRequest.php
@@ -0,0 +1,82 @@
+google.cloud.datacatalog.v1.DeleteTagRequest
+ */
+class DeleteTagRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the tag to delete.
+ *
+ * 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 tag to delete. Please see
+ * {@see DataCatalogClient::entryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\DeleteTagRequest
+ *
+ * @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 tag to delete.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the tag to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the tag to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DeleteTagTemplateFieldRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DeleteTagTemplateFieldRequest.php
new file mode 100644
index 000000000000..e50e145c3d78
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DeleteTagTemplateFieldRequest.php
@@ -0,0 +1,124 @@
+google.cloud.datacatalog.v1.DeleteTagTemplateFieldRequest
+ */
+class DeleteTagTemplateFieldRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the tag template field to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Required. If true, deletes this field from any tags that use it.
+ * Currently, `true` is the only supported value.
+ *
+ * Generated from protobuf field bool force = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $force = false;
+
+ /**
+ * @param string $name Required. The name of the tag template field to delete. Please see
+ * {@see DataCatalogClient::tagTemplateFieldName()} for help formatting this field.
+ * @param bool $force Required. If true, deletes this field from any tags that use it.
+ *
+ * Currently, `true` is the only supported value.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\DeleteTagTemplateFieldRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name, bool $force): self
+ {
+ return (new self())
+ ->setName($name)
+ ->setForce($force);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the tag template field to delete.
+ * @type bool $force
+ * Required. If true, deletes this field from any tags that use it.
+ * Currently, `true` is the only supported value.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the tag template field to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the tag template field to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. If true, deletes this field from any tags that use it.
+ * Currently, `true` is the only supported value.
+ *
+ * Generated from protobuf field bool force = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return bool
+ */
+ public function getForce()
+ {
+ return $this->force;
+ }
+
+ /**
+ * Required. If true, deletes this field from any tags that use it.
+ * Currently, `true` is the only supported value.
+ *
+ * Generated from protobuf field bool force = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param bool $var
+ * @return $this
+ */
+ public function setForce($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->force = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DeleteTagTemplateRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DeleteTagTemplateRequest.php
new file mode 100644
index 000000000000..68b359b7f6fc
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DeleteTagTemplateRequest.php
@@ -0,0 +1,124 @@
+google.cloud.datacatalog.v1.DeleteTagTemplateRequest
+ */
+class DeleteTagTemplateRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the tag template to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Required. If true, deletes all tags that use this template.
+ * Currently, `true` is the only supported value.
+ *
+ * Generated from protobuf field bool force = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $force = false;
+
+ /**
+ * @param string $name Required. The name of the tag template to delete. Please see
+ * {@see DataCatalogClient::tagTemplateName()} for help formatting this field.
+ * @param bool $force Required. If true, deletes all tags that use this template.
+ *
+ * Currently, `true` is the only supported value.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\DeleteTagTemplateRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name, bool $force): self
+ {
+ return (new self())
+ ->setName($name)
+ ->setForce($force);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the tag template to delete.
+ * @type bool $force
+ * Required. If true, deletes all tags that use this template.
+ * Currently, `true` is the only supported value.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the tag template to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the tag template to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. If true, deletes all tags that use this template.
+ * Currently, `true` is the only supported value.
+ *
+ * Generated from protobuf field bool force = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return bool
+ */
+ public function getForce()
+ {
+ return $this->force;
+ }
+
+ /**
+ * Required. If true, deletes all tags that use this template.
+ * Currently, `true` is the only supported value.
+ *
+ * Generated from protobuf field bool force = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param bool $var
+ * @return $this
+ */
+ public function setForce($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->force = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DeleteTaxonomyRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DeleteTaxonomyRequest.php
new file mode 100644
index 000000000000..f0bcf2735ebc
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DeleteTaxonomyRequest.php
@@ -0,0 +1,88 @@
+google.cloud.datacatalog.v1.DeleteTaxonomyRequest
+ */
+class DeleteTaxonomyRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name of the taxonomy to delete.
+ * Note: All policy tags in this taxonomy are also deleted.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Resource name of the taxonomy to delete.
+ *
+ * Note: All policy tags in this taxonomy are also deleted. Please see
+ * {@see PolicyTagManagerClient::taxonomyName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\DeleteTaxonomyRequest
+ *
+ * @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. Resource name of the taxonomy to delete.
+ * Note: All policy tags in this taxonomy are also deleted.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Policytagmanager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name of the taxonomy to delete.
+ * Note: All policy tags in this taxonomy are also deleted.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Resource name of the taxonomy to delete.
+ * Note: All policy tags in this taxonomy are also deleted.
+ *
+ * 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/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DumpItem.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DumpItem.php
new file mode 100644
index 000000000000..c664523acfae
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/DumpItem.php
@@ -0,0 +1,75 @@
+google.cloud.datacatalog.v1.DumpItem
+ */
+class DumpItem extends \Google\Protobuf\Internal\Message
+{
+ protected $item;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\DataCatalog\V1\TaggedEntry $tagged_entry
+ * Entry and its tags.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\DumpContent::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Entry and its tags.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.TaggedEntry tagged_entry = 1;
+ * @return \Google\Cloud\DataCatalog\V1\TaggedEntry|null
+ */
+ public function getTaggedEntry()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasTaggedEntry()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Entry and its tags.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.TaggedEntry tagged_entry = 1;
+ * @param \Google\Cloud\DataCatalog\V1\TaggedEntry $var
+ * @return $this
+ */
+ public function setTaggedEntry($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\TaggedEntry::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getItem()
+ {
+ return $this->whichOneof("item");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/Entry.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/Entry.php
new file mode 100644
index 000000000000..6418d70cedb2
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/Entry.php
@@ -0,0 +1,1338 @@
+google.cloud.datacatalog.v1.Entry
+ */
+class Entry extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The resource name of an entry in URL format.
+ * Note: The entry itself and its child resources might not be
+ * stored in the location specified in its name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * The resource this metadata entry refers to.
+ * For Google Cloud Platform resources, `linked_resource` is the
+ * [Full Resource Name]
+ * (https://cloud.google.com/apis/design/resource_names#full_resource_name).
+ * For example, the `linked_resource` for a table resource from BigQuery is:
+ * `//bigquery.googleapis.com/projects/{PROJECT_ID}/datasets/{DATASET_ID}/tables/{TABLE_ID}`
+ * Output only when the entry is one of the types in the `EntryType` enum.
+ * For entries with a `user_specified_type`, this field is optional and
+ * defaults to an empty string.
+ * The resource string must contain only letters (a-z, A-Z), numbers (0-9),
+ * underscores (_), periods (.), colons (:), slashes (/), dashes (-),
+ * and hashes (#).
+ * The maximum size is 200 bytes when encoded in UTF-8.
+ *
+ * Generated from protobuf field string linked_resource = 9;
+ */
+ protected $linked_resource = '';
+ /**
+ * [Fully Qualified Name
+ * (FQN)](https://cloud.google.com//data-catalog/docs/fully-qualified-names)
+ * of the resource. Set automatically for entries representing resources from
+ * synced systems. Settable only during creation, and read-only later. Can
+ * be used for search and lookup of the entries.
+ *
+ * Generated from protobuf field string fully_qualified_name = 29;
+ */
+ protected $fully_qualified_name = '';
+ /**
+ * Display name of an entry.
+ * The maximum size is 500 bytes when encoded in UTF-8.
+ * Default value is an empty string.
+ *
+ * Generated from protobuf field string display_name = 3;
+ */
+ protected $display_name = '';
+ /**
+ * Entry description that can consist of several sentences or paragraphs
+ * that describe entry contents.
+ * The description must not contain Unicode non-characters as well as C0
+ * and C1 control codes except tabs (HT), new lines (LF), carriage returns
+ * (CR), and page breaks (FF).
+ * The maximum size is 2000 bytes when encoded in UTF-8.
+ * Default value is an empty string.
+ *
+ * Generated from protobuf field string description = 4;
+ */
+ protected $description = '';
+ /**
+ * Business Context of the entry. Not supported for BigQuery datasets
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.BusinessContext business_context = 37;
+ */
+ protected $business_context = null;
+ /**
+ * Schema of the entry. An entry might not have any schema attached to it.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Schema schema = 5;
+ */
+ protected $schema = null;
+ /**
+ * Timestamps from the underlying resource, not from the Data Catalog
+ * entry.
+ * Output only when the entry has a system listed in the `IntegratedSystem`
+ * enum. For entries with `user_specified_system`, this field is optional
+ * and defaults to an empty timestamp.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.SystemTimestamps source_system_timestamps = 7;
+ */
+ protected $source_system_timestamps = null;
+ /**
+ * Resource usage statistics.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.UsageSignal usage_signal = 13;
+ */
+ protected $usage_signal = null;
+ /**
+ * Cloud labels attached to the entry.
+ * In Data Catalog, you can create and modify labels attached only to custom
+ * entries. Synced entries have unmodifiable labels that come from the source
+ * system.
+ *
+ * Generated from protobuf field map labels = 14;
+ */
+ private $labels;
+ /**
+ * Output only. Physical location of the entry.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DataSource data_source = 20 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $data_source = null;
+ /**
+ * Output only. Additional information related to the entry. Private to the
+ * current user.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.PersonalDetails personal_details = 26 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $personal_details = null;
+ protected $entry_type;
+ protected $system;
+ protected $system_spec;
+ protected $type_spec;
+ protected $spec;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. The resource name of an entry in URL format.
+ * Note: The entry itself and its child resources might not be
+ * stored in the location specified in its name.
+ * @type string $linked_resource
+ * The resource this metadata entry refers to.
+ * For Google Cloud Platform resources, `linked_resource` is the
+ * [Full Resource Name]
+ * (https://cloud.google.com/apis/design/resource_names#full_resource_name).
+ * For example, the `linked_resource` for a table resource from BigQuery is:
+ * `//bigquery.googleapis.com/projects/{PROJECT_ID}/datasets/{DATASET_ID}/tables/{TABLE_ID}`
+ * Output only when the entry is one of the types in the `EntryType` enum.
+ * For entries with a `user_specified_type`, this field is optional and
+ * defaults to an empty string.
+ * The resource string must contain only letters (a-z, A-Z), numbers (0-9),
+ * underscores (_), periods (.), colons (:), slashes (/), dashes (-),
+ * and hashes (#).
+ * The maximum size is 200 bytes when encoded in UTF-8.
+ * @type string $fully_qualified_name
+ * [Fully Qualified Name
+ * (FQN)](https://cloud.google.com//data-catalog/docs/fully-qualified-names)
+ * of the resource. Set automatically for entries representing resources from
+ * synced systems. Settable only during creation, and read-only later. Can
+ * be used for search and lookup of the entries.
+ * @type int $type
+ * The type of the entry.
+ * For details, see [`EntryType`](#entrytype).
+ * @type string $user_specified_type
+ * Custom entry type that doesn't match any of the values allowed for input
+ * and listed in the `EntryType` enum.
+ * When creating an entry, first check the type values in the enum.
+ * If there are no appropriate types for the new entry,
+ * provide a custom value, for example, `my_special_type`.
+ * The `user_specified_type` string has the following limitations:
+ * * Is case insensitive.
+ * * Must begin with a letter or underscore.
+ * * Can only contain letters, numbers, and underscores.
+ * * Must be at least 1 character and at most 64 characters long.
+ * @type int $integrated_system
+ * Output only. Indicates the entry's source system that Data Catalog
+ * integrates with, such as BigQuery, Pub/Sub, or Dataproc Metastore.
+ * @type string $user_specified_system
+ * Indicates the entry's source system that Data Catalog doesn't
+ * automatically integrate with.
+ * The `user_specified_system` string has the following limitations:
+ * * Is case insensitive.
+ * * Must begin with a letter or underscore.
+ * * Can only contain letters, numbers, and underscores.
+ * * Must be at least 1 character and at most 64 characters long.
+ * @type \Google\Cloud\DataCatalog\V1\SqlDatabaseSystemSpec $sql_database_system_spec
+ * Specification that applies to a relational database system. Only settable
+ * when `user_specified_system` is equal to `SQL_DATABASE`
+ * @type \Google\Cloud\DataCatalog\V1\LookerSystemSpec $looker_system_spec
+ * Specification that applies to Looker sysstem. Only settable when
+ * `user_specified_system` is equal to `LOOKER`
+ * @type \Google\Cloud\DataCatalog\V1\CloudBigtableSystemSpec $cloud_bigtable_system_spec
+ * Specification that applies to Cloud Bigtable system. Only settable when
+ * `integrated_system` is equal to `CLOUD_BIGTABLE`
+ * @type \Google\Cloud\DataCatalog\V1\GcsFilesetSpec $gcs_fileset_spec
+ * Specification that applies to a Cloud Storage fileset. Valid only
+ * for entries with the `FILESET` type.
+ * @type \Google\Cloud\DataCatalog\V1\BigQueryTableSpec $bigquery_table_spec
+ * Output only. Specification that applies to a BigQuery table. Valid only
+ * for entries with the `TABLE` type.
+ * @type \Google\Cloud\DataCatalog\V1\BigQueryDateShardedSpec $bigquery_date_sharded_spec
+ * Output only. Specification for a group of BigQuery tables with
+ * the `[prefix]YYYYMMDD` name pattern.
+ * For more information, see [Introduction to partitioned tables]
+ * (https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding).
+ * @type \Google\Cloud\DataCatalog\V1\DatabaseTableSpec $database_table_spec
+ * Specification that applies to a table resource. Valid only
+ * for entries with the `TABLE` or `EXPLORE` type.
+ * @type \Google\Cloud\DataCatalog\V1\DataSourceConnectionSpec $data_source_connection_spec
+ * Specification that applies to a data source connection. Valid only
+ * for entries with the `DATA_SOURCE_CONNECTION` type.
+ * @type \Google\Cloud\DataCatalog\V1\RoutineSpec $routine_spec
+ * Specification that applies to a user-defined function or procedure. Valid
+ * only for entries with the `ROUTINE` type.
+ * @type \Google\Cloud\DataCatalog\V1\DatasetSpec $dataset_spec
+ * Specification that applies to a dataset.
+ * @type \Google\Cloud\DataCatalog\V1\FilesetSpec $fileset_spec
+ * Specification that applies to a fileset resource. Valid only
+ * for entries with the `FILESET` type.
+ * @type \Google\Cloud\DataCatalog\V1\ServiceSpec $service_spec
+ * Specification that applies to a Service resource.
+ * @type \Google\Cloud\DataCatalog\V1\ModelSpec $model_spec
+ * Model specification.
+ * @type string $display_name
+ * Display name of an entry.
+ * The maximum size is 500 bytes when encoded in UTF-8.
+ * Default value is an empty string.
+ * @type string $description
+ * Entry description that can consist of several sentences or paragraphs
+ * that describe entry contents.
+ * The description must not contain Unicode non-characters as well as C0
+ * and C1 control codes except tabs (HT), new lines (LF), carriage returns
+ * (CR), and page breaks (FF).
+ * The maximum size is 2000 bytes when encoded in UTF-8.
+ * Default value is an empty string.
+ * @type \Google\Cloud\DataCatalog\V1\BusinessContext $business_context
+ * Business Context of the entry. Not supported for BigQuery datasets
+ * @type \Google\Cloud\DataCatalog\V1\Schema $schema
+ * Schema of the entry. An entry might not have any schema attached to it.
+ * @type \Google\Cloud\DataCatalog\V1\SystemTimestamps $source_system_timestamps
+ * Timestamps from the underlying resource, not from the Data Catalog
+ * entry.
+ * Output only when the entry has a system listed in the `IntegratedSystem`
+ * enum. For entries with `user_specified_system`, this field is optional
+ * and defaults to an empty timestamp.
+ * @type \Google\Cloud\DataCatalog\V1\UsageSignal $usage_signal
+ * Resource usage statistics.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * Cloud labels attached to the entry.
+ * In Data Catalog, you can create and modify labels attached only to custom
+ * entries. Synced entries have unmodifiable labels that come from the source
+ * system.
+ * @type \Google\Cloud\DataCatalog\V1\DataSource $data_source
+ * Output only. Physical location of the entry.
+ * @type \Google\Cloud\DataCatalog\V1\PersonalDetails $personal_details
+ * Output only. Additional information related to the entry. Private to the
+ * current user.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The resource name of an entry in URL format.
+ * Note: The entry itself and its child resources might not be
+ * stored in the location specified in its name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. The resource name of an entry in URL format.
+ * Note: The entry itself and its child resources might not be
+ * stored in the location specified in its name.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The resource this metadata entry refers to.
+ * For Google Cloud Platform resources, `linked_resource` is the
+ * [Full Resource Name]
+ * (https://cloud.google.com/apis/design/resource_names#full_resource_name).
+ * For example, the `linked_resource` for a table resource from BigQuery is:
+ * `//bigquery.googleapis.com/projects/{PROJECT_ID}/datasets/{DATASET_ID}/tables/{TABLE_ID}`
+ * Output only when the entry is one of the types in the `EntryType` enum.
+ * For entries with a `user_specified_type`, this field is optional and
+ * defaults to an empty string.
+ * The resource string must contain only letters (a-z, A-Z), numbers (0-9),
+ * underscores (_), periods (.), colons (:), slashes (/), dashes (-),
+ * and hashes (#).
+ * The maximum size is 200 bytes when encoded in UTF-8.
+ *
+ * Generated from protobuf field string linked_resource = 9;
+ * @return string
+ */
+ public function getLinkedResource()
+ {
+ return $this->linked_resource;
+ }
+
+ /**
+ * The resource this metadata entry refers to.
+ * For Google Cloud Platform resources, `linked_resource` is the
+ * [Full Resource Name]
+ * (https://cloud.google.com/apis/design/resource_names#full_resource_name).
+ * For example, the `linked_resource` for a table resource from BigQuery is:
+ * `//bigquery.googleapis.com/projects/{PROJECT_ID}/datasets/{DATASET_ID}/tables/{TABLE_ID}`
+ * Output only when the entry is one of the types in the `EntryType` enum.
+ * For entries with a `user_specified_type`, this field is optional and
+ * defaults to an empty string.
+ * The resource string must contain only letters (a-z, A-Z), numbers (0-9),
+ * underscores (_), periods (.), colons (:), slashes (/), dashes (-),
+ * and hashes (#).
+ * The maximum size is 200 bytes when encoded in UTF-8.
+ *
+ * Generated from protobuf field string linked_resource = 9;
+ * @param string $var
+ * @return $this
+ */
+ public function setLinkedResource($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->linked_resource = $var;
+
+ return $this;
+ }
+
+ /**
+ * [Fully Qualified Name
+ * (FQN)](https://cloud.google.com//data-catalog/docs/fully-qualified-names)
+ * of the resource. Set automatically for entries representing resources from
+ * synced systems. Settable only during creation, and read-only later. Can
+ * be used for search and lookup of the entries.
+ *
+ * Generated from protobuf field string fully_qualified_name = 29;
+ * @return string
+ */
+ public function getFullyQualifiedName()
+ {
+ return $this->fully_qualified_name;
+ }
+
+ /**
+ * [Fully Qualified Name
+ * (FQN)](https://cloud.google.com//data-catalog/docs/fully-qualified-names)
+ * of the resource. Set automatically for entries representing resources from
+ * synced systems. Settable only during creation, and read-only later. Can
+ * be used for search and lookup of the entries.
+ *
+ * Generated from protobuf field string fully_qualified_name = 29;
+ * @param string $var
+ * @return $this
+ */
+ public function setFullyQualifiedName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->fully_qualified_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The type of the entry.
+ * For details, see [`EntryType`](#entrytype).
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.EntryType type = 2;
+ * @return int
+ */
+ public function getType()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasType()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * The type of the entry.
+ * For details, see [`EntryType`](#entrytype).
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.EntryType type = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\DataCatalog\V1\EntryType::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Custom entry type that doesn't match any of the values allowed for input
+ * and listed in the `EntryType` enum.
+ * When creating an entry, first check the type values in the enum.
+ * If there are no appropriate types for the new entry,
+ * provide a custom value, for example, `my_special_type`.
+ * The `user_specified_type` string has the following limitations:
+ * * Is case insensitive.
+ * * Must begin with a letter or underscore.
+ * * Can only contain letters, numbers, and underscores.
+ * * Must be at least 1 character and at most 64 characters long.
+ *
+ * Generated from protobuf field string user_specified_type = 16;
+ * @return string
+ */
+ public function getUserSpecifiedType()
+ {
+ return $this->readOneof(16);
+ }
+
+ public function hasUserSpecifiedType()
+ {
+ return $this->hasOneof(16);
+ }
+
+ /**
+ * Custom entry type that doesn't match any of the values allowed for input
+ * and listed in the `EntryType` enum.
+ * When creating an entry, first check the type values in the enum.
+ * If there are no appropriate types for the new entry,
+ * provide a custom value, for example, `my_special_type`.
+ * The `user_specified_type` string has the following limitations:
+ * * Is case insensitive.
+ * * Must begin with a letter or underscore.
+ * * Can only contain letters, numbers, and underscores.
+ * * Must be at least 1 character and at most 64 characters long.
+ *
+ * Generated from protobuf field string user_specified_type = 16;
+ * @param string $var
+ * @return $this
+ */
+ public function setUserSpecifiedType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(16, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. Indicates the entry's source system that Data Catalog
+ * integrates with, such as BigQuery, Pub/Sub, or Dataproc Metastore.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.IntegratedSystem integrated_system = 17 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getIntegratedSystem()
+ {
+ return $this->readOneof(17);
+ }
+
+ public function hasIntegratedSystem()
+ {
+ return $this->hasOneof(17);
+ }
+
+ /**
+ * Output only. Indicates the entry's source system that Data Catalog
+ * integrates with, such as BigQuery, Pub/Sub, or Dataproc Metastore.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.IntegratedSystem integrated_system = 17 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setIntegratedSystem($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\DataCatalog\V1\IntegratedSystem::class);
+ $this->writeOneof(17, $var);
+
+ return $this;
+ }
+
+ /**
+ * Indicates the entry's source system that Data Catalog doesn't
+ * automatically integrate with.
+ * The `user_specified_system` string has the following limitations:
+ * * Is case insensitive.
+ * * Must begin with a letter or underscore.
+ * * Can only contain letters, numbers, and underscores.
+ * * Must be at least 1 character and at most 64 characters long.
+ *
+ * Generated from protobuf field string user_specified_system = 18;
+ * @return string
+ */
+ public function getUserSpecifiedSystem()
+ {
+ return $this->readOneof(18);
+ }
+
+ public function hasUserSpecifiedSystem()
+ {
+ return $this->hasOneof(18);
+ }
+
+ /**
+ * Indicates the entry's source system that Data Catalog doesn't
+ * automatically integrate with.
+ * The `user_specified_system` string has the following limitations:
+ * * Is case insensitive.
+ * * Must begin with a letter or underscore.
+ * * Can only contain letters, numbers, and underscores.
+ * * Must be at least 1 character and at most 64 characters long.
+ *
+ * Generated from protobuf field string user_specified_system = 18;
+ * @param string $var
+ * @return $this
+ */
+ public function setUserSpecifiedSystem($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(18, $var);
+
+ return $this;
+ }
+
+ /**
+ * Specification that applies to a relational database system. Only settable
+ * when `user_specified_system` is equal to `SQL_DATABASE`
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.SqlDatabaseSystemSpec sql_database_system_spec = 39;
+ * @return \Google\Cloud\DataCatalog\V1\SqlDatabaseSystemSpec|null
+ */
+ public function getSqlDatabaseSystemSpec()
+ {
+ return $this->readOneof(39);
+ }
+
+ public function hasSqlDatabaseSystemSpec()
+ {
+ return $this->hasOneof(39);
+ }
+
+ /**
+ * Specification that applies to a relational database system. Only settable
+ * when `user_specified_system` is equal to `SQL_DATABASE`
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.SqlDatabaseSystemSpec sql_database_system_spec = 39;
+ * @param \Google\Cloud\DataCatalog\V1\SqlDatabaseSystemSpec $var
+ * @return $this
+ */
+ public function setSqlDatabaseSystemSpec($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\SqlDatabaseSystemSpec::class);
+ $this->writeOneof(39, $var);
+
+ return $this;
+ }
+
+ /**
+ * Specification that applies to Looker sysstem. Only settable when
+ * `user_specified_system` is equal to `LOOKER`
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.LookerSystemSpec looker_system_spec = 40;
+ * @return \Google\Cloud\DataCatalog\V1\LookerSystemSpec|null
+ */
+ public function getLookerSystemSpec()
+ {
+ return $this->readOneof(40);
+ }
+
+ public function hasLookerSystemSpec()
+ {
+ return $this->hasOneof(40);
+ }
+
+ /**
+ * Specification that applies to Looker sysstem. Only settable when
+ * `user_specified_system` is equal to `LOOKER`
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.LookerSystemSpec looker_system_spec = 40;
+ * @param \Google\Cloud\DataCatalog\V1\LookerSystemSpec $var
+ * @return $this
+ */
+ public function setLookerSystemSpec($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\LookerSystemSpec::class);
+ $this->writeOneof(40, $var);
+
+ return $this;
+ }
+
+ /**
+ * Specification that applies to Cloud Bigtable system. Only settable when
+ * `integrated_system` is equal to `CLOUD_BIGTABLE`
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.CloudBigtableSystemSpec cloud_bigtable_system_spec = 41;
+ * @return \Google\Cloud\DataCatalog\V1\CloudBigtableSystemSpec|null
+ */
+ public function getCloudBigtableSystemSpec()
+ {
+ return $this->readOneof(41);
+ }
+
+ public function hasCloudBigtableSystemSpec()
+ {
+ return $this->hasOneof(41);
+ }
+
+ /**
+ * Specification that applies to Cloud Bigtable system. Only settable when
+ * `integrated_system` is equal to `CLOUD_BIGTABLE`
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.CloudBigtableSystemSpec cloud_bigtable_system_spec = 41;
+ * @param \Google\Cloud\DataCatalog\V1\CloudBigtableSystemSpec $var
+ * @return $this
+ */
+ public function setCloudBigtableSystemSpec($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\CloudBigtableSystemSpec::class);
+ $this->writeOneof(41, $var);
+
+ return $this;
+ }
+
+ /**
+ * Specification that applies to a Cloud Storage fileset. Valid only
+ * for entries with the `FILESET` type.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.GcsFilesetSpec gcs_fileset_spec = 6;
+ * @return \Google\Cloud\DataCatalog\V1\GcsFilesetSpec|null
+ */
+ public function getGcsFilesetSpec()
+ {
+ return $this->readOneof(6);
+ }
+
+ public function hasGcsFilesetSpec()
+ {
+ return $this->hasOneof(6);
+ }
+
+ /**
+ * Specification that applies to a Cloud Storage fileset. Valid only
+ * for entries with the `FILESET` type.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.GcsFilesetSpec gcs_fileset_spec = 6;
+ * @param \Google\Cloud\DataCatalog\V1\GcsFilesetSpec $var
+ * @return $this
+ */
+ public function setGcsFilesetSpec($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\GcsFilesetSpec::class);
+ $this->writeOneof(6, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. Specification that applies to a BigQuery table. Valid only
+ * for entries with the `TABLE` type.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.BigQueryTableSpec bigquery_table_spec = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\DataCatalog\V1\BigQueryTableSpec|null
+ */
+ public function getBigqueryTableSpec()
+ {
+ return $this->readOneof(12);
+ }
+
+ public function hasBigqueryTableSpec()
+ {
+ return $this->hasOneof(12);
+ }
+
+ /**
+ * Output only. Specification that applies to a BigQuery table. Valid only
+ * for entries with the `TABLE` type.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.BigQueryTableSpec bigquery_table_spec = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\DataCatalog\V1\BigQueryTableSpec $var
+ * @return $this
+ */
+ public function setBigqueryTableSpec($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\BigQueryTableSpec::class);
+ $this->writeOneof(12, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. Specification for a group of BigQuery tables with
+ * the `[prefix]YYYYMMDD` name pattern.
+ * For more information, see [Introduction to partitioned tables]
+ * (https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding).
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.BigQueryDateShardedSpec bigquery_date_sharded_spec = 15 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\DataCatalog\V1\BigQueryDateShardedSpec|null
+ */
+ public function getBigqueryDateShardedSpec()
+ {
+ return $this->readOneof(15);
+ }
+
+ public function hasBigqueryDateShardedSpec()
+ {
+ return $this->hasOneof(15);
+ }
+
+ /**
+ * Output only. Specification for a group of BigQuery tables with
+ * the `[prefix]YYYYMMDD` name pattern.
+ * For more information, see [Introduction to partitioned tables]
+ * (https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding).
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.BigQueryDateShardedSpec bigquery_date_sharded_spec = 15 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\DataCatalog\V1\BigQueryDateShardedSpec $var
+ * @return $this
+ */
+ public function setBigqueryDateShardedSpec($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\BigQueryDateShardedSpec::class);
+ $this->writeOneof(15, $var);
+
+ return $this;
+ }
+
+ /**
+ * Specification that applies to a table resource. Valid only
+ * for entries with the `TABLE` or `EXPLORE` type.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DatabaseTableSpec database_table_spec = 24;
+ * @return \Google\Cloud\DataCatalog\V1\DatabaseTableSpec|null
+ */
+ public function getDatabaseTableSpec()
+ {
+ return $this->readOneof(24);
+ }
+
+ public function hasDatabaseTableSpec()
+ {
+ return $this->hasOneof(24);
+ }
+
+ /**
+ * Specification that applies to a table resource. Valid only
+ * for entries with the `TABLE` or `EXPLORE` type.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DatabaseTableSpec database_table_spec = 24;
+ * @param \Google\Cloud\DataCatalog\V1\DatabaseTableSpec $var
+ * @return $this
+ */
+ public function setDatabaseTableSpec($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\DatabaseTableSpec::class);
+ $this->writeOneof(24, $var);
+
+ return $this;
+ }
+
+ /**
+ * Specification that applies to a data source connection. Valid only
+ * for entries with the `DATA_SOURCE_CONNECTION` type.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DataSourceConnectionSpec data_source_connection_spec = 27;
+ * @return \Google\Cloud\DataCatalog\V1\DataSourceConnectionSpec|null
+ */
+ public function getDataSourceConnectionSpec()
+ {
+ return $this->readOneof(27);
+ }
+
+ public function hasDataSourceConnectionSpec()
+ {
+ return $this->hasOneof(27);
+ }
+
+ /**
+ * Specification that applies to a data source connection. Valid only
+ * for entries with the `DATA_SOURCE_CONNECTION` type.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DataSourceConnectionSpec data_source_connection_spec = 27;
+ * @param \Google\Cloud\DataCatalog\V1\DataSourceConnectionSpec $var
+ * @return $this
+ */
+ public function setDataSourceConnectionSpec($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\DataSourceConnectionSpec::class);
+ $this->writeOneof(27, $var);
+
+ return $this;
+ }
+
+ /**
+ * Specification that applies to a user-defined function or procedure. Valid
+ * only for entries with the `ROUTINE` type.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.RoutineSpec routine_spec = 28;
+ * @return \Google\Cloud\DataCatalog\V1\RoutineSpec|null
+ */
+ public function getRoutineSpec()
+ {
+ return $this->readOneof(28);
+ }
+
+ public function hasRoutineSpec()
+ {
+ return $this->hasOneof(28);
+ }
+
+ /**
+ * Specification that applies to a user-defined function or procedure. Valid
+ * only for entries with the `ROUTINE` type.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.RoutineSpec routine_spec = 28;
+ * @param \Google\Cloud\DataCatalog\V1\RoutineSpec $var
+ * @return $this
+ */
+ public function setRoutineSpec($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\RoutineSpec::class);
+ $this->writeOneof(28, $var);
+
+ return $this;
+ }
+
+ /**
+ * Specification that applies to a dataset.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DatasetSpec dataset_spec = 32;
+ * @return \Google\Cloud\DataCatalog\V1\DatasetSpec|null
+ */
+ public function getDatasetSpec()
+ {
+ return $this->readOneof(32);
+ }
+
+ public function hasDatasetSpec()
+ {
+ return $this->hasOneof(32);
+ }
+
+ /**
+ * Specification that applies to a dataset.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DatasetSpec dataset_spec = 32;
+ * @param \Google\Cloud\DataCatalog\V1\DatasetSpec $var
+ * @return $this
+ */
+ public function setDatasetSpec($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\DatasetSpec::class);
+ $this->writeOneof(32, $var);
+
+ return $this;
+ }
+
+ /**
+ * Specification that applies to a fileset resource. Valid only
+ * for entries with the `FILESET` type.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.FilesetSpec fileset_spec = 33;
+ * @return \Google\Cloud\DataCatalog\V1\FilesetSpec|null
+ */
+ public function getFilesetSpec()
+ {
+ return $this->readOneof(33);
+ }
+
+ public function hasFilesetSpec()
+ {
+ return $this->hasOneof(33);
+ }
+
+ /**
+ * Specification that applies to a fileset resource. Valid only
+ * for entries with the `FILESET` type.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.FilesetSpec fileset_spec = 33;
+ * @param \Google\Cloud\DataCatalog\V1\FilesetSpec $var
+ * @return $this
+ */
+ public function setFilesetSpec($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\FilesetSpec::class);
+ $this->writeOneof(33, $var);
+
+ return $this;
+ }
+
+ /**
+ * Specification that applies to a Service resource.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.ServiceSpec service_spec = 42;
+ * @return \Google\Cloud\DataCatalog\V1\ServiceSpec|null
+ */
+ public function getServiceSpec()
+ {
+ return $this->readOneof(42);
+ }
+
+ public function hasServiceSpec()
+ {
+ return $this->hasOneof(42);
+ }
+
+ /**
+ * Specification that applies to a Service resource.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.ServiceSpec service_spec = 42;
+ * @param \Google\Cloud\DataCatalog\V1\ServiceSpec $var
+ * @return $this
+ */
+ public function setServiceSpec($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\ServiceSpec::class);
+ $this->writeOneof(42, $var);
+
+ return $this;
+ }
+
+ /**
+ * Model specification.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.ModelSpec model_spec = 43;
+ * @return \Google\Cloud\DataCatalog\V1\ModelSpec|null
+ */
+ public function getModelSpec()
+ {
+ return $this->readOneof(43);
+ }
+
+ public function hasModelSpec()
+ {
+ return $this->hasOneof(43);
+ }
+
+ /**
+ * Model specification.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.ModelSpec model_spec = 43;
+ * @param \Google\Cloud\DataCatalog\V1\ModelSpec $var
+ * @return $this
+ */
+ public function setModelSpec($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\ModelSpec::class);
+ $this->writeOneof(43, $var);
+
+ return $this;
+ }
+
+ /**
+ * Display name of an entry.
+ * The maximum size is 500 bytes when encoded in UTF-8.
+ * Default value is an empty string.
+ *
+ * Generated from protobuf field string display_name = 3;
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * Display name of an entry.
+ * The maximum size is 500 bytes when encoded in UTF-8.
+ * Default value is an empty string.
+ *
+ * Generated from protobuf field string display_name = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Entry description that can consist of several sentences or paragraphs
+ * that describe entry contents.
+ * The description must not contain Unicode non-characters as well as C0
+ * and C1 control codes except tabs (HT), new lines (LF), carriage returns
+ * (CR), and page breaks (FF).
+ * The maximum size is 2000 bytes when encoded in UTF-8.
+ * Default value is an empty string.
+ *
+ * Generated from protobuf field string description = 4;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Entry description that can consist of several sentences or paragraphs
+ * that describe entry contents.
+ * The description must not contain Unicode non-characters as well as C0
+ * and C1 control codes except tabs (HT), new lines (LF), carriage returns
+ * (CR), and page breaks (FF).
+ * The maximum size is 2000 bytes when encoded in UTF-8.
+ * Default value is an empty string.
+ *
+ * Generated from protobuf field string description = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * Business Context of the entry. Not supported for BigQuery datasets
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.BusinessContext business_context = 37;
+ * @return \Google\Cloud\DataCatalog\V1\BusinessContext|null
+ */
+ public function getBusinessContext()
+ {
+ return $this->business_context;
+ }
+
+ public function hasBusinessContext()
+ {
+ return isset($this->business_context);
+ }
+
+ public function clearBusinessContext()
+ {
+ unset($this->business_context);
+ }
+
+ /**
+ * Business Context of the entry. Not supported for BigQuery datasets
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.BusinessContext business_context = 37;
+ * @param \Google\Cloud\DataCatalog\V1\BusinessContext $var
+ * @return $this
+ */
+ public function setBusinessContext($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\BusinessContext::class);
+ $this->business_context = $var;
+
+ return $this;
+ }
+
+ /**
+ * Schema of the entry. An entry might not have any schema attached to it.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Schema schema = 5;
+ * @return \Google\Cloud\DataCatalog\V1\Schema|null
+ */
+ public function getSchema()
+ {
+ return $this->schema;
+ }
+
+ public function hasSchema()
+ {
+ return isset($this->schema);
+ }
+
+ public function clearSchema()
+ {
+ unset($this->schema);
+ }
+
+ /**
+ * Schema of the entry. An entry might not have any schema attached to it.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Schema schema = 5;
+ * @param \Google\Cloud\DataCatalog\V1\Schema $var
+ * @return $this
+ */
+ public function setSchema($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\Schema::class);
+ $this->schema = $var;
+
+ return $this;
+ }
+
+ /**
+ * Timestamps from the underlying resource, not from the Data Catalog
+ * entry.
+ * Output only when the entry has a system listed in the `IntegratedSystem`
+ * enum. For entries with `user_specified_system`, this field is optional
+ * and defaults to an empty timestamp.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.SystemTimestamps source_system_timestamps = 7;
+ * @return \Google\Cloud\DataCatalog\V1\SystemTimestamps|null
+ */
+ public function getSourceSystemTimestamps()
+ {
+ return $this->source_system_timestamps;
+ }
+
+ public function hasSourceSystemTimestamps()
+ {
+ return isset($this->source_system_timestamps);
+ }
+
+ public function clearSourceSystemTimestamps()
+ {
+ unset($this->source_system_timestamps);
+ }
+
+ /**
+ * Timestamps from the underlying resource, not from the Data Catalog
+ * entry.
+ * Output only when the entry has a system listed in the `IntegratedSystem`
+ * enum. For entries with `user_specified_system`, this field is optional
+ * and defaults to an empty timestamp.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.SystemTimestamps source_system_timestamps = 7;
+ * @param \Google\Cloud\DataCatalog\V1\SystemTimestamps $var
+ * @return $this
+ */
+ public function setSourceSystemTimestamps($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\SystemTimestamps::class);
+ $this->source_system_timestamps = $var;
+
+ return $this;
+ }
+
+ /**
+ * Resource usage statistics.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.UsageSignal usage_signal = 13;
+ * @return \Google\Cloud\DataCatalog\V1\UsageSignal|null
+ */
+ public function getUsageSignal()
+ {
+ return $this->usage_signal;
+ }
+
+ public function hasUsageSignal()
+ {
+ return isset($this->usage_signal);
+ }
+
+ public function clearUsageSignal()
+ {
+ unset($this->usage_signal);
+ }
+
+ /**
+ * Resource usage statistics.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.UsageSignal usage_signal = 13;
+ * @param \Google\Cloud\DataCatalog\V1\UsageSignal $var
+ * @return $this
+ */
+ public function setUsageSignal($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\UsageSignal::class);
+ $this->usage_signal = $var;
+
+ return $this;
+ }
+
+ /**
+ * Cloud labels attached to the entry.
+ * In Data Catalog, you can create and modify labels attached only to custom
+ * entries. Synced entries have unmodifiable labels that come from the source
+ * system.
+ *
+ * Generated from protobuf field map labels = 14;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * Cloud labels attached to the entry.
+ * In Data Catalog, you can create and modify labels attached only to custom
+ * entries. Synced entries have unmodifiable labels that come from the source
+ * system.
+ *
+ * Generated from protobuf field map labels = 14;
+ * @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. Physical location of the entry.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DataSource data_source = 20 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\DataCatalog\V1\DataSource|null
+ */
+ public function getDataSource()
+ {
+ return $this->data_source;
+ }
+
+ public function hasDataSource()
+ {
+ return isset($this->data_source);
+ }
+
+ public function clearDataSource()
+ {
+ unset($this->data_source);
+ }
+
+ /**
+ * Output only. Physical location of the entry.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DataSource data_source = 20 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\DataCatalog\V1\DataSource $var
+ * @return $this
+ */
+ public function setDataSource($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\DataSource::class);
+ $this->data_source = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Additional information related to the entry. Private to the
+ * current user.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.PersonalDetails personal_details = 26 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\DataCatalog\V1\PersonalDetails|null
+ */
+ public function getPersonalDetails()
+ {
+ return $this->personal_details;
+ }
+
+ public function hasPersonalDetails()
+ {
+ return isset($this->personal_details);
+ }
+
+ public function clearPersonalDetails()
+ {
+ unset($this->personal_details);
+ }
+
+ /**
+ * Output only. Additional information related to the entry. Private to the
+ * current user.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.PersonalDetails personal_details = 26 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\DataCatalog\V1\PersonalDetails $var
+ * @return $this
+ */
+ public function setPersonalDetails($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\PersonalDetails::class);
+ $this->personal_details = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getEntryType()
+ {
+ return $this->whichOneof("entry_type");
+ }
+
+ /**
+ * @return string
+ */
+ public function getSystem()
+ {
+ return $this->whichOneof("system");
+ }
+
+ /**
+ * @return string
+ */
+ public function getSystemSpec()
+ {
+ return $this->whichOneof("system_spec");
+ }
+
+ /**
+ * @return string
+ */
+ public function getTypeSpec()
+ {
+ return $this->whichOneof("type_spec");
+ }
+
+ /**
+ * @return string
+ */
+ public function getSpec()
+ {
+ return $this->whichOneof("spec");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/EntryGroup.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/EntryGroup.php
new file mode 100644
index 000000000000..0b5f74f3273d
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/EntryGroup.php
@@ -0,0 +1,201 @@
+google.cloud.datacatalog.v1.EntryGroup
+ */
+class EntryGroup extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The resource name of the entry group in URL format.
+ * Note: The entry group itself and its child resources might not be
+ * stored in the location specified in its name.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * A short name to identify the entry group, for example,
+ * "analytics data - jan 2011". Default value is an empty string.
+ *
+ * Generated from protobuf field string display_name = 2;
+ */
+ protected $display_name = '';
+ /**
+ * Entry group description. Can consist of several sentences or
+ * paragraphs that describe the entry group contents.
+ * Default value is an empty string.
+ *
+ * Generated from protobuf field string description = 3;
+ */
+ protected $description = '';
+ /**
+ * Output only. Timestamps of the entry group. Default value is empty.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.SystemTimestamps data_catalog_timestamps = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $data_catalog_timestamps = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The resource name of the entry group in URL format.
+ * Note: The entry group itself and its child resources might not be
+ * stored in the location specified in its name.
+ * @type string $display_name
+ * A short name to identify the entry group, for example,
+ * "analytics data - jan 2011". Default value is an empty string.
+ * @type string $description
+ * Entry group description. Can consist of several sentences or
+ * paragraphs that describe the entry group contents.
+ * Default value is an empty string.
+ * @type \Google\Cloud\DataCatalog\V1\SystemTimestamps $data_catalog_timestamps
+ * Output only. Timestamps of the entry group. Default value is empty.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The resource name of the entry group in URL format.
+ * Note: The entry group itself and its child resources might not be
+ * stored in the location specified in its name.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The resource name of the entry group in URL format.
+ * Note: The entry group itself and its child resources might not be
+ * stored in the location specified in its name.
+ *
+ * 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;
+ }
+
+ /**
+ * A short name to identify the entry group, for example,
+ * "analytics data - jan 2011". Default value is an empty string.
+ *
+ * Generated from protobuf field string display_name = 2;
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * A short name to identify the entry group, for example,
+ * "analytics data - jan 2011". Default value is an empty string.
+ *
+ * Generated from protobuf field string display_name = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Entry group description. Can consist of several sentences or
+ * paragraphs that describe the entry group contents.
+ * Default value is an empty string.
+ *
+ * Generated from protobuf field string description = 3;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Entry group description. Can consist of several sentences or
+ * paragraphs that describe the entry group contents.
+ * Default value is an empty string.
+ *
+ * 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;
+ }
+
+ /**
+ * Output only. Timestamps of the entry group. Default value is empty.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.SystemTimestamps data_catalog_timestamps = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\DataCatalog\V1\SystemTimestamps|null
+ */
+ public function getDataCatalogTimestamps()
+ {
+ return $this->data_catalog_timestamps;
+ }
+
+ public function hasDataCatalogTimestamps()
+ {
+ return isset($this->data_catalog_timestamps);
+ }
+
+ public function clearDataCatalogTimestamps()
+ {
+ unset($this->data_catalog_timestamps);
+ }
+
+ /**
+ * Output only. Timestamps of the entry group. Default value is empty.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.SystemTimestamps data_catalog_timestamps = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\DataCatalog\V1\SystemTimestamps $var
+ * @return $this
+ */
+ public function setDataCatalogTimestamps($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\SystemTimestamps::class);
+ $this->data_catalog_timestamps = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/EntryOverview.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/EntryOverview.php
new file mode 100644
index 000000000000..b4ff526f9098
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/EntryOverview.php
@@ -0,0 +1,87 @@
+google.cloud.datacatalog.v1.EntryOverview
+ */
+class EntryOverview extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Entry overview with support for rich text.
+ * The overview must only contain Unicode characters, and should be
+ * formatted using HTML.
+ * The maximum length is 10 MiB as this value holds HTML descriptions
+ * including encoded images. The maximum length of the text without images
+ * is 100 KiB.
+ *
+ * Generated from protobuf field string overview = 1;
+ */
+ protected $overview = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $overview
+ * Entry overview with support for rich text.
+ * The overview must only contain Unicode characters, and should be
+ * formatted using HTML.
+ * The maximum length is 10 MiB as this value holds HTML descriptions
+ * including encoded images. The maximum length of the text without images
+ * is 100 KiB.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Entry overview with support for rich text.
+ * The overview must only contain Unicode characters, and should be
+ * formatted using HTML.
+ * The maximum length is 10 MiB as this value holds HTML descriptions
+ * including encoded images. The maximum length of the text without images
+ * is 100 KiB.
+ *
+ * Generated from protobuf field string overview = 1;
+ * @return string
+ */
+ public function getOverview()
+ {
+ return $this->overview;
+ }
+
+ /**
+ * Entry overview with support for rich text.
+ * The overview must only contain Unicode characters, and should be
+ * formatted using HTML.
+ * The maximum length is 10 MiB as this value holds HTML descriptions
+ * including encoded images. The maximum length of the text without images
+ * is 100 KiB.
+ *
+ * Generated from protobuf field string overview = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setOverview($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->overview = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/EntryType.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/EntryType.php
new file mode 100644
index 000000000000..77a152984899
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/EntryType.php
@@ -0,0 +1,171 @@
+google.cloud.datacatalog.v1.EntryType
+ */
+class EntryType
+{
+ /**
+ * Default unknown type.
+ *
+ * Generated from protobuf enum ENTRY_TYPE_UNSPECIFIED = 0;
+ */
+ const ENTRY_TYPE_UNSPECIFIED = 0;
+ /**
+ * The entry type that has a GoogleSQL schema, including
+ * logical views.
+ *
+ * Generated from protobuf enum TABLE = 2;
+ */
+ const TABLE = 2;
+ /**
+ * The type of models.
+ * For more information, see [Supported models in BigQuery
+ * ML](/bigquery/docs/bqml-introduction#supported_models).
+ *
+ * Generated from protobuf enum MODEL = 5;
+ */
+ const MODEL = 5;
+ /**
+ * An entry type for streaming entries. For example, a Pub/Sub topic.
+ *
+ * Generated from protobuf enum DATA_STREAM = 3;
+ */
+ const DATA_STREAM = 3;
+ /**
+ * An entry type for a set of files or objects. For example, a
+ * Cloud Storage fileset.
+ *
+ * Generated from protobuf enum FILESET = 4;
+ */
+ const FILESET = 4;
+ /**
+ * A group of servers that work together. For example, a Kafka cluster.
+ *
+ * Generated from protobuf enum CLUSTER = 6;
+ */
+ const CLUSTER = 6;
+ /**
+ * A database.
+ *
+ * Generated from protobuf enum DATABASE = 7;
+ */
+ const DATABASE = 7;
+ /**
+ * Connection to a data source. For example, a BigQuery
+ * connection.
+ *
+ * Generated from protobuf enum DATA_SOURCE_CONNECTION = 8;
+ */
+ const DATA_SOURCE_CONNECTION = 8;
+ /**
+ * Routine, for example, a BigQuery routine.
+ *
+ * Generated from protobuf enum ROUTINE = 9;
+ */
+ const ROUTINE = 9;
+ /**
+ * A Dataplex lake.
+ *
+ * Generated from protobuf enum LAKE = 10;
+ */
+ const LAKE = 10;
+ /**
+ * A Dataplex zone.
+ *
+ * Generated from protobuf enum ZONE = 11;
+ */
+ const ZONE = 11;
+ /**
+ * A service, for example, a Dataproc Metastore service.
+ *
+ * Generated from protobuf enum SERVICE = 14;
+ */
+ const SERVICE = 14;
+ /**
+ * Schema within a relational database.
+ *
+ * Generated from protobuf enum DATABASE_SCHEMA = 15;
+ */
+ const DATABASE_SCHEMA = 15;
+ /**
+ * A Dashboard, for example from Looker.
+ *
+ * Generated from protobuf enum DASHBOARD = 16;
+ */
+ const DASHBOARD = 16;
+ /**
+ * A Looker Explore.
+ * For more information, see [Looker Explore API]
+ * (https://developers.looker.com/api/explorer/4.0/methods/LookmlModel/lookml_model_explore).
+ *
+ * Generated from protobuf enum EXPLORE = 17;
+ */
+ const EXPLORE = 17;
+ /**
+ * A Looker Look.
+ * For more information, see [Looker Look API]
+ * (https://developers.looker.com/api/explorer/4.0/methods/Look).
+ *
+ * Generated from protobuf enum LOOK = 18;
+ */
+ const LOOK = 18;
+
+ private static $valueToName = [
+ self::ENTRY_TYPE_UNSPECIFIED => 'ENTRY_TYPE_UNSPECIFIED',
+ self::TABLE => 'TABLE',
+ self::MODEL => 'MODEL',
+ self::DATA_STREAM => 'DATA_STREAM',
+ self::FILESET => 'FILESET',
+ self::CLUSTER => 'CLUSTER',
+ self::DATABASE => 'DATABASE',
+ self::DATA_SOURCE_CONNECTION => 'DATA_SOURCE_CONNECTION',
+ self::ROUTINE => 'ROUTINE',
+ self::LAKE => 'LAKE',
+ self::ZONE => 'ZONE',
+ self::SERVICE => 'SERVICE',
+ self::DATABASE_SCHEMA => 'DATABASE_SCHEMA',
+ self::DASHBOARD => 'DASHBOARD',
+ self::EXPLORE => 'EXPLORE',
+ self::LOOK => 'LOOK',
+ ];
+
+ 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/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ExportTaxonomiesRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ExportTaxonomiesRequest.php
new file mode 100644
index 000000000000..1bc6ad77ffb2
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ExportTaxonomiesRequest.php
@@ -0,0 +1,151 @@
+google.cloud.datacatalog.v1.ExportTaxonomiesRequest
+ */
+class ExportTaxonomiesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name of the project that the exported taxonomies belong
+ * to.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. Resource names of the taxonomies to export.
+ *
+ * Generated from protobuf field repeated string taxonomies = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ private $taxonomies;
+ protected $destination;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Resource name of the project that the exported taxonomies belong
+ * to.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $taxonomies
+ * Required. Resource names of the taxonomies to export.
+ * @type bool $serialized_taxonomies
+ * Serialized export taxonomies that contain all the policy
+ * tags as nested protocol buffers.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Policytagmanagerserialization::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name of the project that the exported taxonomies belong
+ * to.
+ *
+ * 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. Resource name of the project that the exported taxonomies belong
+ * to.
+ *
+ * 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. Resource names of the taxonomies to export.
+ *
+ * Generated from protobuf field repeated string taxonomies = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTaxonomies()
+ {
+ return $this->taxonomies;
+ }
+
+ /**
+ * Required. Resource names of the taxonomies to export.
+ *
+ * Generated from protobuf field repeated string taxonomies = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTaxonomies($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->taxonomies = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Serialized export taxonomies that contain all the policy
+ * tags as nested protocol buffers.
+ *
+ * Generated from protobuf field bool serialized_taxonomies = 3;
+ * @return bool
+ */
+ public function getSerializedTaxonomies()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasSerializedTaxonomies()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * Serialized export taxonomies that contain all the policy
+ * tags as nested protocol buffers.
+ *
+ * Generated from protobuf field bool serialized_taxonomies = 3;
+ * @param bool $var
+ * @return $this
+ */
+ public function setSerializedTaxonomies($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getDestination()
+ {
+ return $this->whichOneof("destination");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ExportTaxonomiesResponse.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ExportTaxonomiesResponse.php
new file mode 100644
index 000000000000..95c8a255a460
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ExportTaxonomiesResponse.php
@@ -0,0 +1,68 @@
+google.cloud.datacatalog.v1.ExportTaxonomiesResponse
+ */
+class ExportTaxonomiesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * List of taxonomies and policy tags as nested protocol buffers.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.SerializedTaxonomy taxonomies = 1;
+ */
+ private $taxonomies;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\DataCatalog\V1\SerializedTaxonomy>|\Google\Protobuf\Internal\RepeatedField $taxonomies
+ * List of taxonomies and policy tags as nested protocol buffers.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Policytagmanagerserialization::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * List of taxonomies and policy tags as nested protocol buffers.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.SerializedTaxonomy taxonomies = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTaxonomies()
+ {
+ return $this->taxonomies;
+ }
+
+ /**
+ * List of taxonomies and policy tags as nested protocol buffers.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.SerializedTaxonomy taxonomies = 1;
+ * @param array<\Google\Cloud\DataCatalog\V1\SerializedTaxonomy>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTaxonomies($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\DataCatalog\V1\SerializedTaxonomy::class);
+ $this->taxonomies = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/FieldType.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/FieldType.php
new file mode 100644
index 000000000000..5d952db4056b
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/FieldType.php
@@ -0,0 +1,106 @@
+google.cloud.datacatalog.v1.FieldType
+ */
+class FieldType extends \Google\Protobuf\Internal\Message
+{
+ protected $type_decl;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $primitive_type
+ * Primitive types, such as string, boolean, etc.
+ * @type \Google\Cloud\DataCatalog\V1\FieldType\EnumType $enum_type
+ * An enum type.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Tags::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Primitive types, such as string, boolean, etc.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.FieldType.PrimitiveType primitive_type = 1;
+ * @return int
+ */
+ public function getPrimitiveType()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasPrimitiveType()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Primitive types, such as string, boolean, etc.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.FieldType.PrimitiveType primitive_type = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setPrimitiveType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\DataCatalog\V1\FieldType\PrimitiveType::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * An enum type.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.FieldType.EnumType enum_type = 2;
+ * @return \Google\Cloud\DataCatalog\V1\FieldType\EnumType|null
+ */
+ public function getEnumType()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasEnumType()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * An enum type.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.FieldType.EnumType enum_type = 2;
+ * @param \Google\Cloud\DataCatalog\V1\FieldType\EnumType $var
+ * @return $this
+ */
+ public function setEnumType($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\FieldType\EnumType::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getTypeDecl()
+ {
+ return $this->whichOneof("type_decl");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/FieldType/EnumType.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/FieldType/EnumType.php
new file mode 100644
index 000000000000..1c20119a3004
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/FieldType/EnumType.php
@@ -0,0 +1,92 @@
+google.cloud.datacatalog.v1.FieldType.EnumType
+ */
+class EnumType extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The set of allowed values for this enum.
+ * This set must not be empty and can include up to 100 allowed values.
+ * The display names of the values in this set must not be empty and must
+ * be case-insensitively unique within this set.
+ * The order of items in this set is preserved. This field can be used to
+ * create, remove, and reorder enum values. To rename enum values, use the
+ * `RenameTagTemplateFieldEnumValue` method.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.FieldType.EnumType.EnumValue allowed_values = 1;
+ */
+ private $allowed_values;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\DataCatalog\V1\FieldType\EnumType\EnumValue>|\Google\Protobuf\Internal\RepeatedField $allowed_values
+ * The set of allowed values for this enum.
+ * This set must not be empty and can include up to 100 allowed values.
+ * The display names of the values in this set must not be empty and must
+ * be case-insensitively unique within this set.
+ * The order of items in this set is preserved. This field can be used to
+ * create, remove, and reorder enum values. To rename enum values, use the
+ * `RenameTagTemplateFieldEnumValue` method.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Tags::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The set of allowed values for this enum.
+ * This set must not be empty and can include up to 100 allowed values.
+ * The display names of the values in this set must not be empty and must
+ * be case-insensitively unique within this set.
+ * The order of items in this set is preserved. This field can be used to
+ * create, remove, and reorder enum values. To rename enum values, use the
+ * `RenameTagTemplateFieldEnumValue` method.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.FieldType.EnumType.EnumValue allowed_values = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAllowedValues()
+ {
+ return $this->allowed_values;
+ }
+
+ /**
+ * The set of allowed values for this enum.
+ * This set must not be empty and can include up to 100 allowed values.
+ * The display names of the values in this set must not be empty and must
+ * be case-insensitively unique within this set.
+ * The order of items in this set is preserved. This field can be used to
+ * create, remove, and reorder enum values. To rename enum values, use the
+ * `RenameTagTemplateFieldEnumValue` method.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.FieldType.EnumType.EnumValue allowed_values = 1;
+ * @param array<\Google\Cloud\DataCatalog\V1\FieldType\EnumType\EnumValue>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAllowedValues($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\DataCatalog\V1\FieldType\EnumType\EnumValue::class);
+ $this->allowed_values = $arr;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(EnumType::class, \Google\Cloud\DataCatalog\V1\FieldType_EnumType::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/FieldType/EnumType/EnumValue.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/FieldType/EnumType/EnumValue.php
new file mode 100644
index 000000000000..25183374dd76
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/FieldType/EnumType/EnumValue.php
@@ -0,0 +1,84 @@
+google.cloud.datacatalog.v1.FieldType.EnumType.EnumValue
+ */
+class EnumValue extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The display name of the enum value. Must not be an empty
+ * string.
+ * The name must contain only Unicode letters, numbers (0-9), underscores
+ * (_), dashes (-), spaces ( ), and can't start or end with spaces. The
+ * maximum length is 200 characters.
+ *
+ * Generated from protobuf field string display_name = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $display_name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $display_name
+ * Required. The display name of the enum value. Must not be an empty
+ * string.
+ * The name must contain only Unicode letters, numbers (0-9), underscores
+ * (_), dashes (-), spaces ( ), and can't start or end with spaces. The
+ * maximum length is 200 characters.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Tags::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The display name of the enum value. Must not be an empty
+ * string.
+ * The name must contain only Unicode letters, numbers (0-9), underscores
+ * (_), dashes (-), spaces ( ), and can't start or end with spaces. The
+ * maximum length is 200 characters.
+ *
+ * Generated from protobuf field string display_name = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * Required. The display name of the enum value. Must not be an empty
+ * string.
+ * The name must contain only Unicode letters, numbers (0-9), underscores
+ * (_), dashes (-), spaces ( ), and can't start or end with spaces. The
+ * maximum length is 200 characters.
+ *
+ * Generated from protobuf field string display_name = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(EnumValue::class, \Google\Cloud\DataCatalog\V1\FieldType_EnumType_EnumValue::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/FieldType/PrimitiveType.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/FieldType/PrimitiveType.php
new file mode 100644
index 000000000000..66a488a3619c
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/FieldType/PrimitiveType.php
@@ -0,0 +1,83 @@
+google.cloud.datacatalog.v1.FieldType.PrimitiveType
+ */
+class PrimitiveType
+{
+ /**
+ * The default invalid value for a type.
+ *
+ * Generated from protobuf enum PRIMITIVE_TYPE_UNSPECIFIED = 0;
+ */
+ const PRIMITIVE_TYPE_UNSPECIFIED = 0;
+ /**
+ * A double precision number.
+ *
+ * Generated from protobuf enum DOUBLE = 1;
+ */
+ const DOUBLE = 1;
+ /**
+ * An UTF-8 string.
+ *
+ * Generated from protobuf enum STRING = 2;
+ */
+ const STRING = 2;
+ /**
+ * A boolean value.
+ *
+ * Generated from protobuf enum BOOL = 3;
+ */
+ const BOOL = 3;
+ /**
+ * A timestamp.
+ *
+ * Generated from protobuf enum TIMESTAMP = 4;
+ */
+ const TIMESTAMP = 4;
+ /**
+ * A Richtext description.
+ *
+ * Generated from protobuf enum RICHTEXT = 5;
+ */
+ const RICHTEXT = 5;
+
+ private static $valueToName = [
+ self::PRIMITIVE_TYPE_UNSPECIFIED => 'PRIMITIVE_TYPE_UNSPECIFIED',
+ self::DOUBLE => 'DOUBLE',
+ self::STRING => 'STRING',
+ self::BOOL => 'BOOL',
+ self::TIMESTAMP => 'TIMESTAMP',
+ self::RICHTEXT => 'RICHTEXT',
+ ];
+
+ 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(PrimitiveType::class, \Google\Cloud\DataCatalog\V1\FieldType_PrimitiveType::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/FilesetSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/FilesetSpec.php
new file mode 100644
index 000000000000..1034f0dffb15
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/FilesetSpec.php
@@ -0,0 +1,82 @@
+google.cloud.datacatalog.v1.FilesetSpec
+ */
+class FilesetSpec extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Fields specific to a Dataplex fileset and present only in the Dataplex
+ * fileset entries.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DataplexFilesetSpec dataplex_fileset = 1;
+ */
+ protected $dataplex_fileset = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\DataCatalog\V1\DataplexFilesetSpec $dataplex_fileset
+ * Fields specific to a Dataplex fileset and present only in the Dataplex
+ * fileset entries.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Fields specific to a Dataplex fileset and present only in the Dataplex
+ * fileset entries.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DataplexFilesetSpec dataplex_fileset = 1;
+ * @return \Google\Cloud\DataCatalog\V1\DataplexFilesetSpec|null
+ */
+ public function getDataplexFileset()
+ {
+ return $this->dataplex_fileset;
+ }
+
+ public function hasDataplexFileset()
+ {
+ return isset($this->dataplex_fileset);
+ }
+
+ public function clearDataplexFileset()
+ {
+ unset($this->dataplex_fileset);
+ }
+
+ /**
+ * Fields specific to a Dataplex fileset and present only in the Dataplex
+ * fileset entries.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.DataplexFilesetSpec dataplex_fileset = 1;
+ * @param \Google\Cloud\DataCatalog\V1\DataplexFilesetSpec $var
+ * @return $this
+ */
+ public function setDataplexFileset($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\DataplexFilesetSpec::class);
+ $this->dataplex_fileset = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/GcsFileSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/GcsFileSpec.php
new file mode 100644
index 000000000000..1d7a9dc320c3
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/GcsFileSpec.php
@@ -0,0 +1,149 @@
+google.cloud.datacatalog.v1.GcsFileSpec
+ */
+class GcsFileSpec extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Full file path. Example: `gs://bucket_name/a/b.txt`.
+ *
+ * Generated from protobuf field string file_path = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $file_path = '';
+ /**
+ * Output only. Creation, modification, and expiration timestamps of a Cloud
+ * Storage file.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.SystemTimestamps gcs_timestamps = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $gcs_timestamps = null;
+ /**
+ * Output only. File size in bytes.
+ *
+ * Generated from protobuf field int64 size_bytes = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $size_bytes = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $file_path
+ * Required. Full file path. Example: `gs://bucket_name/a/b.txt`.
+ * @type \Google\Cloud\DataCatalog\V1\SystemTimestamps $gcs_timestamps
+ * Output only. Creation, modification, and expiration timestamps of a Cloud
+ * Storage file.
+ * @type int|string $size_bytes
+ * Output only. File size in bytes.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\GcsFilesetSpec::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Full file path. Example: `gs://bucket_name/a/b.txt`.
+ *
+ * Generated from protobuf field string file_path = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getFilePath()
+ {
+ return $this->file_path;
+ }
+
+ /**
+ * Required. Full file path. Example: `gs://bucket_name/a/b.txt`.
+ *
+ * Generated from protobuf field string file_path = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setFilePath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->file_path = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Creation, modification, and expiration timestamps of a Cloud
+ * Storage file.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.SystemTimestamps gcs_timestamps = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\DataCatalog\V1\SystemTimestamps|null
+ */
+ public function getGcsTimestamps()
+ {
+ return $this->gcs_timestamps;
+ }
+
+ public function hasGcsTimestamps()
+ {
+ return isset($this->gcs_timestamps);
+ }
+
+ public function clearGcsTimestamps()
+ {
+ unset($this->gcs_timestamps);
+ }
+
+ /**
+ * Output only. Creation, modification, and expiration timestamps of a Cloud
+ * Storage file.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.SystemTimestamps gcs_timestamps = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\DataCatalog\V1\SystemTimestamps $var
+ * @return $this
+ */
+ public function setGcsTimestamps($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\SystemTimestamps::class);
+ $this->gcs_timestamps = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. File size in bytes.
+ *
+ * Generated from protobuf field int64 size_bytes = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int|string
+ */
+ public function getSizeBytes()
+ {
+ return $this->size_bytes;
+ }
+
+ /**
+ * Output only. File size in bytes.
+ *
+ * Generated from protobuf field int64 size_bytes = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setSizeBytes($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->size_bytes = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/GcsFilesetSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/GcsFilesetSpec.php
new file mode 100644
index 000000000000..c124b211405d
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/GcsFilesetSpec.php
@@ -0,0 +1,193 @@
+google.cloud.datacatalog.v1.GcsFilesetSpec
+ */
+class GcsFilesetSpec extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Patterns to identify a set of files in Google Cloud Storage.
+ * For more information, see [Wildcard Names]
+ * (https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames).
+ * Note: Currently, bucket wildcards are not supported.
+ * Examples of valid `file_patterns`:
+ * * `gs://bucket_name/dir/*`: matches all files in `bucket_name/dir`
+ * directory
+ * * `gs://bucket_name/dir/**`: matches all files in `bucket_name/dir`
+ * and all subdirectories
+ * * `gs://bucket_name/file*`: matches files prefixed by `file` in
+ * `bucket_name`
+ * * `gs://bucket_name/??.txt`: matches files with two characters followed by
+ * `.txt` in `bucket_name`
+ * * `gs://bucket_name/[aeiou].txt`: matches files that contain a single
+ * vowel character followed by `.txt` in
+ * `bucket_name`
+ * * `gs://bucket_name/[a-m].txt`: matches files that contain `a`, `b`, ...
+ * or `m` followed by `.txt` in `bucket_name`
+ * * `gs://bucket_name/a/*/b`: matches all files in `bucket_name` that match
+ * the `a/*/b` pattern, such as `a/c/b`, `a/d/b`
+ * * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`
+ * You can combine wildcards to match complex sets of files, for example:
+ * `gs://bucket_name/[a-m]??.j*g`
+ *
+ * Generated from protobuf field repeated string file_patterns = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $file_patterns;
+ /**
+ * Output only. Sample files contained in this fileset, not all files
+ * contained in this fileset are represented here.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $sample_gcs_file_specs;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $file_patterns
+ * Required. Patterns to identify a set of files in Google Cloud Storage.
+ * For more information, see [Wildcard Names]
+ * (https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames).
+ * Note: Currently, bucket wildcards are not supported.
+ * Examples of valid `file_patterns`:
+ * * `gs://bucket_name/dir/*`: matches all files in `bucket_name/dir`
+ * directory
+ * * `gs://bucket_name/dir/**`: matches all files in `bucket_name/dir`
+ * and all subdirectories
+ * * `gs://bucket_name/file*`: matches files prefixed by `file` in
+ * `bucket_name`
+ * * `gs://bucket_name/??.txt`: matches files with two characters followed by
+ * `.txt` in `bucket_name`
+ * * `gs://bucket_name/[aeiou].txt`: matches files that contain a single
+ * vowel character followed by `.txt` in
+ * `bucket_name`
+ * * `gs://bucket_name/[a-m].txt`: matches files that contain `a`, `b`, ...
+ * or `m` followed by `.txt` in `bucket_name`
+ * * `gs://bucket_name/a/*/b`: matches all files in `bucket_name` that match
+ * the `a/*/b` pattern, such as `a/c/b`, `a/d/b`
+ * * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`
+ * You can combine wildcards to match complex sets of files, for example:
+ * `gs://bucket_name/[a-m]??.j*g`
+ * @type array<\Google\Cloud\DataCatalog\V1\GcsFileSpec>|\Google\Protobuf\Internal\RepeatedField $sample_gcs_file_specs
+ * Output only. Sample files contained in this fileset, not all files
+ * contained in this fileset are represented here.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\GcsFilesetSpec::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Patterns to identify a set of files in Google Cloud Storage.
+ * For more information, see [Wildcard Names]
+ * (https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames).
+ * Note: Currently, bucket wildcards are not supported.
+ * Examples of valid `file_patterns`:
+ * * `gs://bucket_name/dir/*`: matches all files in `bucket_name/dir`
+ * directory
+ * * `gs://bucket_name/dir/**`: matches all files in `bucket_name/dir`
+ * and all subdirectories
+ * * `gs://bucket_name/file*`: matches files prefixed by `file` in
+ * `bucket_name`
+ * * `gs://bucket_name/??.txt`: matches files with two characters followed by
+ * `.txt` in `bucket_name`
+ * * `gs://bucket_name/[aeiou].txt`: matches files that contain a single
+ * vowel character followed by `.txt` in
+ * `bucket_name`
+ * * `gs://bucket_name/[a-m].txt`: matches files that contain `a`, `b`, ...
+ * or `m` followed by `.txt` in `bucket_name`
+ * * `gs://bucket_name/a/*/b`: matches all files in `bucket_name` that match
+ * the `a/*/b` pattern, such as `a/c/b`, `a/d/b`
+ * * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`
+ * You can combine wildcards to match complex sets of files, for example:
+ * `gs://bucket_name/[a-m]??.j*g`
+ *
+ * Generated from protobuf field repeated string file_patterns = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getFilePatterns()
+ {
+ return $this->file_patterns;
+ }
+
+ /**
+ * Required. Patterns to identify a set of files in Google Cloud Storage.
+ * For more information, see [Wildcard Names]
+ * (https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames).
+ * Note: Currently, bucket wildcards are not supported.
+ * Examples of valid `file_patterns`:
+ * * `gs://bucket_name/dir/*`: matches all files in `bucket_name/dir`
+ * directory
+ * * `gs://bucket_name/dir/**`: matches all files in `bucket_name/dir`
+ * and all subdirectories
+ * * `gs://bucket_name/file*`: matches files prefixed by `file` in
+ * `bucket_name`
+ * * `gs://bucket_name/??.txt`: matches files with two characters followed by
+ * `.txt` in `bucket_name`
+ * * `gs://bucket_name/[aeiou].txt`: matches files that contain a single
+ * vowel character followed by `.txt` in
+ * `bucket_name`
+ * * `gs://bucket_name/[a-m].txt`: matches files that contain `a`, `b`, ...
+ * or `m` followed by `.txt` in `bucket_name`
+ * * `gs://bucket_name/a/*/b`: matches all files in `bucket_name` that match
+ * the `a/*/b` pattern, such as `a/c/b`, `a/d/b`
+ * * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`
+ * You can combine wildcards to match complex sets of files, for example:
+ * `gs://bucket_name/[a-m]??.j*g`
+ *
+ * Generated from protobuf field repeated string file_patterns = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setFilePatterns($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->file_patterns = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Sample files contained in this fileset, not all files
+ * contained in this fileset are represented here.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getSampleGcsFileSpecs()
+ {
+ return $this->sample_gcs_file_specs;
+ }
+
+ /**
+ * Output only. Sample files contained in this fileset, not all files
+ * contained in this fileset are represented here.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.GcsFileSpec sample_gcs_file_specs = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array<\Google\Cloud\DataCatalog\V1\GcsFileSpec>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setSampleGcsFileSpecs($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\DataCatalog\V1\GcsFileSpec::class);
+ $this->sample_gcs_file_specs = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/GetEntryGroupRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/GetEntryGroupRequest.php
new file mode 100644
index 000000000000..76b61e38e9bd
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/GetEntryGroupRequest.php
@@ -0,0 +1,142 @@
+google.cloud.datacatalog.v1.GetEntryGroupRequest
+ */
+class GetEntryGroupRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the entry group to get.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * The fields to return. If empty or omitted, all fields are returned.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask read_mask = 2;
+ */
+ protected $read_mask = null;
+
+ /**
+ * @param string $name Required. The name of the entry group to get. Please see
+ * {@see DataCatalogClient::entryGroupName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\GetEntryGroupRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * @param string $name Required. The name of the entry group to get. Please see
+ * {@see DataCatalogClient::entryGroupName()} for help formatting this field.
+ * @param \Google\Protobuf\FieldMask $readMask The fields to return. If empty or omitted, all fields are returned.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\GetEntryGroupRequest
+ *
+ * @experimental
+ */
+ public static function buildFromNameReadMask(string $name, \Google\Protobuf\FieldMask $readMask): self
+ {
+ return (new self())
+ ->setName($name)
+ ->setReadMask($readMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the entry group to get.
+ * @type \Google\Protobuf\FieldMask $read_mask
+ * The fields to return. If empty or omitted, all fields are returned.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the entry group to get.
+ *
+ * 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 entry group to get.
+ *
+ * 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;
+ }
+
+ /**
+ * The fields to return. If empty or omitted, all fields are returned.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask read_mask = 2;
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getReadMask()
+ {
+ return $this->read_mask;
+ }
+
+ public function hasReadMask()
+ {
+ return isset($this->read_mask);
+ }
+
+ public function clearReadMask()
+ {
+ unset($this->read_mask);
+ }
+
+ /**
+ * The fields to return. If empty or omitted, all fields are returned.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask read_mask = 2;
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setReadMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->read_mask = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/GetEntryRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/GetEntryRequest.php
new file mode 100644
index 000000000000..d75c330de5f0
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/GetEntryRequest.php
@@ -0,0 +1,82 @@
+google.cloud.datacatalog.v1.GetEntryRequest
+ */
+class GetEntryRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the entry to get.
+ *
+ * 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 entry to get. Please see
+ * {@see DataCatalogClient::entryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\GetEntryRequest
+ *
+ * @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 entry to get.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the entry to get.
+ *
+ * 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 entry to get.
+ *
+ * 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/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/GetPolicyTagRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/GetPolicyTagRequest.php
new file mode 100644
index 000000000000..69deebd11459
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/GetPolicyTagRequest.php
@@ -0,0 +1,82 @@
+google.cloud.datacatalog.v1.GetPolicyTagRequest
+ */
+class GetPolicyTagRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name of the policy tag.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Resource name of the policy tag. Please see
+ * {@see PolicyTagManagerClient::policyTagName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\GetPolicyTagRequest
+ *
+ * @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. Resource name of the policy tag.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Policytagmanager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name of the policy tag.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Resource name of the policy tag.
+ *
+ * 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/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/GetTagTemplateRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/GetTagTemplateRequest.php
new file mode 100644
index 000000000000..2abfb6facd24
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/GetTagTemplateRequest.php
@@ -0,0 +1,82 @@
+google.cloud.datacatalog.v1.GetTagTemplateRequest
+ */
+class GetTagTemplateRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the tag template to get.
+ *
+ * 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 tag template to get. Please see
+ * {@see DataCatalogClient::tagTemplateName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\GetTagTemplateRequest
+ *
+ * @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 tag template to get.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the tag template to get.
+ *
+ * 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 tag template to get.
+ *
+ * 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/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/GetTaxonomyRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/GetTaxonomyRequest.php
new file mode 100644
index 000000000000..6efa888ac7b1
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/GetTaxonomyRequest.php
@@ -0,0 +1,82 @@
+google.cloud.datacatalog.v1.GetTaxonomyRequest
+ */
+class GetTaxonomyRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name of the taxonomy to get.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Resource name of the taxonomy to get. Please see
+ * {@see PolicyTagManagerClient::taxonomyName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\GetTaxonomyRequest
+ *
+ * @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. Resource name of the taxonomy to get.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Policytagmanager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name of the taxonomy to get.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Resource name of the taxonomy to get.
+ *
+ * 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/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ImportEntriesMetadata.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ImportEntriesMetadata.php
new file mode 100644
index 000000000000..d5afa31cf075
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ImportEntriesMetadata.php
@@ -0,0 +1,115 @@
+google.cloud.datacatalog.v1.ImportEntriesMetadata
+ */
+class ImportEntriesMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * State of the import operation.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.ImportEntriesMetadata.ImportState state = 1;
+ */
+ protected $state = 0;
+ /**
+ * Partial errors that are encountered during the ImportEntries operation.
+ * There is no guarantee that all the encountered errors are reported.
+ * However, if no errors are reported, it means that no errors were
+ * encountered.
+ *
+ * Generated from protobuf field repeated .google.rpc.Status errors = 2;
+ */
+ private $errors;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $state
+ * State of the import operation.
+ * @type array<\Google\Rpc\Status>|\Google\Protobuf\Internal\RepeatedField $errors
+ * Partial errors that are encountered during the ImportEntries operation.
+ * There is no guarantee that all the encountered errors are reported.
+ * However, if no errors are reported, it means that no errors were
+ * encountered.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * State of the import operation.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.ImportEntriesMetadata.ImportState state = 1;
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * State of the import operation.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.ImportEntriesMetadata.ImportState state = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\DataCatalog\V1\ImportEntriesMetadata\ImportState::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Partial errors that are encountered during the ImportEntries operation.
+ * There is no guarantee that all the encountered errors are reported.
+ * However, if no errors are reported, it means that no errors were
+ * encountered.
+ *
+ * Generated from protobuf field repeated .google.rpc.Status errors = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getErrors()
+ {
+ return $this->errors;
+ }
+
+ /**
+ * Partial errors that are encountered during the ImportEntries operation.
+ * There is no guarantee that all the encountered errors are reported.
+ * However, if no errors are reported, it means that no errors were
+ * encountered.
+ *
+ * Generated from protobuf field repeated .google.rpc.Status errors = 2;
+ * @param array<\Google\Rpc\Status>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setErrors($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Rpc\Status::class);
+ $this->errors = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ImportEntriesMetadata/ImportState.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ImportEntriesMetadata/ImportState.php
new file mode 100644
index 000000000000..00f1fae63c91
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ImportEntriesMetadata/ImportState.php
@@ -0,0 +1,78 @@
+google.cloud.datacatalog.v1.ImportEntriesMetadata.ImportState
+ */
+class ImportState
+{
+ /**
+ * Default value. This value is unused.
+ *
+ * Generated from protobuf enum IMPORT_STATE_UNSPECIFIED = 0;
+ */
+ const IMPORT_STATE_UNSPECIFIED = 0;
+ /**
+ * The dump with entries has been queued for import.
+ *
+ * Generated from protobuf enum IMPORT_QUEUED = 1;
+ */
+ const IMPORT_QUEUED = 1;
+ /**
+ * The import of entries is in progress.
+ *
+ * Generated from protobuf enum IMPORT_IN_PROGRESS = 2;
+ */
+ const IMPORT_IN_PROGRESS = 2;
+ /**
+ * The import of entries has been finished.
+ *
+ * Generated from protobuf enum IMPORT_DONE = 3;
+ */
+ const IMPORT_DONE = 3;
+ /**
+ * The import of entries has been abandoned in favor of a newer request.
+ *
+ * Generated from protobuf enum IMPORT_OBSOLETE = 4;
+ */
+ const IMPORT_OBSOLETE = 4;
+
+ private static $valueToName = [
+ self::IMPORT_STATE_UNSPECIFIED => 'IMPORT_STATE_UNSPECIFIED',
+ self::IMPORT_QUEUED => 'IMPORT_QUEUED',
+ self::IMPORT_IN_PROGRESS => 'IMPORT_IN_PROGRESS',
+ self::IMPORT_DONE => 'IMPORT_DONE',
+ self::IMPORT_OBSOLETE => 'IMPORT_OBSOLETE',
+ ];
+
+ 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(ImportState::class, \Google\Cloud\DataCatalog\V1\ImportEntriesMetadata_ImportState::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ImportEntriesRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ImportEntriesRequest.php
new file mode 100644
index 000000000000..fa7fc355ef12
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ImportEntriesRequest.php
@@ -0,0 +1,149 @@
+google.cloud.datacatalog.v1.ImportEntriesRequest
+ */
+class ImportEntriesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Target entry group for ingested entries.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. (Optional) Dataplex task job id, if specified will be used as
+ * part of ImportEntries LRO ID
+ *
+ * Generated from protobuf field string job_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $job_id = '';
+ protected $source;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Target entry group for ingested entries.
+ * @type string $gcs_bucket_path
+ * Path to a Cloud Storage bucket that contains a dump ready for ingestion.
+ * @type string $job_id
+ * Optional. (Optional) Dataplex task job id, if specified will be used as
+ * part of ImportEntries LRO ID
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Target entry group for ingested entries.
+ *
+ * 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. Target entry group for ingested entries.
+ *
+ * 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;
+ }
+
+ /**
+ * Path to a Cloud Storage bucket that contains a dump ready for ingestion.
+ *
+ * Generated from protobuf field string gcs_bucket_path = 2;
+ * @return string
+ */
+ public function getGcsBucketPath()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasGcsBucketPath()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Path to a Cloud Storage bucket that contains a dump ready for ingestion.
+ *
+ * Generated from protobuf field string gcs_bucket_path = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setGcsBucketPath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Optional. (Optional) Dataplex task job id, if specified will be used as
+ * part of ImportEntries LRO ID
+ *
+ * Generated from protobuf field string job_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getJobId()
+ {
+ return $this->job_id;
+ }
+
+ /**
+ * Optional. (Optional) Dataplex task job id, if specified will be used as
+ * part of ImportEntries LRO ID
+ *
+ * Generated from protobuf field string job_id = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setJobId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->job_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getSource()
+ {
+ return $this->whichOneof("source");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ImportEntriesResponse.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ImportEntriesResponse.php
new file mode 100644
index 000000000000..01f193e90eef
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ImportEntriesResponse.php
@@ -0,0 +1,127 @@
+google.cloud.datacatalog.v1.ImportEntriesResponse
+ */
+class ImportEntriesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Cumulative number of entries created and entries updated as a result of
+ * import operation.
+ *
+ * Generated from protobuf field optional int64 upserted_entries_count = 5;
+ */
+ protected $upserted_entries_count = null;
+ /**
+ * Number of entries deleted as a result of import operation.
+ *
+ * Generated from protobuf field optional int64 deleted_entries_count = 6;
+ */
+ protected $deleted_entries_count = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $upserted_entries_count
+ * Cumulative number of entries created and entries updated as a result of
+ * import operation.
+ * @type int|string $deleted_entries_count
+ * Number of entries deleted as a result of import operation.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Cumulative number of entries created and entries updated as a result of
+ * import operation.
+ *
+ * Generated from protobuf field optional int64 upserted_entries_count = 5;
+ * @return int|string
+ */
+ public function getUpsertedEntriesCount()
+ {
+ return isset($this->upserted_entries_count) ? $this->upserted_entries_count : 0;
+ }
+
+ public function hasUpsertedEntriesCount()
+ {
+ return isset($this->upserted_entries_count);
+ }
+
+ public function clearUpsertedEntriesCount()
+ {
+ unset($this->upserted_entries_count);
+ }
+
+ /**
+ * Cumulative number of entries created and entries updated as a result of
+ * import operation.
+ *
+ * Generated from protobuf field optional int64 upserted_entries_count = 5;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setUpsertedEntriesCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->upserted_entries_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Number of entries deleted as a result of import operation.
+ *
+ * Generated from protobuf field optional int64 deleted_entries_count = 6;
+ * @return int|string
+ */
+ public function getDeletedEntriesCount()
+ {
+ return isset($this->deleted_entries_count) ? $this->deleted_entries_count : 0;
+ }
+
+ public function hasDeletedEntriesCount()
+ {
+ return isset($this->deleted_entries_count);
+ }
+
+ public function clearDeletedEntriesCount()
+ {
+ unset($this->deleted_entries_count);
+ }
+
+ /**
+ * Number of entries deleted as a result of import operation.
+ *
+ * Generated from protobuf field optional int64 deleted_entries_count = 6;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setDeletedEntriesCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->deleted_entries_count = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ImportTaxonomiesRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ImportTaxonomiesRequest.php
new file mode 100644
index 000000000000..f725b621eb8c
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ImportTaxonomiesRequest.php
@@ -0,0 +1,147 @@
+google.cloud.datacatalog.v1.ImportTaxonomiesRequest
+ */
+class ImportTaxonomiesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name of project that the imported taxonomies will belong
+ * to.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ protected $source;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Resource name of project that the imported taxonomies will belong
+ * to.
+ * @type \Google\Cloud\DataCatalog\V1\InlineSource $inline_source
+ * Inline source taxonomy to import.
+ * @type \Google\Cloud\DataCatalog\V1\CrossRegionalSource $cross_regional_source
+ * Cross-regional source taxonomy to import.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Policytagmanagerserialization::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name of project that the imported taxonomies will belong
+ * to.
+ *
+ * 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. Resource name of project that the imported taxonomies will belong
+ * to.
+ *
+ * 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;
+ }
+
+ /**
+ * Inline source taxonomy to import.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.InlineSource inline_source = 2;
+ * @return \Google\Cloud\DataCatalog\V1\InlineSource|null
+ */
+ public function getInlineSource()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasInlineSource()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Inline source taxonomy to import.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.InlineSource inline_source = 2;
+ * @param \Google\Cloud\DataCatalog\V1\InlineSource $var
+ * @return $this
+ */
+ public function setInlineSource($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\InlineSource::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Cross-regional source taxonomy to import.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.CrossRegionalSource cross_regional_source = 3;
+ * @return \Google\Cloud\DataCatalog\V1\CrossRegionalSource|null
+ */
+ public function getCrossRegionalSource()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasCrossRegionalSource()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * Cross-regional source taxonomy to import.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.CrossRegionalSource cross_regional_source = 3;
+ * @param \Google\Cloud\DataCatalog\V1\CrossRegionalSource $var
+ * @return $this
+ */
+ public function setCrossRegionalSource($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\CrossRegionalSource::class);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getSource()
+ {
+ return $this->whichOneof("source");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ImportTaxonomiesResponse.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ImportTaxonomiesResponse.php
new file mode 100644
index 000000000000..7035fcae827c
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ImportTaxonomiesResponse.php
@@ -0,0 +1,68 @@
+google.cloud.datacatalog.v1.ImportTaxonomiesResponse
+ */
+class ImportTaxonomiesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Imported taxonomies.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Taxonomy taxonomies = 1;
+ */
+ private $taxonomies;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\DataCatalog\V1\Taxonomy>|\Google\Protobuf\Internal\RepeatedField $taxonomies
+ * Imported taxonomies.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Policytagmanagerserialization::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Imported taxonomies.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Taxonomy taxonomies = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTaxonomies()
+ {
+ return $this->taxonomies;
+ }
+
+ /**
+ * Imported taxonomies.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Taxonomy taxonomies = 1;
+ * @param array<\Google\Cloud\DataCatalog\V1\Taxonomy>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTaxonomies($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\DataCatalog\V1\Taxonomy::class);
+ $this->taxonomies = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/InlineSource.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/InlineSource.php
new file mode 100644
index 000000000000..10b938fcf9fd
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/InlineSource.php
@@ -0,0 +1,67 @@
+google.cloud.datacatalog.v1.InlineSource
+ */
+class InlineSource extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Taxonomies to import.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.SerializedTaxonomy taxonomies = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $taxonomies;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\DataCatalog\V1\SerializedTaxonomy>|\Google\Protobuf\Internal\RepeatedField $taxonomies
+ * Required. Taxonomies to import.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Policytagmanagerserialization::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Taxonomies to import.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.SerializedTaxonomy taxonomies = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTaxonomies()
+ {
+ return $this->taxonomies;
+ }
+
+ /**
+ * Required. Taxonomies to import.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.SerializedTaxonomy taxonomies = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param array<\Google\Cloud\DataCatalog\V1\SerializedTaxonomy>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTaxonomies($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\DataCatalog\V1\SerializedTaxonomy::class);
+ $this->taxonomies = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/IntegratedSystem.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/IntegratedSystem.php
new file mode 100644
index 000000000000..09bfbe1624d7
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/IntegratedSystem.php
@@ -0,0 +1,110 @@
+google.cloud.datacatalog.v1.IntegratedSystem
+ */
+class IntegratedSystem
+{
+ /**
+ * Default unknown system.
+ *
+ * Generated from protobuf enum INTEGRATED_SYSTEM_UNSPECIFIED = 0;
+ */
+ const INTEGRATED_SYSTEM_UNSPECIFIED = 0;
+ /**
+ * BigQuery.
+ *
+ * Generated from protobuf enum BIGQUERY = 1;
+ */
+ const BIGQUERY = 1;
+ /**
+ * Cloud Pub/Sub.
+ *
+ * Generated from protobuf enum CLOUD_PUBSUB = 2;
+ */
+ const CLOUD_PUBSUB = 2;
+ /**
+ * Dataproc Metastore.
+ *
+ * Generated from protobuf enum DATAPROC_METASTORE = 3;
+ */
+ const DATAPROC_METASTORE = 3;
+ /**
+ * Dataplex.
+ *
+ * Generated from protobuf enum DATAPLEX = 4;
+ */
+ const DATAPLEX = 4;
+ /**
+ * Cloud Spanner
+ *
+ * Generated from protobuf enum CLOUD_SPANNER = 6;
+ */
+ const CLOUD_SPANNER = 6;
+ /**
+ * Cloud Bigtable
+ *
+ * Generated from protobuf enum CLOUD_BIGTABLE = 7;
+ */
+ const CLOUD_BIGTABLE = 7;
+ /**
+ * Cloud Sql
+ *
+ * Generated from protobuf enum CLOUD_SQL = 8;
+ */
+ const CLOUD_SQL = 8;
+ /**
+ * Looker
+ *
+ * Generated from protobuf enum LOOKER = 9;
+ */
+ const LOOKER = 9;
+ /**
+ * Vertex AI
+ *
+ * Generated from protobuf enum VERTEX_AI = 10;
+ */
+ const VERTEX_AI = 10;
+
+ private static $valueToName = [
+ self::INTEGRATED_SYSTEM_UNSPECIFIED => 'INTEGRATED_SYSTEM_UNSPECIFIED',
+ self::BIGQUERY => 'BIGQUERY',
+ self::CLOUD_PUBSUB => 'CLOUD_PUBSUB',
+ self::DATAPROC_METASTORE => 'DATAPROC_METASTORE',
+ self::DATAPLEX => 'DATAPLEX',
+ self::CLOUD_SPANNER => 'CLOUD_SPANNER',
+ self::CLOUD_BIGTABLE => 'CLOUD_BIGTABLE',
+ self::CLOUD_SQL => 'CLOUD_SQL',
+ self::LOOKER => 'LOOKER',
+ self::VERTEX_AI => 'VERTEX_AI',
+ ];
+
+ 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/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListEntriesRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListEntriesRequest.php
new file mode 100644
index 000000000000..40e55423d130
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListEntriesRequest.php
@@ -0,0 +1,220 @@
+google.cloud.datacatalog.v1.ListEntriesRequest
+ */
+class ListEntriesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the entry group that contains the entries to list.
+ * Can be provided in URL format.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * The maximum number of items to return. Default is 10. Maximum limit is
+ * 1000. Throws an invalid argument if `page_size` is more than 1000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * Pagination token that specifies the next page to return. If empty, the
+ * first page is returned.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+ /**
+ * The fields to return for each entry. If empty or omitted, all
+ * fields are returned.
+ * For example, to return a list of entries with only the `name` field,
+ * set `read_mask` to only one path with the `name` value.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask read_mask = 4;
+ */
+ protected $read_mask = null;
+
+ /**
+ * @param string $parent Required. The name of the entry group that contains the entries to list.
+ *
+ * Can be provided in URL format. Please see
+ * {@see DataCatalogClient::entryGroupName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\ListEntriesRequest
+ *
+ * @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 name of the entry group that contains the entries to list.
+ * Can be provided in URL format.
+ * @type int $page_size
+ * The maximum number of items to return. Default is 10. Maximum limit is
+ * 1000. Throws an invalid argument if `page_size` is more than 1000.
+ * @type string $page_token
+ * Pagination token that specifies the next page to return. If empty, the
+ * first page is returned.
+ * @type \Google\Protobuf\FieldMask $read_mask
+ * The fields to return for each entry. If empty or omitted, all
+ * fields are returned.
+ * For example, to return a list of entries with only the `name` field,
+ * set `read_mask` to only one path with the `name` value.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the entry group that contains the entries to list.
+ * Can be provided in URL format.
+ *
+ * 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 entry group that contains the entries to list.
+ * Can be provided in URL format.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * The maximum number of items to return. Default is 10. Maximum limit is
+ * 1000. Throws an invalid argument if `page_size` is more than 1000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The maximum number of items to return. Default is 10. Maximum limit is
+ * 1000. Throws an invalid argument if `page_size` is more than 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;
+ }
+
+ /**
+ * Pagination token that specifies the next page to return. If empty, the
+ * first page is returned.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Pagination token that specifies the next page to return. If empty, the
+ * first page is returned.
+ *
+ * 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;
+ }
+
+ /**
+ * The fields to return for each entry. If empty or omitted, all
+ * fields are returned.
+ * For example, to return a list of entries with only the `name` field,
+ * set `read_mask` to only one path with the `name` value.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask read_mask = 4;
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getReadMask()
+ {
+ return $this->read_mask;
+ }
+
+ public function hasReadMask()
+ {
+ return isset($this->read_mask);
+ }
+
+ public function clearReadMask()
+ {
+ unset($this->read_mask);
+ }
+
+ /**
+ * The fields to return for each entry. If empty or omitted, all
+ * fields are returned.
+ * For example, to return a list of entries with only the `name` field,
+ * set `read_mask` to only one path with the `name` value.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask read_mask = 4;
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setReadMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->read_mask = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListEntriesResponse.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListEntriesResponse.php
new file mode 100644
index 000000000000..095ade948b0a
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListEntriesResponse.php
@@ -0,0 +1,106 @@
+google.cloud.datacatalog.v1.ListEntriesResponse
+ */
+class ListEntriesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Entry details.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Entry entries = 1;
+ */
+ private $entries;
+ /**
+ * Pagination token of the next results page. Empty if there are no more items
+ * in results.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\DataCatalog\V1\Entry>|\Google\Protobuf\Internal\RepeatedField $entries
+ * Entry details.
+ * @type string $next_page_token
+ * Pagination token of the next results page. Empty if there are no more items
+ * in results.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Entry details.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Entry entries = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getEntries()
+ {
+ return $this->entries;
+ }
+
+ /**
+ * Entry details.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Entry entries = 1;
+ * @param array<\Google\Cloud\DataCatalog\V1\Entry>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setEntries($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\DataCatalog\V1\Entry::class);
+ $this->entries = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Pagination token of the next results page. Empty if there are no more items
+ * in results.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * Pagination token of the next results page. Empty if there are no more items
+ * in results.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListEntryGroupsRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListEntryGroupsRequest.php
new file mode 100644
index 000000000000..5aeb672daa93
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListEntryGroupsRequest.php
@@ -0,0 +1,168 @@
+google.cloud.datacatalog.v1.ListEntryGroupsRequest
+ */
+class ListEntryGroupsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the location that contains the entry groups to list.
+ * Can be provided as a URL.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. The maximum number of items to return.
+ * Default is 10. Maximum limit is 1000.
+ * Throws an invalid argument if `page_size` is greater than 1000.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. Pagination token that specifies the next page to return.
+ * If empty, returns the first page.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_token = '';
+
+ /**
+ * @param string $parent Required. The name of the location that contains the entry groups to list.
+ *
+ * Can be provided as a URL. Please see
+ * {@see DataCatalogClient::locationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\ListEntryGroupsRequest
+ *
+ * @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 name of the location that contains the entry groups to list.
+ * Can be provided as a URL.
+ * @type int $page_size
+ * Optional. The maximum number of items to return.
+ * Default is 10. Maximum limit is 1000.
+ * Throws an invalid argument if `page_size` is greater than 1000.
+ * @type string $page_token
+ * Optional. Pagination token that specifies the next page to return.
+ * If empty, returns the first page.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the location that contains the entry groups to list.
+ * Can be provided as a URL.
+ *
+ * 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 location that contains the entry groups to list.
+ * Can be provided as a URL.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The maximum number of items to return.
+ * Default is 10. Maximum limit is 1000.
+ * Throws an invalid argument if `page_size` is greater than 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 items to return.
+ * Default is 10. Maximum limit is 1000.
+ * Throws an invalid argument if `page_size` is greater than 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. Pagination token that specifies the next page to return.
+ * If empty, returns the first page.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Optional. Pagination token that specifies the next page to return.
+ * If empty, returns the first page.
+ *
+ * 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/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListEntryGroupsResponse.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListEntryGroupsResponse.php
new file mode 100644
index 000000000000..01ce90d13e57
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListEntryGroupsResponse.php
@@ -0,0 +1,106 @@
+google.cloud.datacatalog.v1.ListEntryGroupsResponse
+ */
+class ListEntryGroupsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Entry group details.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.EntryGroup entry_groups = 1;
+ */
+ private $entry_groups;
+ /**
+ * Pagination token to specify in the next call to retrieve the next page of
+ * results. Empty if there are no more items.
+ *
+ * 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\DataCatalog\V1\EntryGroup>|\Google\Protobuf\Internal\RepeatedField $entry_groups
+ * Entry group details.
+ * @type string $next_page_token
+ * Pagination token to specify in the next call to retrieve the next page of
+ * results. Empty if there are no more items.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Entry group details.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.EntryGroup entry_groups = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getEntryGroups()
+ {
+ return $this->entry_groups;
+ }
+
+ /**
+ * Entry group details.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.EntryGroup entry_groups = 1;
+ * @param array<\Google\Cloud\DataCatalog\V1\EntryGroup>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setEntryGroups($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\DataCatalog\V1\EntryGroup::class);
+ $this->entry_groups = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Pagination token to specify in the next call to retrieve the next page of
+ * results. Empty if there are no more items.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * Pagination token to specify in the next call to retrieve the next page of
+ * results. Empty if there are no more items.
+ *
+ * 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/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListPolicyTagsRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListPolicyTagsRequest.php
new file mode 100644
index 000000000000..0f1f7cbcfd82
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListPolicyTagsRequest.php
@@ -0,0 +1,166 @@
+google.cloud.datacatalog.v1.ListPolicyTagsRequest
+ */
+class ListPolicyTagsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name of the taxonomy to list the policy tags of.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * The maximum number of items to return. Must be a value between 1 and 1000
+ * inclusively.
+ * If not set, defaults to 50.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * The pagination token of the next results page. If not set, returns the
+ * first page.
+ * The token is returned in the response to a previous list request.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+
+ /**
+ * @param string $parent Required. Resource name of the taxonomy to list the policy tags of. Please see
+ * {@see PolicyTagManagerClient::taxonomyName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\ListPolicyTagsRequest
+ *
+ * @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. Resource name of the taxonomy to list the policy tags of.
+ * @type int $page_size
+ * The maximum number of items to return. Must be a value between 1 and 1000
+ * inclusively.
+ * If not set, defaults to 50.
+ * @type string $page_token
+ * The pagination token of the next results page. If not set, returns the
+ * first page.
+ * The token is returned in the response to a previous list request.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Policytagmanager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name of the taxonomy to list the policy tags of.
+ *
+ * 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. Resource name of the taxonomy to list the policy tags of.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * The maximum number of items to return. Must be a value between 1 and 1000
+ * inclusively.
+ * If not set, defaults to 50.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The maximum number of items to return. Must be a value between 1 and 1000
+ * inclusively.
+ * If not set, defaults to 50.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * The pagination token of the next results page. If not set, returns the
+ * first page.
+ * The token is returned in the response to a previous list request.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * The pagination token of the next results page. If not set, returns the
+ * first page.
+ * The token is returned in the response to a previous list request.
+ *
+ * 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;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListPolicyTagsResponse.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListPolicyTagsResponse.php
new file mode 100644
index 000000000000..71ccac60ef68
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListPolicyTagsResponse.php
@@ -0,0 +1,106 @@
+google.cloud.datacatalog.v1.ListPolicyTagsResponse
+ */
+class ListPolicyTagsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The policy tags that belong to the taxonomy.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.PolicyTag policy_tags = 1;
+ */
+ private $policy_tags;
+ /**
+ * Pagination token of the next results page. Empty if there are no
+ * more results in the list.
+ *
+ * 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\DataCatalog\V1\PolicyTag>|\Google\Protobuf\Internal\RepeatedField $policy_tags
+ * The policy tags that belong to the taxonomy.
+ * @type string $next_page_token
+ * Pagination token of the next results page. Empty if there are no
+ * more results in the list.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Policytagmanager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The policy tags that belong to the taxonomy.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.PolicyTag policy_tags = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getPolicyTags()
+ {
+ return $this->policy_tags;
+ }
+
+ /**
+ * The policy tags that belong to the taxonomy.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.PolicyTag policy_tags = 1;
+ * @param array<\Google\Cloud\DataCatalog\V1\PolicyTag>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setPolicyTags($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\DataCatalog\V1\PolicyTag::class);
+ $this->policy_tags = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Pagination token of the next results page. Empty if there are no
+ * more results in the list.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * Pagination token of the next results page. Empty if there are no
+ * more results in the list.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListTagsRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListTagsRequest.php
new file mode 100644
index 000000000000..764a3df3a9a6
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListTagsRequest.php
@@ -0,0 +1,170 @@
+google.cloud.datacatalog.v1.ListTagsRequest
+ */
+class ListTagsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the Data Catalog resource to list the tags of.
+ * The resource can be an [Entry][google.cloud.datacatalog.v1.Entry]
+ * or an [EntryGroup][google.cloud.datacatalog.v1.EntryGroup]
+ * (without `/entries/{entries}` at the end).
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * The maximum number of tags to return. Default is 10. Maximum limit is 1000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * Pagination token that specifies the next page to return. If empty, the
+ * first page is returned.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+
+ /**
+ * @param string $parent Required. The name of the Data Catalog resource to list the tags of.
+ *
+ * The resource can be an [Entry][google.cloud.datacatalog.v1.Entry]
+ * or an [EntryGroup][google.cloud.datacatalog.v1.EntryGroup]
+ * (without `/entries/{entries}` at the end). Please see
+ * {@see DataCatalogClient::entryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\ListTagsRequest
+ *
+ * @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 name of the Data Catalog resource to list the tags of.
+ * The resource can be an [Entry][google.cloud.datacatalog.v1.Entry]
+ * or an [EntryGroup][google.cloud.datacatalog.v1.EntryGroup]
+ * (without `/entries/{entries}` at the end).
+ * @type int $page_size
+ * The maximum number of tags to return. Default is 10. Maximum limit is 1000.
+ * @type string $page_token
+ * Pagination token that specifies the next page to return. If empty, the
+ * first page is returned.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the Data Catalog resource to list the tags of.
+ * The resource can be an [Entry][google.cloud.datacatalog.v1.Entry]
+ * or an [EntryGroup][google.cloud.datacatalog.v1.EntryGroup]
+ * (without `/entries/{entries}` at the end).
+ *
+ * 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 Data Catalog resource to list the tags of.
+ * The resource can be an [Entry][google.cloud.datacatalog.v1.Entry]
+ * or an [EntryGroup][google.cloud.datacatalog.v1.EntryGroup]
+ * (without `/entries/{entries}` at the end).
+ *
+ * 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 tags to return. Default is 10. Maximum limit is 1000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The maximum number of tags to return. Default is 10. Maximum limit is 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;
+ }
+
+ /**
+ * Pagination token that specifies the next page to return. If empty, the
+ * first page is returned.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Pagination token that specifies the next page to return. If empty, the
+ * first page is returned.
+ *
+ * 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;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListTagsResponse.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListTagsResponse.php
new file mode 100644
index 000000000000..5e61e71914c4
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListTagsResponse.php
@@ -0,0 +1,106 @@
+google.cloud.datacatalog.v1.ListTagsResponse
+ */
+class ListTagsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * [Tag][google.cloud.datacatalog.v1.Tag] details.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Tag tags = 1;
+ */
+ private $tags;
+ /**
+ * Pagination token of the next results page. Empty if there are
+ * no more items in results.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\DataCatalog\V1\Tag>|\Google\Protobuf\Internal\RepeatedField $tags
+ * [Tag][google.cloud.datacatalog.v1.Tag] details.
+ * @type string $next_page_token
+ * Pagination token of the next results page. Empty if there are
+ * no more items in results.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * [Tag][google.cloud.datacatalog.v1.Tag] details.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Tag tags = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTags()
+ {
+ return $this->tags;
+ }
+
+ /**
+ * [Tag][google.cloud.datacatalog.v1.Tag] details.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Tag tags = 1;
+ * @param array<\Google\Cloud\DataCatalog\V1\Tag>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTags($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\DataCatalog\V1\Tag::class);
+ $this->tags = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Pagination token of the next results page. Empty if there are
+ * no more items in results.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * Pagination token of the next results page. Empty if there are
+ * no more items in results.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListTaxonomiesRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListTaxonomiesRequest.php
new file mode 100644
index 000000000000..bc7f181f1a7b
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListTaxonomiesRequest.php
@@ -0,0 +1,200 @@
+google.cloud.datacatalog.v1.ListTaxonomiesRequest
+ */
+class ListTaxonomiesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name of the project to list the taxonomies of.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * The maximum number of items to return. Must be a value between 1 and 1000
+ * inclusively. If not set, defaults to 50.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * The pagination token of the next results page. If not set,
+ * the first page is returned.
+ * The token is returned in the response to a previous list request.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+ /**
+ * Supported field for filter is 'service' and value is 'dataplex'.
+ * Eg: service=dataplex.
+ *
+ * Generated from protobuf field string filter = 4;
+ */
+ protected $filter = '';
+
+ /**
+ * @param string $parent Required. Resource name of the project to list the taxonomies of. Please see
+ * {@see PolicyTagManagerClient::locationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\ListTaxonomiesRequest
+ *
+ * @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. Resource name of the project to list the taxonomies of.
+ * @type int $page_size
+ * The maximum number of items to return. Must be a value between 1 and 1000
+ * inclusively. If not set, defaults to 50.
+ * @type string $page_token
+ * The pagination token of the next results page. If not set,
+ * the first page is returned.
+ * The token is returned in the response to a previous list request.
+ * @type string $filter
+ * Supported field for filter is 'service' and value is 'dataplex'.
+ * Eg: service=dataplex.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Policytagmanager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name of the project to list the taxonomies of.
+ *
+ * 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. Resource name of the project to list the taxonomies of.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * The maximum number of items to return. Must be a value between 1 and 1000
+ * inclusively. If not set, defaults to 50.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The maximum number of items to return. Must be a value between 1 and 1000
+ * inclusively. If not set, defaults to 50.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * The pagination token of the next results page. If not set,
+ * the first page is returned.
+ * The token is returned in the response to a previous list request.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * The pagination token of the next results page. If not set,
+ * the first page is returned.
+ * The token is returned in the response to a previous list request.
+ *
+ * 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;
+ }
+
+ /**
+ * Supported field for filter is 'service' and value is 'dataplex'.
+ * Eg: service=dataplex.
+ *
+ * Generated from protobuf field string filter = 4;
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Supported field for filter is 'service' and value is 'dataplex'.
+ * Eg: service=dataplex.
+ *
+ * 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;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListTaxonomiesResponse.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListTaxonomiesResponse.php
new file mode 100644
index 000000000000..43049d7f29b0
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ListTaxonomiesResponse.php
@@ -0,0 +1,106 @@
+google.cloud.datacatalog.v1.ListTaxonomiesResponse
+ */
+class ListTaxonomiesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Taxonomies that the project contains.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Taxonomy taxonomies = 1;
+ */
+ private $taxonomies;
+ /**
+ * Pagination token of the next results page. Empty if there are no
+ * more results in the list.
+ *
+ * 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\DataCatalog\V1\Taxonomy>|\Google\Protobuf\Internal\RepeatedField $taxonomies
+ * Taxonomies that the project contains.
+ * @type string $next_page_token
+ * Pagination token of the next results page. Empty if there are no
+ * more results in the list.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Policytagmanager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Taxonomies that the project contains.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Taxonomy taxonomies = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTaxonomies()
+ {
+ return $this->taxonomies;
+ }
+
+ /**
+ * Taxonomies that the project contains.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Taxonomy taxonomies = 1;
+ * @param array<\Google\Cloud\DataCatalog\V1\Taxonomy>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTaxonomies($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\DataCatalog\V1\Taxonomy::class);
+ $this->taxonomies = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Pagination token of the next results page. Empty if there are no
+ * more results in the list.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * Pagination token of the next results page. Empty if there are no
+ * more results in the list.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/LookerSystemSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/LookerSystemSpec.php
new file mode 100644
index 000000000000..924a3e643eae
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/LookerSystemSpec.php
@@ -0,0 +1,243 @@
+google.cloud.datacatalog.v1.LookerSystemSpec
+ */
+class LookerSystemSpec extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * ID of the parent Looker Instance. Empty if it does not exist.
+ * Example value: `someinstance.looker.com`
+ *
+ * Generated from protobuf field string parent_instance_id = 1;
+ */
+ protected $parent_instance_id = '';
+ /**
+ * Name of the parent Looker Instance. Empty if it does not exist.
+ *
+ * Generated from protobuf field string parent_instance_display_name = 2;
+ */
+ protected $parent_instance_display_name = '';
+ /**
+ * ID of the parent Model. Empty if it does not exist.
+ *
+ * Generated from protobuf field string parent_model_id = 3;
+ */
+ protected $parent_model_id = '';
+ /**
+ * Name of the parent Model. Empty if it does not exist.
+ *
+ * Generated from protobuf field string parent_model_display_name = 4;
+ */
+ protected $parent_model_display_name = '';
+ /**
+ * ID of the parent View. Empty if it does not exist.
+ *
+ * Generated from protobuf field string parent_view_id = 5;
+ */
+ protected $parent_view_id = '';
+ /**
+ * Name of the parent View. Empty if it does not exist.
+ *
+ * Generated from protobuf field string parent_view_display_name = 6;
+ */
+ protected $parent_view_display_name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent_instance_id
+ * ID of the parent Looker Instance. Empty if it does not exist.
+ * Example value: `someinstance.looker.com`
+ * @type string $parent_instance_display_name
+ * Name of the parent Looker Instance. Empty if it does not exist.
+ * @type string $parent_model_id
+ * ID of the parent Model. Empty if it does not exist.
+ * @type string $parent_model_display_name
+ * Name of the parent Model. Empty if it does not exist.
+ * @type string $parent_view_id
+ * ID of the parent View. Empty if it does not exist.
+ * @type string $parent_view_display_name
+ * Name of the parent View. Empty if it does not exist.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * ID of the parent Looker Instance. Empty if it does not exist.
+ * Example value: `someinstance.looker.com`
+ *
+ * Generated from protobuf field string parent_instance_id = 1;
+ * @return string
+ */
+ public function getParentInstanceId()
+ {
+ return $this->parent_instance_id;
+ }
+
+ /**
+ * ID of the parent Looker Instance. Empty if it does not exist.
+ * Example value: `someinstance.looker.com`
+ *
+ * Generated from protobuf field string parent_instance_id = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setParentInstanceId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent_instance_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Name of the parent Looker Instance. Empty if it does not exist.
+ *
+ * Generated from protobuf field string parent_instance_display_name = 2;
+ * @return string
+ */
+ public function getParentInstanceDisplayName()
+ {
+ return $this->parent_instance_display_name;
+ }
+
+ /**
+ * Name of the parent Looker Instance. Empty if it does not exist.
+ *
+ * Generated from protobuf field string parent_instance_display_name = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setParentInstanceDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent_instance_display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * ID of the parent Model. Empty if it does not exist.
+ *
+ * Generated from protobuf field string parent_model_id = 3;
+ * @return string
+ */
+ public function getParentModelId()
+ {
+ return $this->parent_model_id;
+ }
+
+ /**
+ * ID of the parent Model. Empty if it does not exist.
+ *
+ * Generated from protobuf field string parent_model_id = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setParentModelId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent_model_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Name of the parent Model. Empty if it does not exist.
+ *
+ * Generated from protobuf field string parent_model_display_name = 4;
+ * @return string
+ */
+ public function getParentModelDisplayName()
+ {
+ return $this->parent_model_display_name;
+ }
+
+ /**
+ * Name of the parent Model. Empty if it does not exist.
+ *
+ * Generated from protobuf field string parent_model_display_name = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setParentModelDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent_model_display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * ID of the parent View. Empty if it does not exist.
+ *
+ * Generated from protobuf field string parent_view_id = 5;
+ * @return string
+ */
+ public function getParentViewId()
+ {
+ return $this->parent_view_id;
+ }
+
+ /**
+ * ID of the parent View. Empty if it does not exist.
+ *
+ * Generated from protobuf field string parent_view_id = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setParentViewId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent_view_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Name of the parent View. Empty if it does not exist.
+ *
+ * Generated from protobuf field string parent_view_display_name = 6;
+ * @return string
+ */
+ public function getParentViewDisplayName()
+ {
+ return $this->parent_view_display_name;
+ }
+
+ /**
+ * Name of the parent View. Empty if it does not exist.
+ *
+ * Generated from protobuf field string parent_view_display_name = 6;
+ * @param string $var
+ * @return $this
+ */
+ public function setParentViewDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent_view_display_name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/LookupEntryRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/LookupEntryRequest.php
new file mode 100644
index 000000000000..45caf368d1f6
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/LookupEntryRequest.php
@@ -0,0 +1,295 @@
+google.cloud.datacatalog.v1.LookupEntryRequest
+ */
+class LookupEntryRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Project where the lookup should be performed. Required to lookup
+ * entry that is not a part of `DPMS` or `DATAPLEX` `integrated_system`
+ * using its `fully_qualified_name`. Ignored in other cases.
+ *
+ * Generated from protobuf field string project = 6;
+ */
+ protected $project = '';
+ /**
+ * Location where the lookup should be performed. Required to lookup
+ * entry that is not a part of `DPMS` or `DATAPLEX` `integrated_system`
+ * using its `fully_qualified_name`. Ignored in other cases.
+ *
+ * Generated from protobuf field string location = 7;
+ */
+ protected $location = '';
+ protected $target_name;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $linked_resource
+ * The full name of the Google Cloud Platform resource the Data Catalog
+ * entry represents. For more information, see [Full Resource Name]
+ * (https://cloud.google.com/apis/design/resource_names#full_resource_name).
+ * Full names are case-sensitive. For example:
+ * * `//bigquery.googleapis.com/projects/{PROJECT_ID}/datasets/{DATASET_ID}/tables/{TABLE_ID}`
+ * * `//pubsub.googleapis.com/projects/{PROJECT_ID}/topics/{TOPIC_ID}`
+ * @type string $sql_resource
+ * The SQL name of the entry. SQL names are case-sensitive.
+ * Examples:
+ * * `pubsub.topic.{PROJECT_ID}.{TOPIC_ID}`
+ * * `pubsub.topic.{PROJECT_ID}.`\``{TOPIC.ID.SEPARATED.WITH.DOTS}`\`
+ * * `bigquery.table.{PROJECT_ID}.{DATASET_ID}.{TABLE_ID}`
+ * * `bigquery.dataset.{PROJECT_ID}.{DATASET_ID}`
+ * * `datacatalog.entry.{PROJECT_ID}.{LOCATION_ID}.{ENTRY_GROUP_ID}.{ENTRY_ID}`
+ * Identifiers (`*_ID`) should comply with the
+ * [Lexical structure in Standard SQL]
+ * (https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical).
+ * @type string $fully_qualified_name
+ * [Fully Qualified Name
+ * (FQN)](https://cloud.google.com//data-catalog/docs/fully-qualified-names)
+ * of the resource.
+ * FQNs take two forms:
+ * * For non-regionalized resources:
+ * `{SYSTEM}:{PROJECT}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}`
+ * * For regionalized resources:
+ * `{SYSTEM}:{PROJECT}.{LOCATION_ID}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}`
+ * Example for a DPMS table:
+ * `dataproc_metastore:{PROJECT_ID}.{LOCATION_ID}.{INSTANCE_ID}.{DATABASE_ID}.{TABLE_ID}`
+ * @type string $project
+ * Project where the lookup should be performed. Required to lookup
+ * entry that is not a part of `DPMS` or `DATAPLEX` `integrated_system`
+ * using its `fully_qualified_name`. Ignored in other cases.
+ * @type string $location
+ * Location where the lookup should be performed. Required to lookup
+ * entry that is not a part of `DPMS` or `DATAPLEX` `integrated_system`
+ * using its `fully_qualified_name`. Ignored in other cases.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The full name of the Google Cloud Platform resource the Data Catalog
+ * entry represents. For more information, see [Full Resource Name]
+ * (https://cloud.google.com/apis/design/resource_names#full_resource_name).
+ * Full names are case-sensitive. For example:
+ * * `//bigquery.googleapis.com/projects/{PROJECT_ID}/datasets/{DATASET_ID}/tables/{TABLE_ID}`
+ * * `//pubsub.googleapis.com/projects/{PROJECT_ID}/topics/{TOPIC_ID}`
+ *
+ * Generated from protobuf field string linked_resource = 1;
+ * @return string
+ */
+ public function getLinkedResource()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasLinkedResource()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * The full name of the Google Cloud Platform resource the Data Catalog
+ * entry represents. For more information, see [Full Resource Name]
+ * (https://cloud.google.com/apis/design/resource_names#full_resource_name).
+ * Full names are case-sensitive. For example:
+ * * `//bigquery.googleapis.com/projects/{PROJECT_ID}/datasets/{DATASET_ID}/tables/{TABLE_ID}`
+ * * `//pubsub.googleapis.com/projects/{PROJECT_ID}/topics/{TOPIC_ID}`
+ *
+ * Generated from protobuf field string linked_resource = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setLinkedResource($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * The SQL name of the entry. SQL names are case-sensitive.
+ * Examples:
+ * * `pubsub.topic.{PROJECT_ID}.{TOPIC_ID}`
+ * * `pubsub.topic.{PROJECT_ID}.`\``{TOPIC.ID.SEPARATED.WITH.DOTS}`\`
+ * * `bigquery.table.{PROJECT_ID}.{DATASET_ID}.{TABLE_ID}`
+ * * `bigquery.dataset.{PROJECT_ID}.{DATASET_ID}`
+ * * `datacatalog.entry.{PROJECT_ID}.{LOCATION_ID}.{ENTRY_GROUP_ID}.{ENTRY_ID}`
+ * Identifiers (`*_ID`) should comply with the
+ * [Lexical structure in Standard SQL]
+ * (https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical).
+ *
+ * Generated from protobuf field string sql_resource = 3;
+ * @return string
+ */
+ public function getSqlResource()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasSqlResource()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * The SQL name of the entry. SQL names are case-sensitive.
+ * Examples:
+ * * `pubsub.topic.{PROJECT_ID}.{TOPIC_ID}`
+ * * `pubsub.topic.{PROJECT_ID}.`\``{TOPIC.ID.SEPARATED.WITH.DOTS}`\`
+ * * `bigquery.table.{PROJECT_ID}.{DATASET_ID}.{TABLE_ID}`
+ * * `bigquery.dataset.{PROJECT_ID}.{DATASET_ID}`
+ * * `datacatalog.entry.{PROJECT_ID}.{LOCATION_ID}.{ENTRY_GROUP_ID}.{ENTRY_ID}`
+ * Identifiers (`*_ID`) should comply with the
+ * [Lexical structure in Standard SQL]
+ * (https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical).
+ *
+ * Generated from protobuf field string sql_resource = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setSqlResource($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * [Fully Qualified Name
+ * (FQN)](https://cloud.google.com//data-catalog/docs/fully-qualified-names)
+ * of the resource.
+ * FQNs take two forms:
+ * * For non-regionalized resources:
+ * `{SYSTEM}:{PROJECT}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}`
+ * * For regionalized resources:
+ * `{SYSTEM}:{PROJECT}.{LOCATION_ID}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}`
+ * Example for a DPMS table:
+ * `dataproc_metastore:{PROJECT_ID}.{LOCATION_ID}.{INSTANCE_ID}.{DATABASE_ID}.{TABLE_ID}`
+ *
+ * Generated from protobuf field string fully_qualified_name = 5;
+ * @return string
+ */
+ public function getFullyQualifiedName()
+ {
+ return $this->readOneof(5);
+ }
+
+ public function hasFullyQualifiedName()
+ {
+ return $this->hasOneof(5);
+ }
+
+ /**
+ * [Fully Qualified Name
+ * (FQN)](https://cloud.google.com//data-catalog/docs/fully-qualified-names)
+ * of the resource.
+ * FQNs take two forms:
+ * * For non-regionalized resources:
+ * `{SYSTEM}:{PROJECT}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}`
+ * * For regionalized resources:
+ * `{SYSTEM}:{PROJECT}.{LOCATION_ID}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}`
+ * Example for a DPMS table:
+ * `dataproc_metastore:{PROJECT_ID}.{LOCATION_ID}.{INSTANCE_ID}.{DATABASE_ID}.{TABLE_ID}`
+ *
+ * Generated from protobuf field string fully_qualified_name = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setFullyQualifiedName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(5, $var);
+
+ return $this;
+ }
+
+ /**
+ * Project where the lookup should be performed. Required to lookup
+ * entry that is not a part of `DPMS` or `DATAPLEX` `integrated_system`
+ * using its `fully_qualified_name`. Ignored in other cases.
+ *
+ * Generated from protobuf field string project = 6;
+ * @return string
+ */
+ public function getProject()
+ {
+ return $this->project;
+ }
+
+ /**
+ * Project where the lookup should be performed. Required to lookup
+ * entry that is not a part of `DPMS` or `DATAPLEX` `integrated_system`
+ * using its `fully_qualified_name`. Ignored in other cases.
+ *
+ * Generated from protobuf field string project = 6;
+ * @param string $var
+ * @return $this
+ */
+ public function setProject($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->project = $var;
+
+ return $this;
+ }
+
+ /**
+ * Location where the lookup should be performed. Required to lookup
+ * entry that is not a part of `DPMS` or `DATAPLEX` `integrated_system`
+ * using its `fully_qualified_name`. Ignored in other cases.
+ *
+ * Generated from protobuf field string location = 7;
+ * @return string
+ */
+ public function getLocation()
+ {
+ return $this->location;
+ }
+
+ /**
+ * Location where the lookup should be performed. Required to lookup
+ * entry that is not a part of `DPMS` or `DATAPLEX` `integrated_system`
+ * using its `fully_qualified_name`. Ignored in other cases.
+ *
+ * Generated from protobuf field string location = 7;
+ * @param string $var
+ * @return $this
+ */
+ public function setLocation($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->location = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getTargetName()
+ {
+ return $this->whichOneof("target_name");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ManagingSystem.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ManagingSystem.php
new file mode 100644
index 000000000000..cb3d83bc4ae1
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ManagingSystem.php
@@ -0,0 +1,62 @@
+google.cloud.datacatalog.v1.ManagingSystem
+ */
+class ManagingSystem
+{
+ /**
+ * Default value
+ *
+ * Generated from protobuf enum MANAGING_SYSTEM_UNSPECIFIED = 0;
+ */
+ const MANAGING_SYSTEM_UNSPECIFIED = 0;
+ /**
+ * Dataplex.
+ *
+ * Generated from protobuf enum MANAGING_SYSTEM_DATAPLEX = 1;
+ */
+ const MANAGING_SYSTEM_DATAPLEX = 1;
+ /**
+ * Other
+ *
+ * Generated from protobuf enum MANAGING_SYSTEM_OTHER = 2;
+ */
+ const MANAGING_SYSTEM_OTHER = 2;
+
+ private static $valueToName = [
+ self::MANAGING_SYSTEM_UNSPECIFIED => 'MANAGING_SYSTEM_UNSPECIFIED',
+ self::MANAGING_SYSTEM_DATAPLEX => 'MANAGING_SYSTEM_DATAPLEX',
+ self::MANAGING_SYSTEM_OTHER => 'MANAGING_SYSTEM_OTHER',
+ ];
+
+ 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/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ModelSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ModelSpec.php
new file mode 100644
index 000000000000..fe12fc42c3f7
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ModelSpec.php
@@ -0,0 +1,76 @@
+google.cloud.datacatalog.v1.ModelSpec
+ */
+class ModelSpec extends \Google\Protobuf\Internal\Message
+{
+ protected $system_spec;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\DataCatalog\V1\VertexModelSpec $vertex_model_spec
+ * Specification for vertex model resources.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Specification for vertex model resources.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.VertexModelSpec vertex_model_spec = 1;
+ * @return \Google\Cloud\DataCatalog\V1\VertexModelSpec|null
+ */
+ public function getVertexModelSpec()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasVertexModelSpec()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Specification for vertex model resources.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.VertexModelSpec vertex_model_spec = 1;
+ * @param \Google\Cloud\DataCatalog\V1\VertexModelSpec $var
+ * @return $this
+ */
+ public function setVertexModelSpec($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\VertexModelSpec::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getSystemSpec()
+ {
+ return $this->whichOneof("system_spec");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ModifyEntryContactsRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ModifyEntryContactsRequest.php
new file mode 100644
index 000000000000..214f3fb6b0e9
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ModifyEntryContactsRequest.php
@@ -0,0 +1,112 @@
+google.cloud.datacatalog.v1.ModifyEntryContactsRequest
+ */
+class ModifyEntryContactsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The full resource name of the entry.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Required. The new value for the Contacts.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Contacts contacts = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $contacts = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The full resource name of the entry.
+ * @type \Google\Cloud\DataCatalog\V1\Contacts $contacts
+ * Required. The new value for the Contacts.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The full resource name of the entry.
+ *
+ * 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 full resource name of the entry.
+ *
+ * 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 new value for the Contacts.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Contacts contacts = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\DataCatalog\V1\Contacts|null
+ */
+ public function getContacts()
+ {
+ return $this->contacts;
+ }
+
+ public function hasContacts()
+ {
+ return isset($this->contacts);
+ }
+
+ public function clearContacts()
+ {
+ unset($this->contacts);
+ }
+
+ /**
+ * Required. The new value for the Contacts.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Contacts contacts = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\DataCatalog\V1\Contacts $var
+ * @return $this
+ */
+ public function setContacts($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\Contacts::class);
+ $this->contacts = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ModifyEntryOverviewRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ModifyEntryOverviewRequest.php
new file mode 100644
index 000000000000..31f931ef546f
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ModifyEntryOverviewRequest.php
@@ -0,0 +1,112 @@
+google.cloud.datacatalog.v1.ModifyEntryOverviewRequest
+ */
+class ModifyEntryOverviewRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The full resource name of the entry.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Required. The new value for the Entry Overview.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.EntryOverview entry_overview = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $entry_overview = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The full resource name of the entry.
+ * @type \Google\Cloud\DataCatalog\V1\EntryOverview $entry_overview
+ * Required. The new value for the Entry Overview.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The full resource name of the entry.
+ *
+ * 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 full resource name of the entry.
+ *
+ * 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 new value for the Entry Overview.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.EntryOverview entry_overview = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\DataCatalog\V1\EntryOverview|null
+ */
+ public function getEntryOverview()
+ {
+ return $this->entry_overview;
+ }
+
+ public function hasEntryOverview()
+ {
+ return isset($this->entry_overview);
+ }
+
+ public function clearEntryOverview()
+ {
+ unset($this->entry_overview);
+ }
+
+ /**
+ * Required. The new value for the Entry Overview.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.EntryOverview entry_overview = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\DataCatalog\V1\EntryOverview $var
+ * @return $this
+ */
+ public function setEntryOverview($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\EntryOverview::class);
+ $this->entry_overview = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PersonalDetails.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PersonalDetails.php
new file mode 100644
index 000000000000..15b11371fec6
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PersonalDetails.php
@@ -0,0 +1,111 @@
+google.cloud.datacatalog.v1.PersonalDetails
+ */
+class PersonalDetails extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * True if the entry is starred by the user; false otherwise.
+ *
+ * Generated from protobuf field bool starred = 1;
+ */
+ protected $starred = false;
+ /**
+ * Set if the entry is starred; unset otherwise.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp star_time = 2;
+ */
+ protected $star_time = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $starred
+ * True if the entry is starred by the user; false otherwise.
+ * @type \Google\Protobuf\Timestamp $star_time
+ * Set if the entry is starred; unset otherwise.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Common::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * True if the entry is starred by the user; false otherwise.
+ *
+ * Generated from protobuf field bool starred = 1;
+ * @return bool
+ */
+ public function getStarred()
+ {
+ return $this->starred;
+ }
+
+ /**
+ * True if the entry is starred by the user; false otherwise.
+ *
+ * Generated from protobuf field bool starred = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setStarred($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->starred = $var;
+
+ return $this;
+ }
+
+ /**
+ * Set if the entry is starred; unset otherwise.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp star_time = 2;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getStarTime()
+ {
+ return $this->star_time;
+ }
+
+ public function hasStarTime()
+ {
+ return isset($this->star_time);
+ }
+
+ public function clearStarTime()
+ {
+ unset($this->star_time);
+ }
+
+ /**
+ * Set if the entry is starred; unset otherwise.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp star_time = 2;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setStarTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->star_time = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PhysicalSchema.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PhysicalSchema.php
new file mode 100644
index 000000000000..cfe389201252
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PhysicalSchema.php
@@ -0,0 +1,241 @@
+google.cloud.datacatalog.v1.PhysicalSchema
+ */
+class PhysicalSchema extends \Google\Protobuf\Internal\Message
+{
+ protected $schema;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\DataCatalog\V1\PhysicalSchema\AvroSchema $avro
+ * Schema in Avro JSON format.
+ * @type \Google\Cloud\DataCatalog\V1\PhysicalSchema\ThriftSchema $thrift
+ * Schema in Thrift format.
+ * @type \Google\Cloud\DataCatalog\V1\PhysicalSchema\ProtobufSchema $protobuf
+ * Schema in protocol buffer format.
+ * @type \Google\Cloud\DataCatalog\V1\PhysicalSchema\ParquetSchema $parquet
+ * Marks a Parquet-encoded data source.
+ * @type \Google\Cloud\DataCatalog\V1\PhysicalSchema\OrcSchema $orc
+ * Marks an ORC-encoded data source.
+ * @type \Google\Cloud\DataCatalog\V1\PhysicalSchema\CsvSchema $csv
+ * Marks a CSV-encoded data source.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\PhysicalSchema::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Schema in Avro JSON format.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.PhysicalSchema.AvroSchema avro = 1;
+ * @return \Google\Cloud\DataCatalog\V1\PhysicalSchema\AvroSchema|null
+ */
+ public function getAvro()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasAvro()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Schema in Avro JSON format.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.PhysicalSchema.AvroSchema avro = 1;
+ * @param \Google\Cloud\DataCatalog\V1\PhysicalSchema\AvroSchema $var
+ * @return $this
+ */
+ public function setAvro($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\PhysicalSchema\AvroSchema::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Schema in Thrift format.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.PhysicalSchema.ThriftSchema thrift = 2;
+ * @return \Google\Cloud\DataCatalog\V1\PhysicalSchema\ThriftSchema|null
+ */
+ public function getThrift()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasThrift()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Schema in Thrift format.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.PhysicalSchema.ThriftSchema thrift = 2;
+ * @param \Google\Cloud\DataCatalog\V1\PhysicalSchema\ThriftSchema $var
+ * @return $this
+ */
+ public function setThrift($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\PhysicalSchema\ThriftSchema::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Schema in protocol buffer format.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.PhysicalSchema.ProtobufSchema protobuf = 3;
+ * @return \Google\Cloud\DataCatalog\V1\PhysicalSchema\ProtobufSchema|null
+ */
+ public function getProtobuf()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasProtobuf()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * Schema in protocol buffer format.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.PhysicalSchema.ProtobufSchema protobuf = 3;
+ * @param \Google\Cloud\DataCatalog\V1\PhysicalSchema\ProtobufSchema $var
+ * @return $this
+ */
+ public function setProtobuf($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\PhysicalSchema\ProtobufSchema::class);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * Marks a Parquet-encoded data source.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.PhysicalSchema.ParquetSchema parquet = 4;
+ * @return \Google\Cloud\DataCatalog\V1\PhysicalSchema\ParquetSchema|null
+ */
+ public function getParquet()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasParquet()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * Marks a Parquet-encoded data source.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.PhysicalSchema.ParquetSchema parquet = 4;
+ * @param \Google\Cloud\DataCatalog\V1\PhysicalSchema\ParquetSchema $var
+ * @return $this
+ */
+ public function setParquet($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\PhysicalSchema\ParquetSchema::class);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * Marks an ORC-encoded data source.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.PhysicalSchema.OrcSchema orc = 5;
+ * @return \Google\Cloud\DataCatalog\V1\PhysicalSchema\OrcSchema|null
+ */
+ public function getOrc()
+ {
+ return $this->readOneof(5);
+ }
+
+ public function hasOrc()
+ {
+ return $this->hasOneof(5);
+ }
+
+ /**
+ * Marks an ORC-encoded data source.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.PhysicalSchema.OrcSchema orc = 5;
+ * @param \Google\Cloud\DataCatalog\V1\PhysicalSchema\OrcSchema $var
+ * @return $this
+ */
+ public function setOrc($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\PhysicalSchema\OrcSchema::class);
+ $this->writeOneof(5, $var);
+
+ return $this;
+ }
+
+ /**
+ * Marks a CSV-encoded data source.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.PhysicalSchema.CsvSchema csv = 6;
+ * @return \Google\Cloud\DataCatalog\V1\PhysicalSchema\CsvSchema|null
+ */
+ public function getCsv()
+ {
+ return $this->readOneof(6);
+ }
+
+ public function hasCsv()
+ {
+ return $this->hasOneof(6);
+ }
+
+ /**
+ * Marks a CSV-encoded data source.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.PhysicalSchema.CsvSchema csv = 6;
+ * @param \Google\Cloud\DataCatalog\V1\PhysicalSchema\CsvSchema $var
+ * @return $this
+ */
+ public function setCsv($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\PhysicalSchema\CsvSchema::class);
+ $this->writeOneof(6, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getSchema()
+ {
+ return $this->whichOneof("schema");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PhysicalSchema/AvroSchema.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PhysicalSchema/AvroSchema.php
new file mode 100644
index 000000000000..7ff45e2f48dd
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PhysicalSchema/AvroSchema.php
@@ -0,0 +1,70 @@
+google.cloud.datacatalog.v1.PhysicalSchema.AvroSchema
+ */
+class AvroSchema extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * JSON source of the Avro schema.
+ *
+ * Generated from protobuf field string text = 1;
+ */
+ protected $text = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $text
+ * JSON source of the Avro schema.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\PhysicalSchema::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * JSON source of the Avro schema.
+ *
+ * Generated from protobuf field string text = 1;
+ * @return string
+ */
+ public function getText()
+ {
+ return $this->text;
+ }
+
+ /**
+ * JSON source of the Avro schema.
+ *
+ * Generated from protobuf field string text = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setText($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->text = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(AvroSchema::class, \Google\Cloud\DataCatalog\V1\PhysicalSchema_AvroSchema::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PhysicalSchema/CsvSchema.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PhysicalSchema/CsvSchema.php
new file mode 100644
index 000000000000..6df505123b75
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PhysicalSchema/CsvSchema.php
@@ -0,0 +1,36 @@
+google.cloud.datacatalog.v1.PhysicalSchema.CsvSchema
+ */
+class CsvSchema extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\PhysicalSchema::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(CsvSchema::class, \Google\Cloud\DataCatalog\V1\PhysicalSchema_CsvSchema::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PhysicalSchema/OrcSchema.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PhysicalSchema/OrcSchema.php
new file mode 100644
index 000000000000..3537fd33c759
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PhysicalSchema/OrcSchema.php
@@ -0,0 +1,36 @@
+google.cloud.datacatalog.v1.PhysicalSchema.OrcSchema
+ */
+class OrcSchema extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\PhysicalSchema::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(OrcSchema::class, \Google\Cloud\DataCatalog\V1\PhysicalSchema_OrcSchema::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PhysicalSchema/ParquetSchema.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PhysicalSchema/ParquetSchema.php
new file mode 100644
index 000000000000..3a2aa3425642
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PhysicalSchema/ParquetSchema.php
@@ -0,0 +1,36 @@
+google.cloud.datacatalog.v1.PhysicalSchema.ParquetSchema
+ */
+class ParquetSchema extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\PhysicalSchema::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(ParquetSchema::class, \Google\Cloud\DataCatalog\V1\PhysicalSchema_ParquetSchema::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PhysicalSchema/ProtobufSchema.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PhysicalSchema/ProtobufSchema.php
new file mode 100644
index 000000000000..a4f253051183
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PhysicalSchema/ProtobufSchema.php
@@ -0,0 +1,70 @@
+google.cloud.datacatalog.v1.PhysicalSchema.ProtobufSchema
+ */
+class ProtobufSchema extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Protocol buffer source of the schema.
+ *
+ * Generated from protobuf field string text = 1;
+ */
+ protected $text = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $text
+ * Protocol buffer source of the schema.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\PhysicalSchema::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Protocol buffer source of the schema.
+ *
+ * Generated from protobuf field string text = 1;
+ * @return string
+ */
+ public function getText()
+ {
+ return $this->text;
+ }
+
+ /**
+ * Protocol buffer source of the schema.
+ *
+ * Generated from protobuf field string text = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setText($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->text = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(ProtobufSchema::class, \Google\Cloud\DataCatalog\V1\PhysicalSchema_ProtobufSchema::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PhysicalSchema/ThriftSchema.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PhysicalSchema/ThriftSchema.php
new file mode 100644
index 000000000000..58bbfae5de28
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PhysicalSchema/ThriftSchema.php
@@ -0,0 +1,70 @@
+google.cloud.datacatalog.v1.PhysicalSchema.ThriftSchema
+ */
+class ThriftSchema extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Thrift IDL source of the schema.
+ *
+ * Generated from protobuf field string text = 1;
+ */
+ protected $text = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $text
+ * Thrift IDL source of the schema.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\PhysicalSchema::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Thrift IDL source of the schema.
+ *
+ * Generated from protobuf field string text = 1;
+ * @return string
+ */
+ public function getText()
+ {
+ return $this->text;
+ }
+
+ /**
+ * Thrift IDL source of the schema.
+ *
+ * Generated from protobuf field string text = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setText($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->text = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(ThriftSchema::class, \Google\Cloud\DataCatalog\V1\PhysicalSchema_ThriftSchema::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PolicyTag.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PolicyTag.php
new file mode 100644
index 000000000000..afb17e3ef1a4
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/PolicyTag.php
@@ -0,0 +1,255 @@
+google.cloud.datacatalog.v1.PolicyTag
+ */
+class PolicyTag extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Identifier. Resource name of this policy tag in the URL format.
+ * The policy tag manager generates unique taxonomy IDs and policy tag IDs.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ */
+ protected $name = '';
+ /**
+ * Required. User-defined name of this policy tag.
+ * The name can't start or end with spaces and must be unique within the
+ * parent taxonomy, contain only Unicode letters, numbers, underscores, dashes
+ * and spaces, and be at most 200 bytes long when encoded in UTF-8.
+ *
+ * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $display_name = '';
+ /**
+ * Description of this policy tag. If not set, defaults to empty.
+ * The description must contain only Unicode characters,
+ * tabs, newlines, carriage returns and page breaks, and be at most 2000 bytes
+ * long when encoded in UTF-8.
+ *
+ * Generated from protobuf field string description = 3;
+ */
+ protected $description = '';
+ /**
+ * Resource name of this policy tag's parent policy tag. If empty, this is a
+ * top level tag. If not set, defaults to an empty string.
+ * For example, for the "LatLong" policy tag in the example above, this field
+ * contains the resource name of the "Geolocation" policy tag, and, for
+ * "Geolocation", this field is empty.
+ *
+ * Generated from protobuf field string parent_policy_tag = 4;
+ */
+ protected $parent_policy_tag = '';
+ /**
+ * Output only. Resource names of child policy tags of this policy tag.
+ *
+ * Generated from protobuf field repeated string child_policy_tags = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $child_policy_tags;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Identifier. Resource name of this policy tag in the URL format.
+ * The policy tag manager generates unique taxonomy IDs and policy tag IDs.
+ * @type string $display_name
+ * Required. User-defined name of this policy tag.
+ * The name can't start or end with spaces and must be unique within the
+ * parent taxonomy, contain only Unicode letters, numbers, underscores, dashes
+ * and spaces, and be at most 200 bytes long when encoded in UTF-8.
+ * @type string $description
+ * Description of this policy tag. If not set, defaults to empty.
+ * The description must contain only Unicode characters,
+ * tabs, newlines, carriage returns and page breaks, and be at most 2000 bytes
+ * long when encoded in UTF-8.
+ * @type string $parent_policy_tag
+ * Resource name of this policy tag's parent policy tag. If empty, this is a
+ * top level tag. If not set, defaults to an empty string.
+ * For example, for the "LatLong" policy tag in the example above, this field
+ * contains the resource name of the "Geolocation" policy tag, and, for
+ * "Geolocation", this field is empty.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $child_policy_tags
+ * Output only. Resource names of child policy tags of this policy tag.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Policytagmanager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Identifier. Resource name of this policy tag in the URL format.
+ * The policy tag manager generates unique taxonomy IDs and policy tag IDs.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Identifier. Resource name of this policy tag in the URL format.
+ * The policy tag manager generates unique taxonomy IDs and policy tag IDs.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. User-defined name of this policy tag.
+ * The name can't start or end with spaces and must be unique within the
+ * parent taxonomy, contain only Unicode letters, numbers, underscores, dashes
+ * and spaces, and be at most 200 bytes long when encoded in UTF-8.
+ *
+ * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * Required. User-defined name of this policy tag.
+ * The name can't start or end with spaces and must be unique within the
+ * parent taxonomy, contain only Unicode letters, numbers, underscores, dashes
+ * and spaces, and be at most 200 bytes long when encoded in UTF-8.
+ *
+ * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Description of this policy tag. If not set, defaults to empty.
+ * The description must contain only Unicode characters,
+ * tabs, newlines, carriage returns and page breaks, and be at most 2000 bytes
+ * long when encoded in UTF-8.
+ *
+ * Generated from protobuf field string description = 3;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Description of this policy tag. If not set, defaults to empty.
+ * The description must contain only Unicode characters,
+ * tabs, newlines, carriage returns and page breaks, and be at most 2000 bytes
+ * long when encoded in UTF-8.
+ *
+ * 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;
+ }
+
+ /**
+ * Resource name of this policy tag's parent policy tag. If empty, this is a
+ * top level tag. If not set, defaults to an empty string.
+ * For example, for the "LatLong" policy tag in the example above, this field
+ * contains the resource name of the "Geolocation" policy tag, and, for
+ * "Geolocation", this field is empty.
+ *
+ * Generated from protobuf field string parent_policy_tag = 4;
+ * @return string
+ */
+ public function getParentPolicyTag()
+ {
+ return $this->parent_policy_tag;
+ }
+
+ /**
+ * Resource name of this policy tag's parent policy tag. If empty, this is a
+ * top level tag. If not set, defaults to an empty string.
+ * For example, for the "LatLong" policy tag in the example above, this field
+ * contains the resource name of the "Geolocation" policy tag, and, for
+ * "Geolocation", this field is empty.
+ *
+ * Generated from protobuf field string parent_policy_tag = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setParentPolicyTag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent_policy_tag = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Resource names of child policy tags of this policy tag.
+ *
+ * Generated from protobuf field repeated string child_policy_tags = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getChildPolicyTags()
+ {
+ return $this->child_policy_tags;
+ }
+
+ /**
+ * Output only. Resource names of child policy tags of this policy tag.
+ *
+ * Generated from protobuf field repeated string child_policy_tags = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setChildPolicyTags($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->child_policy_tags = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ReconcileTagsMetadata.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ReconcileTagsMetadata.php
new file mode 100644
index 000000000000..2a72e0e8e924
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ReconcileTagsMetadata.php
@@ -0,0 +1,107 @@
+google.cloud.datacatalog.v1.ReconcileTagsMetadata
+ */
+class ReconcileTagsMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * State of the reconciliation operation.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.ReconcileTagsMetadata.ReconciliationState state = 1;
+ */
+ protected $state = 0;
+ /**
+ * Maps the name of each tagged column (or empty string for a
+ * sole entry) to tagging operation [status][google.rpc.Status].
+ *
+ * Generated from protobuf field map errors = 2;
+ */
+ private $errors;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $state
+ * State of the reconciliation operation.
+ * @type array|\Google\Protobuf\Internal\MapField $errors
+ * Maps the name of each tagged column (or empty string for a
+ * sole entry) to tagging operation [status][google.rpc.Status].
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * State of the reconciliation operation.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.ReconcileTagsMetadata.ReconciliationState state = 1;
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * State of the reconciliation operation.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.ReconcileTagsMetadata.ReconciliationState state = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\DataCatalog\V1\ReconcileTagsMetadata\ReconciliationState::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Maps the name of each tagged column (or empty string for a
+ * sole entry) to tagging operation [status][google.rpc.Status].
+ *
+ * Generated from protobuf field map errors = 2;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getErrors()
+ {
+ return $this->errors;
+ }
+
+ /**
+ * Maps the name of each tagged column (or empty string for a
+ * sole entry) to tagging operation [status][google.rpc.Status].
+ *
+ * Generated from protobuf field map errors = 2;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setErrors($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Rpc\Status::class);
+ $this->errors = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ReconcileTagsMetadata/ReconciliationState.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ReconcileTagsMetadata/ReconciliationState.php
new file mode 100644
index 000000000000..2f40d719bcfd
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ReconcileTagsMetadata/ReconciliationState.php
@@ -0,0 +1,71 @@
+google.cloud.datacatalog.v1.ReconcileTagsMetadata.ReconciliationState
+ */
+class ReconciliationState
+{
+ /**
+ * Default value. This value is unused.
+ *
+ * Generated from protobuf enum RECONCILIATION_STATE_UNSPECIFIED = 0;
+ */
+ const RECONCILIATION_STATE_UNSPECIFIED = 0;
+ /**
+ * The reconciliation has been queued and awaits for execution.
+ *
+ * Generated from protobuf enum RECONCILIATION_QUEUED = 1;
+ */
+ const RECONCILIATION_QUEUED = 1;
+ /**
+ * The reconciliation is in progress.
+ *
+ * Generated from protobuf enum RECONCILIATION_IN_PROGRESS = 2;
+ */
+ const RECONCILIATION_IN_PROGRESS = 2;
+ /**
+ * The reconciliation has been finished.
+ *
+ * Generated from protobuf enum RECONCILIATION_DONE = 3;
+ */
+ const RECONCILIATION_DONE = 3;
+
+ private static $valueToName = [
+ self::RECONCILIATION_STATE_UNSPECIFIED => 'RECONCILIATION_STATE_UNSPECIFIED',
+ self::RECONCILIATION_QUEUED => 'RECONCILIATION_QUEUED',
+ self::RECONCILIATION_IN_PROGRESS => 'RECONCILIATION_IN_PROGRESS',
+ self::RECONCILIATION_DONE => 'RECONCILIATION_DONE',
+ ];
+
+ 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(ReconciliationState::class, \Google\Cloud\DataCatalog\V1\ReconcileTagsMetadata_ReconciliationState::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ReconcileTagsRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ReconcileTagsRequest.php
new file mode 100644
index 000000000000..fbc95fd3d4eb
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ReconcileTagsRequest.php
@@ -0,0 +1,190 @@
+google.cloud.datacatalog.v1.ReconcileTagsRequest
+ */
+class ReconcileTagsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of [Entry][google.cloud.datacatalog.v1.Entry] to be tagged.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The name of the tag template, which is used for reconciliation.
+ *
+ * Generated from protobuf field string tag_template = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $tag_template = '';
+ /**
+ * If set to `true`, deletes entry tags related to a tag template
+ * not listed in the tags source from an entry. If set to `false`,
+ * unlisted tags are retained.
+ *
+ * Generated from protobuf field bool force_delete_missing = 3;
+ */
+ protected $force_delete_missing = false;
+ /**
+ * A list of tags to apply to an entry. A tag can specify a
+ * tag template, which must be the template specified in the
+ * `ReconcileTagsRequest`.
+ * The sole entry and each of its columns must be mentioned at most once.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Tag tags = 4;
+ */
+ private $tags;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Name of [Entry][google.cloud.datacatalog.v1.Entry] to be tagged.
+ * @type string $tag_template
+ * Required. The name of the tag template, which is used for reconciliation.
+ * @type bool $force_delete_missing
+ * If set to `true`, deletes entry tags related to a tag template
+ * not listed in the tags source from an entry. If set to `false`,
+ * unlisted tags are retained.
+ * @type array<\Google\Cloud\DataCatalog\V1\Tag>|\Google\Protobuf\Internal\RepeatedField $tags
+ * A list of tags to apply to an entry. A tag can specify a
+ * tag template, which must be the template specified in the
+ * `ReconcileTagsRequest`.
+ * The sole entry and each of its columns must be mentioned at most once.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of [Entry][google.cloud.datacatalog.v1.Entry] to be tagged.
+ *
+ * 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 [Entry][google.cloud.datacatalog.v1.Entry] to be tagged.
+ *
+ * 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 name of the tag template, which is used for reconciliation.
+ *
+ * Generated from protobuf field string tag_template = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getTagTemplate()
+ {
+ return $this->tag_template;
+ }
+
+ /**
+ * Required. The name of the tag template, which is used for reconciliation.
+ *
+ * Generated from protobuf field string tag_template = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setTagTemplate($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->tag_template = $var;
+
+ return $this;
+ }
+
+ /**
+ * If set to `true`, deletes entry tags related to a tag template
+ * not listed in the tags source from an entry. If set to `false`,
+ * unlisted tags are retained.
+ *
+ * Generated from protobuf field bool force_delete_missing = 3;
+ * @return bool
+ */
+ public function getForceDeleteMissing()
+ {
+ return $this->force_delete_missing;
+ }
+
+ /**
+ * If set to `true`, deletes entry tags related to a tag template
+ * not listed in the tags source from an entry. If set to `false`,
+ * unlisted tags are retained.
+ *
+ * Generated from protobuf field bool force_delete_missing = 3;
+ * @param bool $var
+ * @return $this
+ */
+ public function setForceDeleteMissing($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->force_delete_missing = $var;
+
+ return $this;
+ }
+
+ /**
+ * A list of tags to apply to an entry. A tag can specify a
+ * tag template, which must be the template specified in the
+ * `ReconcileTagsRequest`.
+ * The sole entry and each of its columns must be mentioned at most once.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Tag tags = 4;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTags()
+ {
+ return $this->tags;
+ }
+
+ /**
+ * A list of tags to apply to an entry. A tag can specify a
+ * tag template, which must be the template specified in the
+ * `ReconcileTagsRequest`.
+ * The sole entry and each of its columns must be mentioned at most once.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Tag tags = 4;
+ * @param array<\Google\Cloud\DataCatalog\V1\Tag>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTags($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\DataCatalog\V1\Tag::class);
+ $this->tags = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ReconcileTagsResponse.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ReconcileTagsResponse.php
new file mode 100644
index 000000000000..7847c76e8692
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ReconcileTagsResponse.php
@@ -0,0 +1,137 @@
+google.cloud.datacatalog.v1.ReconcileTagsResponse
+ */
+class ReconcileTagsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Number of tags created in the request.
+ *
+ * Generated from protobuf field int64 created_tags_count = 1;
+ */
+ protected $created_tags_count = 0;
+ /**
+ * Number of tags updated in the request.
+ *
+ * Generated from protobuf field int64 updated_tags_count = 2;
+ */
+ protected $updated_tags_count = 0;
+ /**
+ * Number of tags deleted in the request.
+ *
+ * Generated from protobuf field int64 deleted_tags_count = 3;
+ */
+ protected $deleted_tags_count = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $created_tags_count
+ * Number of tags created in the request.
+ * @type int|string $updated_tags_count
+ * Number of tags updated in the request.
+ * @type int|string $deleted_tags_count
+ * Number of tags deleted in the request.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Number of tags created in the request.
+ *
+ * Generated from protobuf field int64 created_tags_count = 1;
+ * @return int|string
+ */
+ public function getCreatedTagsCount()
+ {
+ return $this->created_tags_count;
+ }
+
+ /**
+ * Number of tags created in the request.
+ *
+ * Generated from protobuf field int64 created_tags_count = 1;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setCreatedTagsCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->created_tags_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Number of tags updated in the request.
+ *
+ * Generated from protobuf field int64 updated_tags_count = 2;
+ * @return int|string
+ */
+ public function getUpdatedTagsCount()
+ {
+ return $this->updated_tags_count;
+ }
+
+ /**
+ * Number of tags updated in the request.
+ *
+ * Generated from protobuf field int64 updated_tags_count = 2;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setUpdatedTagsCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->updated_tags_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Number of tags deleted in the request.
+ *
+ * Generated from protobuf field int64 deleted_tags_count = 3;
+ * @return int|string
+ */
+ public function getDeletedTagsCount()
+ {
+ return $this->deleted_tags_count;
+ }
+
+ /**
+ * Number of tags deleted in the request.
+ *
+ * Generated from protobuf field int64 deleted_tags_count = 3;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setDeletedTagsCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->deleted_tags_count = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/RenameTagTemplateFieldEnumValueRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/RenameTagTemplateFieldEnumValueRequest.php
new file mode 100644
index 000000000000..2356d1f0e0a7
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/RenameTagTemplateFieldEnumValueRequest.php
@@ -0,0 +1,123 @@
+google.cloud.datacatalog.v1.RenameTagTemplateFieldEnumValueRequest
+ */
+class RenameTagTemplateFieldEnumValueRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the enum field value.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Required. The new display name of the enum value. For example,
+ * `my_new_enum_value`.
+ *
+ * Generated from protobuf field string new_enum_value_display_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $new_enum_value_display_name = '';
+
+ /**
+ * @param string $name Required. The name of the enum field value. Please see
+ * {@see DataCatalogClient::tagTemplateFieldEnumValueName()} for help formatting this field.
+ * @param string $newEnumValueDisplayName Required. The new display name of the enum value. For example,
+ * `my_new_enum_value`.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\RenameTagTemplateFieldEnumValueRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name, string $newEnumValueDisplayName): self
+ {
+ return (new self())
+ ->setName($name)
+ ->setNewEnumValueDisplayName($newEnumValueDisplayName);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the enum field value.
+ * @type string $new_enum_value_display_name
+ * Required. The new display name of the enum value. For example,
+ * `my_new_enum_value`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the enum field value.
+ *
+ * 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 enum field value.
+ *
+ * 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 new display name of the enum value. For example,
+ * `my_new_enum_value`.
+ *
+ * Generated from protobuf field string new_enum_value_display_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getNewEnumValueDisplayName()
+ {
+ return $this->new_enum_value_display_name;
+ }
+
+ /**
+ * Required. The new display name of the enum value. For example,
+ * `my_new_enum_value`.
+ *
+ * Generated from protobuf field string new_enum_value_display_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setNewEnumValueDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->new_enum_value_display_name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/RenameTagTemplateFieldRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/RenameTagTemplateFieldRequest.php
new file mode 100644
index 000000000000..385fb3e2b59c
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/RenameTagTemplateFieldRequest.php
@@ -0,0 +1,123 @@
+google.cloud.datacatalog.v1.RenameTagTemplateFieldRequest
+ */
+class RenameTagTemplateFieldRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the tag template field.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Required. The new ID of this tag template field. For example,
+ * `my_new_field`.
+ *
+ * Generated from protobuf field string new_tag_template_field_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $new_tag_template_field_id = '';
+
+ /**
+ * @param string $name Required. The name of the tag template field. Please see
+ * {@see DataCatalogClient::tagTemplateFieldName()} for help formatting this field.
+ * @param string $newTagTemplateFieldId Required. The new ID of this tag template field. For example,
+ * `my_new_field`.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\RenameTagTemplateFieldRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name, string $newTagTemplateFieldId): self
+ {
+ return (new self())
+ ->setName($name)
+ ->setNewTagTemplateFieldId($newTagTemplateFieldId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the tag template field.
+ * @type string $new_tag_template_field_id
+ * Required. The new ID of this tag template field. For example,
+ * `my_new_field`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the tag template field.
+ *
+ * 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 tag template field.
+ *
+ * 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 new ID of this tag template field. For example,
+ * `my_new_field`.
+ *
+ * Generated from protobuf field string new_tag_template_field_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getNewTagTemplateFieldId()
+ {
+ return $this->new_tag_template_field_id;
+ }
+
+ /**
+ * Required. The new ID of this tag template field. For example,
+ * `my_new_field`.
+ *
+ * Generated from protobuf field string new_tag_template_field_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setNewTagTemplateFieldId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->new_tag_template_field_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ReplaceTaxonomyRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ReplaceTaxonomyRequest.php
new file mode 100644
index 000000000000..67350fac7799
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ReplaceTaxonomyRequest.php
@@ -0,0 +1,112 @@
+google.cloud.datacatalog.v1.ReplaceTaxonomyRequest
+ */
+class ReplaceTaxonomyRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name of the taxonomy to update.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Required. Taxonomy to update along with its child policy tags.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.SerializedTaxonomy serialized_taxonomy = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $serialized_taxonomy = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Resource name of the taxonomy to update.
+ * @type \Google\Cloud\DataCatalog\V1\SerializedTaxonomy $serialized_taxonomy
+ * Required. Taxonomy to update along with its child policy tags.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Policytagmanagerserialization::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name of the taxonomy to update.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Resource name of the taxonomy to update.
+ *
+ * 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. Taxonomy to update along with its child policy tags.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.SerializedTaxonomy serialized_taxonomy = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\DataCatalog\V1\SerializedTaxonomy|null
+ */
+ public function getSerializedTaxonomy()
+ {
+ return $this->serialized_taxonomy;
+ }
+
+ public function hasSerializedTaxonomy()
+ {
+ return isset($this->serialized_taxonomy);
+ }
+
+ public function clearSerializedTaxonomy()
+ {
+ unset($this->serialized_taxonomy);
+ }
+
+ /**
+ * Required. Taxonomy to update along with its child policy tags.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.SerializedTaxonomy serialized_taxonomy = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\DataCatalog\V1\SerializedTaxonomy $var
+ * @return $this
+ */
+ public function setSerializedTaxonomy($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\SerializedTaxonomy::class);
+ $this->serialized_taxonomy = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/RoutineSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/RoutineSpec.php
new file mode 100644
index 000000000000..8c71b088c8ba
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/RoutineSpec.php
@@ -0,0 +1,262 @@
+google.cloud.datacatalog.v1.RoutineSpec
+ */
+class RoutineSpec extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The type of the routine.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.RoutineSpec.RoutineType routine_type = 1;
+ */
+ protected $routine_type = 0;
+ /**
+ * The language the routine is written in. The exact value depends on the
+ * source system. For BigQuery routines, possible values are:
+ * * `SQL`
+ * * `JAVASCRIPT`
+ *
+ * Generated from protobuf field string language = 2;
+ */
+ protected $language = '';
+ /**
+ * Arguments of the routine.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.RoutineSpec.Argument routine_arguments = 3;
+ */
+ private $routine_arguments;
+ /**
+ * Return type of the argument. The exact value depends on the source system
+ * and the language.
+ *
+ * Generated from protobuf field string return_type = 4;
+ */
+ protected $return_type = '';
+ /**
+ * The body of the routine.
+ *
+ * Generated from protobuf field string definition_body = 5;
+ */
+ protected $definition_body = '';
+ protected $system_spec;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $routine_type
+ * The type of the routine.
+ * @type string $language
+ * The language the routine is written in. The exact value depends on the
+ * source system. For BigQuery routines, possible values are:
+ * * `SQL`
+ * * `JAVASCRIPT`
+ * @type array<\Google\Cloud\DataCatalog\V1\RoutineSpec\Argument>|\Google\Protobuf\Internal\RepeatedField $routine_arguments
+ * Arguments of the routine.
+ * @type string $return_type
+ * Return type of the argument. The exact value depends on the source system
+ * and the language.
+ * @type string $definition_body
+ * The body of the routine.
+ * @type \Google\Cloud\DataCatalog\V1\BigQueryRoutineSpec $bigquery_routine_spec
+ * Fields specific for BigQuery routines.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The type of the routine.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.RoutineSpec.RoutineType routine_type = 1;
+ * @return int
+ */
+ public function getRoutineType()
+ {
+ return $this->routine_type;
+ }
+
+ /**
+ * The type of the routine.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.RoutineSpec.RoutineType routine_type = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setRoutineType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\DataCatalog\V1\RoutineSpec\RoutineType::class);
+ $this->routine_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * The language the routine is written in. The exact value depends on the
+ * source system. For BigQuery routines, possible values are:
+ * * `SQL`
+ * * `JAVASCRIPT`
+ *
+ * Generated from protobuf field string language = 2;
+ * @return string
+ */
+ public function getLanguage()
+ {
+ return $this->language;
+ }
+
+ /**
+ * The language the routine is written in. The exact value depends on the
+ * source system. For BigQuery routines, possible values are:
+ * * `SQL`
+ * * `JAVASCRIPT`
+ *
+ * Generated from protobuf field string language = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setLanguage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->language = $var;
+
+ return $this;
+ }
+
+ /**
+ * Arguments of the routine.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.RoutineSpec.Argument routine_arguments = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRoutineArguments()
+ {
+ return $this->routine_arguments;
+ }
+
+ /**
+ * Arguments of the routine.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.RoutineSpec.Argument routine_arguments = 3;
+ * @param array<\Google\Cloud\DataCatalog\V1\RoutineSpec\Argument>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRoutineArguments($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\DataCatalog\V1\RoutineSpec\Argument::class);
+ $this->routine_arguments = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Return type of the argument. The exact value depends on the source system
+ * and the language.
+ *
+ * Generated from protobuf field string return_type = 4;
+ * @return string
+ */
+ public function getReturnType()
+ {
+ return $this->return_type;
+ }
+
+ /**
+ * Return type of the argument. The exact value depends on the source system
+ * and the language.
+ *
+ * Generated from protobuf field string return_type = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setReturnType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->return_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * The body of the routine.
+ *
+ * Generated from protobuf field string definition_body = 5;
+ * @return string
+ */
+ public function getDefinitionBody()
+ {
+ return $this->definition_body;
+ }
+
+ /**
+ * The body of the routine.
+ *
+ * Generated from protobuf field string definition_body = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setDefinitionBody($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->definition_body = $var;
+
+ return $this;
+ }
+
+ /**
+ * Fields specific for BigQuery routines.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.BigQueryRoutineSpec bigquery_routine_spec = 6;
+ * @return \Google\Cloud\DataCatalog\V1\BigQueryRoutineSpec|null
+ */
+ public function getBigqueryRoutineSpec()
+ {
+ return $this->readOneof(6);
+ }
+
+ public function hasBigqueryRoutineSpec()
+ {
+ return $this->hasOneof(6);
+ }
+
+ /**
+ * Fields specific for BigQuery routines.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.BigQueryRoutineSpec bigquery_routine_spec = 6;
+ * @param \Google\Cloud\DataCatalog\V1\BigQueryRoutineSpec $var
+ * @return $this
+ */
+ public function setBigqueryRoutineSpec($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\BigQueryRoutineSpec::class);
+ $this->writeOneof(6, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getSystemSpec()
+ {
+ return $this->whichOneof("system_spec");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/RoutineSpec/Argument.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/RoutineSpec/Argument.php
new file mode 100644
index 000000000000..8abcca2b8441
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/RoutineSpec/Argument.php
@@ -0,0 +1,146 @@
+google.cloud.datacatalog.v1.RoutineSpec.Argument
+ */
+class Argument extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the argument. A return argument of a function might not have
+ * a name.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * Specifies whether the argument is input or output.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.RoutineSpec.Argument.Mode mode = 2;
+ */
+ protected $mode = 0;
+ /**
+ * Type of the argument. The exact value depends on the source system and
+ * the language.
+ *
+ * Generated from protobuf field string type = 3;
+ */
+ protected $type = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The name of the argument. A return argument of a function might not have
+ * a name.
+ * @type int $mode
+ * Specifies whether the argument is input or output.
+ * @type string $type
+ * Type of the argument. The exact value depends on the source system and
+ * the language.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name of the argument. A return argument of a function might not have
+ * a name.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name of the argument. A return argument of a function might not have
+ * a name.
+ *
+ * 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;
+ }
+
+ /**
+ * Specifies whether the argument is input or output.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.RoutineSpec.Argument.Mode mode = 2;
+ * @return int
+ */
+ public function getMode()
+ {
+ return $this->mode;
+ }
+
+ /**
+ * Specifies whether the argument is input or output.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.RoutineSpec.Argument.Mode mode = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setMode($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\DataCatalog\V1\RoutineSpec\Argument\Mode::class);
+ $this->mode = $var;
+
+ return $this;
+ }
+
+ /**
+ * Type of the argument. The exact value depends on the source system and
+ * the language.
+ *
+ * Generated from protobuf field string type = 3;
+ * @return string
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * Type of the argument. The exact value depends on the source system and
+ * the language.
+ *
+ * Generated from protobuf field string type = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->type = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Argument::class, \Google\Cloud\DataCatalog\V1\RoutineSpec_Argument::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/RoutineSpec/Argument/Mode.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/RoutineSpec/Argument/Mode.php
new file mode 100644
index 000000000000..894ff07fc297
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/RoutineSpec/Argument/Mode.php
@@ -0,0 +1,71 @@
+google.cloud.datacatalog.v1.RoutineSpec.Argument.Mode
+ */
+class Mode
+{
+ /**
+ * Unspecified mode.
+ *
+ * Generated from protobuf enum MODE_UNSPECIFIED = 0;
+ */
+ const MODE_UNSPECIFIED = 0;
+ /**
+ * The argument is input-only.
+ *
+ * Generated from protobuf enum IN = 1;
+ */
+ const IN = 1;
+ /**
+ * The argument is output-only.
+ *
+ * Generated from protobuf enum OUT = 2;
+ */
+ const OUT = 2;
+ /**
+ * The argument is both an input and an output.
+ *
+ * Generated from protobuf enum INOUT = 3;
+ */
+ const INOUT = 3;
+
+ private static $valueToName = [
+ self::MODE_UNSPECIFIED => 'MODE_UNSPECIFIED',
+ self::IN => 'IN',
+ self::OUT => 'OUT',
+ self::INOUT => 'INOUT',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Mode::class, \Google\Cloud\DataCatalog\V1\RoutineSpec_Argument_Mode::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/RoutineSpec/RoutineType.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/RoutineSpec/RoutineType.php
new file mode 100644
index 000000000000..8778af7e281d
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/RoutineSpec/RoutineType.php
@@ -0,0 +1,64 @@
+google.cloud.datacatalog.v1.RoutineSpec.RoutineType
+ */
+class RoutineType
+{
+ /**
+ * Unspecified type.
+ *
+ * Generated from protobuf enum ROUTINE_TYPE_UNSPECIFIED = 0;
+ */
+ const ROUTINE_TYPE_UNSPECIFIED = 0;
+ /**
+ * Non-builtin permanent scalar function.
+ *
+ * Generated from protobuf enum SCALAR_FUNCTION = 1;
+ */
+ const SCALAR_FUNCTION = 1;
+ /**
+ * Stored procedure.
+ *
+ * Generated from protobuf enum PROCEDURE = 2;
+ */
+ const PROCEDURE = 2;
+
+ private static $valueToName = [
+ self::ROUTINE_TYPE_UNSPECIFIED => 'ROUTINE_TYPE_UNSPECIFIED',
+ self::SCALAR_FUNCTION => 'SCALAR_FUNCTION',
+ self::PROCEDURE => 'PROCEDURE',
+ ];
+
+ 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(RoutineType::class, \Google\Cloud\DataCatalog\V1\RoutineSpec_RoutineType::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/Schema.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/Schema.php
new file mode 100644
index 000000000000..6596e4bdfdf4
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/Schema.php
@@ -0,0 +1,75 @@
+google.cloud.datacatalog.v1.Schema
+ */
+class Schema extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The unified GoogleSQL-like schema of columns.
+ * The overall maximum number of columns and nested columns is 10,000.
+ * The maximum nested depth is 15 levels.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.ColumnSchema columns = 2;
+ */
+ private $columns;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\DataCatalog\V1\ColumnSchema>|\Google\Protobuf\Internal\RepeatedField $columns
+ * The unified GoogleSQL-like schema of columns.
+ * The overall maximum number of columns and nested columns is 10,000.
+ * The maximum nested depth is 15 levels.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Schema::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The unified GoogleSQL-like schema of columns.
+ * The overall maximum number of columns and nested columns is 10,000.
+ * The maximum nested depth is 15 levels.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.ColumnSchema columns = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getColumns()
+ {
+ return $this->columns;
+ }
+
+ /**
+ * The unified GoogleSQL-like schema of columns.
+ * The overall maximum number of columns and nested columns is 10,000.
+ * The maximum nested depth is 15 levels.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.ColumnSchema columns = 2;
+ * @param array<\Google\Cloud\DataCatalog\V1\ColumnSchema>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setColumns($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\DataCatalog\V1\ColumnSchema::class);
+ $this->columns = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SearchCatalogRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SearchCatalogRequest.php
new file mode 100644
index 000000000000..263700dffc14
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SearchCatalogRequest.php
@@ -0,0 +1,418 @@
+google.cloud.datacatalog.v1.SearchCatalogRequest
+ */
+class SearchCatalogRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The scope of this search request.
+ * The `scope` is invalid if `include_org_ids`, `include_project_ids` are
+ * empty AND `include_gcp_public_datasets` is set to `false`. In this case,
+ * the request returns an error.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.SearchCatalogRequest.Scope scope = 6 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $scope = null;
+ /**
+ * Optional. The query string with a minimum of 3 characters and specific
+ * syntax. For more information, see [Data Catalog search
+ * syntax](https://cloud.google.com/data-catalog/docs/how-to/search-reference).
+ * An empty query string returns all data assets (in the specified scope)
+ * that you have access to.
+ * A query string can be a simple `xyz` or qualified by predicates:
+ * * `name:x`
+ * * `column:y`
+ * * `description:z`
+ *
+ * Generated from protobuf field string query = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $query = '';
+ /**
+ * Upper bound on the number of results you can get in a single response.
+ * Can't be negative or 0, defaults to 10 in this case.
+ * The maximum number is 1000. If exceeded, throws an "invalid argument"
+ * exception.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. Pagination token that, if specified, returns the next page of
+ * search results. If empty, returns the first page.
+ * This token is returned in the
+ * [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1.SearchCatalogResponse.next_page_token]
+ * field of the response to a previous
+ * [SearchCatalogRequest][google.cloud.datacatalog.v1.DataCatalog.SearchCatalog]
+ * call.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_token = '';
+ /**
+ * Specifies the order of results.
+ * Currently supported case-sensitive values are:
+ * * `relevance` that can only be descending
+ * * `last_modified_timestamp [asc|desc]` with descending (`desc`) as default
+ * * `default` that can only be descending
+ * Search queries don't guarantee full recall. Results that match your query
+ * might not be returned, even in subsequent result pages. Additionally,
+ * returned (and not returned) results can vary if you repeat search queries.
+ * If you are experiencing recall issues and you don't have to fetch the
+ * results in any specific order, consider setting this parameter to
+ * `default`.
+ * If this parameter is omitted, it defaults to the descending `relevance`.
+ *
+ * Generated from protobuf field string order_by = 5;
+ */
+ protected $order_by = '';
+ /**
+ * Optional. If set, use searchAll permission granted on organizations from
+ * `include_org_ids` and projects from `include_project_ids` instead of the
+ * fine grained per resource permissions when filtering the search results.
+ * The only allowed `order_by` criteria for admin_search mode is `default`.
+ * Using this flags guarantees a full recall of the search results.
+ *
+ * Generated from protobuf field bool admin_search = 17 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $admin_search = false;
+
+ /**
+ * @param \Google\Cloud\DataCatalog\V1\SearchCatalogRequest\Scope $scope Required. The scope of this search request.
+ *
+ * The `scope` is invalid if `include_org_ids`, `include_project_ids` are
+ * empty AND `include_gcp_public_datasets` is set to `false`. In this case,
+ * the request returns an error.
+ * @param string $query Optional. The query string with a minimum of 3 characters and specific
+ * syntax. For more information, see [Data Catalog search
+ * syntax](https://cloud.google.com/data-catalog/docs/how-to/search-reference).
+ *
+ * An empty query string returns all data assets (in the specified scope)
+ * that you have access to.
+ *
+ * A query string can be a simple `xyz` or qualified by predicates:
+ *
+ * * `name:x`
+ * * `column:y`
+ * * `description:z`
+ *
+ * @return \Google\Cloud\DataCatalog\V1\SearchCatalogRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\DataCatalog\V1\SearchCatalogRequest\Scope $scope, string $query): self
+ {
+ return (new self())
+ ->setScope($scope)
+ ->setQuery($query);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\DataCatalog\V1\SearchCatalogRequest\Scope $scope
+ * Required. The scope of this search request.
+ * The `scope` is invalid if `include_org_ids`, `include_project_ids` are
+ * empty AND `include_gcp_public_datasets` is set to `false`. In this case,
+ * the request returns an error.
+ * @type string $query
+ * Optional. The query string with a minimum of 3 characters and specific
+ * syntax. For more information, see [Data Catalog search
+ * syntax](https://cloud.google.com/data-catalog/docs/how-to/search-reference).
+ * An empty query string returns all data assets (in the specified scope)
+ * that you have access to.
+ * A query string can be a simple `xyz` or qualified by predicates:
+ * * `name:x`
+ * * `column:y`
+ * * `description:z`
+ * @type int $page_size
+ * Upper bound on the number of results you can get in a single response.
+ * Can't be negative or 0, defaults to 10 in this case.
+ * The maximum number is 1000. If exceeded, throws an "invalid argument"
+ * exception.
+ * @type string $page_token
+ * Optional. Pagination token that, if specified, returns the next page of
+ * search results. If empty, returns the first page.
+ * This token is returned in the
+ * [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1.SearchCatalogResponse.next_page_token]
+ * field of the response to a previous
+ * [SearchCatalogRequest][google.cloud.datacatalog.v1.DataCatalog.SearchCatalog]
+ * call.
+ * @type string $order_by
+ * Specifies the order of results.
+ * Currently supported case-sensitive values are:
+ * * `relevance` that can only be descending
+ * * `last_modified_timestamp [asc|desc]` with descending (`desc`) as default
+ * * `default` that can only be descending
+ * Search queries don't guarantee full recall. Results that match your query
+ * might not be returned, even in subsequent result pages. Additionally,
+ * returned (and not returned) results can vary if you repeat search queries.
+ * If you are experiencing recall issues and you don't have to fetch the
+ * results in any specific order, consider setting this parameter to
+ * `default`.
+ * If this parameter is omitted, it defaults to the descending `relevance`.
+ * @type bool $admin_search
+ * Optional. If set, use searchAll permission granted on organizations from
+ * `include_org_ids` and projects from `include_project_ids` instead of the
+ * fine grained per resource permissions when filtering the search results.
+ * The only allowed `order_by` criteria for admin_search mode is `default`.
+ * Using this flags guarantees a full recall of the search results.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The scope of this search request.
+ * The `scope` is invalid if `include_org_ids`, `include_project_ids` are
+ * empty AND `include_gcp_public_datasets` is set to `false`. In this case,
+ * the request returns an error.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.SearchCatalogRequest.Scope scope = 6 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\DataCatalog\V1\SearchCatalogRequest\Scope|null
+ */
+ public function getScope()
+ {
+ return $this->scope;
+ }
+
+ public function hasScope()
+ {
+ return isset($this->scope);
+ }
+
+ public function clearScope()
+ {
+ unset($this->scope);
+ }
+
+ /**
+ * Required. The scope of this search request.
+ * The `scope` is invalid if `include_org_ids`, `include_project_ids` are
+ * empty AND `include_gcp_public_datasets` is set to `false`. In this case,
+ * the request returns an error.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.SearchCatalogRequest.Scope scope = 6 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\DataCatalog\V1\SearchCatalogRequest\Scope $var
+ * @return $this
+ */
+ public function setScope($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\SearchCatalogRequest\Scope::class);
+ $this->scope = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The query string with a minimum of 3 characters and specific
+ * syntax. For more information, see [Data Catalog search
+ * syntax](https://cloud.google.com/data-catalog/docs/how-to/search-reference).
+ * An empty query string returns all data assets (in the specified scope)
+ * that you have access to.
+ * A query string can be a simple `xyz` or qualified by predicates:
+ * * `name:x`
+ * * `column:y`
+ * * `description:z`
+ *
+ * Generated from protobuf field string query = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getQuery()
+ {
+ return $this->query;
+ }
+
+ /**
+ * Optional. The query string with a minimum of 3 characters and specific
+ * syntax. For more information, see [Data Catalog search
+ * syntax](https://cloud.google.com/data-catalog/docs/how-to/search-reference).
+ * An empty query string returns all data assets (in the specified scope)
+ * that you have access to.
+ * A query string can be a simple `xyz` or qualified by predicates:
+ * * `name:x`
+ * * `column:y`
+ * * `description:z`
+ *
+ * Generated from protobuf field string query = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setQuery($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->query = $var;
+
+ return $this;
+ }
+
+ /**
+ * Upper bound on the number of results you can get in a single response.
+ * Can't be negative or 0, defaults to 10 in this case.
+ * The maximum number is 1000. If exceeded, throws an "invalid argument"
+ * exception.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Upper bound on the number of results you can get in a single response.
+ * Can't be negative or 0, defaults to 10 in this case.
+ * The maximum number is 1000. If exceeded, throws an "invalid argument"
+ * exception.
+ *
+ * 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;
+ }
+
+ /**
+ * Optional. Pagination token that, if specified, returns the next page of
+ * search results. If empty, returns the first page.
+ * This token is returned in the
+ * [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1.SearchCatalogResponse.next_page_token]
+ * field of the response to a previous
+ * [SearchCatalogRequest][google.cloud.datacatalog.v1.DataCatalog.SearchCatalog]
+ * call.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Optional. Pagination token that, if specified, returns the next page of
+ * search results. If empty, returns the first page.
+ * This token is returned in the
+ * [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1.SearchCatalogResponse.next_page_token]
+ * field of the response to a previous
+ * [SearchCatalogRequest][google.cloud.datacatalog.v1.DataCatalog.SearchCatalog]
+ * 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;
+ }
+
+ /**
+ * Specifies the order of results.
+ * Currently supported case-sensitive values are:
+ * * `relevance` that can only be descending
+ * * `last_modified_timestamp [asc|desc]` with descending (`desc`) as default
+ * * `default` that can only be descending
+ * Search queries don't guarantee full recall. Results that match your query
+ * might not be returned, even in subsequent result pages. Additionally,
+ * returned (and not returned) results can vary if you repeat search queries.
+ * If you are experiencing recall issues and you don't have to fetch the
+ * results in any specific order, consider setting this parameter to
+ * `default`.
+ * If this parameter is omitted, it defaults to the descending `relevance`.
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Specifies the order of results.
+ * Currently supported case-sensitive values are:
+ * * `relevance` that can only be descending
+ * * `last_modified_timestamp [asc|desc]` with descending (`desc`) as default
+ * * `default` that can only be descending
+ * Search queries don't guarantee full recall. Results that match your query
+ * might not be returned, even in subsequent result pages. Additionally,
+ * returned (and not returned) results can vary if you repeat search queries.
+ * If you are experiencing recall issues and you don't have to fetch the
+ * results in any specific order, consider setting this parameter to
+ * `default`.
+ * If this parameter is omitted, it defaults to the descending `relevance`.
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. If set, use searchAll permission granted on organizations from
+ * `include_org_ids` and projects from `include_project_ids` instead of the
+ * fine grained per resource permissions when filtering the search results.
+ * The only allowed `order_by` criteria for admin_search mode is `default`.
+ * Using this flags guarantees a full recall of the search results.
+ *
+ * Generated from protobuf field bool admin_search = 17 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getAdminSearch()
+ {
+ return $this->admin_search;
+ }
+
+ /**
+ * Optional. If set, use searchAll permission granted on organizations from
+ * `include_org_ids` and projects from `include_project_ids` instead of the
+ * fine grained per resource permissions when filtering the search results.
+ * The only allowed `order_by` criteria for admin_search mode is `default`.
+ * Using this flags guarantees a full recall of the search results.
+ *
+ * Generated from protobuf field bool admin_search = 17 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setAdminSearch($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->admin_search = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SearchCatalogRequest/Scope.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SearchCatalogRequest/Scope.php
new file mode 100644
index 000000000000..a35f47cccbff
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SearchCatalogRequest/Scope.php
@@ -0,0 +1,313 @@
+google.cloud.datacatalog.v1.SearchCatalogRequest.Scope
+ */
+class Scope extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of organization IDs to search within.
+ * To find your organization ID, follow the steps from
+ * [Creating and managing organizations]
+ * (/resource-manager/docs/creating-managing-organization).
+ *
+ * Generated from protobuf field repeated string include_org_ids = 2;
+ */
+ private $include_org_ids;
+ /**
+ * The list of project IDs to search within.
+ * For more information on the distinction between project names, IDs, and
+ * numbers, see [Projects](/docs/overview/#projects).
+ *
+ * Generated from protobuf field repeated string include_project_ids = 3;
+ */
+ private $include_project_ids;
+ /**
+ * If `true`, include Google Cloud public datasets in
+ * search results. By default, they are excluded.
+ * See [Google Cloud Public Datasets](/public-datasets) for more
+ * information.
+ *
+ * Generated from protobuf field bool include_gcp_public_datasets = 7;
+ */
+ protected $include_gcp_public_datasets = false;
+ /**
+ * Optional. The list of locations to search within. If empty, all locations
+ * are searched.
+ * Returns an error if any location in the list isn't one of the [Supported
+ * regions](https://cloud.google.com/data-catalog/docs/concepts/regions#supported_regions).
+ * If a location is unreachable, its name is returned in the
+ * `SearchCatalogResponse.unreachable` field. To get additional information
+ * on the error, repeat the search request and set the location name as the
+ * value of this parameter.
+ *
+ * Generated from protobuf field repeated string restricted_locations = 16 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $restricted_locations;
+ /**
+ * Optional. If `true`, search only among starred entries.
+ * By default, all results are returned, starred or not.
+ *
+ * Generated from protobuf field bool starred_only = 18 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $starred_only = false;
+ /**
+ * Optional. This field is deprecated. The search mechanism for public and
+ * private tag templates is the same.
+ *
+ * Generated from protobuf field bool include_public_tag_templates = 19 [deprecated = true, (.google.api.field_behavior) = OPTIONAL];
+ * @deprecated
+ */
+ protected $include_public_tag_templates = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $include_org_ids
+ * The list of organization IDs to search within.
+ * To find your organization ID, follow the steps from
+ * [Creating and managing organizations]
+ * (/resource-manager/docs/creating-managing-organization).
+ * @type array|\Google\Protobuf\Internal\RepeatedField $include_project_ids
+ * The list of project IDs to search within.
+ * For more information on the distinction between project names, IDs, and
+ * numbers, see [Projects](/docs/overview/#projects).
+ * @type bool $include_gcp_public_datasets
+ * If `true`, include Google Cloud public datasets in
+ * search results. By default, they are excluded.
+ * See [Google Cloud Public Datasets](/public-datasets) for more
+ * information.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $restricted_locations
+ * Optional. The list of locations to search within. If empty, all locations
+ * are searched.
+ * Returns an error if any location in the list isn't one of the [Supported
+ * regions](https://cloud.google.com/data-catalog/docs/concepts/regions#supported_regions).
+ * If a location is unreachable, its name is returned in the
+ * `SearchCatalogResponse.unreachable` field. To get additional information
+ * on the error, repeat the search request and set the location name as the
+ * value of this parameter.
+ * @type bool $starred_only
+ * Optional. If `true`, search only among starred entries.
+ * By default, all results are returned, starred or not.
+ * @type bool $include_public_tag_templates
+ * Optional. This field is deprecated. The search mechanism for public and
+ * private tag templates is the same.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of organization IDs to search within.
+ * To find your organization ID, follow the steps from
+ * [Creating and managing organizations]
+ * (/resource-manager/docs/creating-managing-organization).
+ *
+ * Generated from protobuf field repeated string include_org_ids = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getIncludeOrgIds()
+ {
+ return $this->include_org_ids;
+ }
+
+ /**
+ * The list of organization IDs to search within.
+ * To find your organization ID, follow the steps from
+ * [Creating and managing organizations]
+ * (/resource-manager/docs/creating-managing-organization).
+ *
+ * Generated from protobuf field repeated string include_org_ids = 2;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setIncludeOrgIds($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->include_org_ids = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The list of project IDs to search within.
+ * For more information on the distinction between project names, IDs, and
+ * numbers, see [Projects](/docs/overview/#projects).
+ *
+ * Generated from protobuf field repeated string include_project_ids = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getIncludeProjectIds()
+ {
+ return $this->include_project_ids;
+ }
+
+ /**
+ * The list of project IDs to search within.
+ * For more information on the distinction between project names, IDs, and
+ * numbers, see [Projects](/docs/overview/#projects).
+ *
+ * Generated from protobuf field repeated string include_project_ids = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setIncludeProjectIds($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->include_project_ids = $arr;
+
+ return $this;
+ }
+
+ /**
+ * If `true`, include Google Cloud public datasets in
+ * search results. By default, they are excluded.
+ * See [Google Cloud Public Datasets](/public-datasets) for more
+ * information.
+ *
+ * Generated from protobuf field bool include_gcp_public_datasets = 7;
+ * @return bool
+ */
+ public function getIncludeGcpPublicDatasets()
+ {
+ return $this->include_gcp_public_datasets;
+ }
+
+ /**
+ * If `true`, include Google Cloud public datasets in
+ * search results. By default, they are excluded.
+ * See [Google Cloud Public Datasets](/public-datasets) for more
+ * information.
+ *
+ * Generated from protobuf field bool include_gcp_public_datasets = 7;
+ * @param bool $var
+ * @return $this
+ */
+ public function setIncludeGcpPublicDatasets($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->include_gcp_public_datasets = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The list of locations to search within. If empty, all locations
+ * are searched.
+ * Returns an error if any location in the list isn't one of the [Supported
+ * regions](https://cloud.google.com/data-catalog/docs/concepts/regions#supported_regions).
+ * If a location is unreachable, its name is returned in the
+ * `SearchCatalogResponse.unreachable` field. To get additional information
+ * on the error, repeat the search request and set the location name as the
+ * value of this parameter.
+ *
+ * Generated from protobuf field repeated string restricted_locations = 16 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRestrictedLocations()
+ {
+ return $this->restricted_locations;
+ }
+
+ /**
+ * Optional. The list of locations to search within. If empty, all locations
+ * are searched.
+ * Returns an error if any location in the list isn't one of the [Supported
+ * regions](https://cloud.google.com/data-catalog/docs/concepts/regions#supported_regions).
+ * If a location is unreachable, its name is returned in the
+ * `SearchCatalogResponse.unreachable` field. To get additional information
+ * on the error, repeat the search request and set the location name as the
+ * value of this parameter.
+ *
+ * Generated from protobuf field repeated string restricted_locations = 16 [(.google.api.field_behavior) = OPTIONAL];
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRestrictedLocations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->restricted_locations = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Optional. If `true`, search only among starred entries.
+ * By default, all results are returned, starred or not.
+ *
+ * Generated from protobuf field bool starred_only = 18 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getStarredOnly()
+ {
+ return $this->starred_only;
+ }
+
+ /**
+ * Optional. If `true`, search only among starred entries.
+ * By default, all results are returned, starred or not.
+ *
+ * Generated from protobuf field bool starred_only = 18 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setStarredOnly($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->starred_only = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. This field is deprecated. The search mechanism for public and
+ * private tag templates is the same.
+ *
+ * Generated from protobuf field bool include_public_tag_templates = 19 [deprecated = true, (.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ * @deprecated
+ */
+ public function getIncludePublicTagTemplates()
+ {
+ @trigger_error('include_public_tag_templates is deprecated.', E_USER_DEPRECATED);
+ return $this->include_public_tag_templates;
+ }
+
+ /**
+ * Optional. This field is deprecated. The search mechanism for public and
+ * private tag templates is the same.
+ *
+ * Generated from protobuf field bool include_public_tag_templates = 19 [deprecated = true, (.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ * @deprecated
+ */
+ public function setIncludePublicTagTemplates($var)
+ {
+ @trigger_error('include_public_tag_templates is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkBool($var);
+ $this->include_public_tag_templates = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Scope::class, \Google\Cloud\DataCatalog\V1\SearchCatalogRequest_Scope::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SearchCatalogResponse.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SearchCatalogResponse.php
new file mode 100644
index 000000000000..bb2e4e0c3c8a
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SearchCatalogResponse.php
@@ -0,0 +1,190 @@
+google.cloud.datacatalog.v1.SearchCatalogResponse
+ */
+class SearchCatalogResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Search results.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.SearchCatalogResult results = 1;
+ */
+ private $results;
+ /**
+ * The approximate total number of entries matched by the query.
+ *
+ * Generated from protobuf field int32 total_size = 2;
+ */
+ protected $total_size = 0;
+ /**
+ * Pagination token that can be used in subsequent calls to retrieve the next
+ * page of results.
+ *
+ * Generated from protobuf field string next_page_token = 3;
+ */
+ protected $next_page_token = '';
+ /**
+ * Unreachable locations. Search results don't include data from those
+ * locations.
+ * To get additional information on an error, repeat the search request and
+ * restrict it to specific locations by setting the
+ * `SearchCatalogRequest.scope.restricted_locations` parameter.
+ *
+ * Generated from protobuf field repeated string unreachable = 6;
+ */
+ private $unreachable;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\DataCatalog\V1\SearchCatalogResult>|\Google\Protobuf\Internal\RepeatedField $results
+ * Search results.
+ * @type int $total_size
+ * The approximate total number of entries matched by the query.
+ * @type string $next_page_token
+ * Pagination token that can be used in subsequent calls to retrieve the next
+ * page of results.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $unreachable
+ * Unreachable locations. Search results don't include data from those
+ * locations.
+ * To get additional information on an error, repeat the search request and
+ * restrict it to specific locations by setting the
+ * `SearchCatalogRequest.scope.restricted_locations` parameter.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Search results.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.SearchCatalogResult results = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getResults()
+ {
+ return $this->results;
+ }
+
+ /**
+ * Search results.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.SearchCatalogResult results = 1;
+ * @param array<\Google\Cloud\DataCatalog\V1\SearchCatalogResult>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setResults($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\DataCatalog\V1\SearchCatalogResult::class);
+ $this->results = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The approximate total number of entries matched by the query.
+ *
+ * Generated from protobuf field int32 total_size = 2;
+ * @return int
+ */
+ public function getTotalSize()
+ {
+ return $this->total_size;
+ }
+
+ /**
+ * The approximate total number of entries matched by the query.
+ *
+ * Generated from protobuf field int32 total_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setTotalSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->total_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * Pagination token that can be used in subsequent calls to retrieve the next
+ * page of results.
+ *
+ * Generated from protobuf field string next_page_token = 3;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * Pagination token that can be used in subsequent calls to retrieve the next
+ * page of results.
+ *
+ * Generated from protobuf field string next_page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Unreachable locations. Search results don't include data from those
+ * locations.
+ * To get additional information on an error, repeat the search request and
+ * restrict it to specific locations by setting the
+ * `SearchCatalogRequest.scope.restricted_locations` parameter.
+ *
+ * Generated from protobuf field repeated string unreachable = 6;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUnreachable()
+ {
+ return $this->unreachable;
+ }
+
+ /**
+ * Unreachable locations. Search results don't include data from those
+ * locations.
+ * To get additional information on an error, repeat the search request and
+ * restrict it to specific locations by setting the
+ * `SearchCatalogRequest.scope.restricted_locations` parameter.
+ *
+ * Generated from protobuf field repeated string unreachable = 6;
+ * @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/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SearchCatalogResult.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SearchCatalogResult.php
new file mode 100644
index 000000000000..3e4c505fd6a7
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SearchCatalogResult.php
@@ -0,0 +1,474 @@
+google.cloud.datacatalog.v1.SearchCatalogResult
+ */
+class SearchCatalogResult extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Type of the search result.
+ * You can use this field to determine which get method to call to fetch the
+ * full resource.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.SearchResultType search_result_type = 1;
+ */
+ protected $search_result_type = 0;
+ /**
+ * Sub-type of the search result.
+ * A dot-delimited full type of the resource. The same type you
+ * specify in the `type` search predicate.
+ * Examples: `entry.table`, `entry.dataStream`, `tagTemplate`.
+ *
+ * Generated from protobuf field string search_result_subtype = 2;
+ */
+ protected $search_result_subtype = '';
+ /**
+ * The relative name of the resource in URL format.
+ * Examples:
+ * * `projects/{PROJECT_ID}/locations/{LOCATION_ID}/entryGroups/{ENTRY_GROUP_ID}/entries/{ENTRY_ID}`
+ * * `projects/{PROJECT_ID}/tagTemplates/{TAG_TEMPLATE_ID}`
+ *
+ * Generated from protobuf field string relative_resource_name = 3;
+ */
+ protected $relative_resource_name = '';
+ /**
+ * The full name of the Google Cloud resource the entry belongs to.
+ * For more information, see [Full Resource Name]
+ * (/apis/design/resource_names#full_resource_name).
+ * Example:
+ * `//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID`
+ *
+ * Generated from protobuf field string linked_resource = 4;
+ */
+ protected $linked_resource = '';
+ /**
+ * The last modification timestamp of the entry in the source system.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp modify_time = 7;
+ */
+ protected $modify_time = null;
+ /**
+ * Fully qualified name (FQN) of the resource.
+ * FQNs take two forms:
+ * * For non-regionalized resources:
+ * `{SYSTEM}:{PROJECT}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}`
+ * * For regionalized resources:
+ * `{SYSTEM}:{PROJECT}.{LOCATION_ID}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}`
+ * Example for a DPMS table:
+ * `dataproc_metastore:PROJECT_ID.LOCATION_ID.INSTANCE_ID.DATABASE_ID.TABLE_ID`
+ *
+ * Generated from protobuf field string fully_qualified_name = 10;
+ */
+ protected $fully_qualified_name = '';
+ /**
+ * The display name of the result.
+ *
+ * Generated from protobuf field string display_name = 12;
+ */
+ protected $display_name = '';
+ /**
+ * Entry description that can consist of several sentences or paragraphs that
+ * describe entry contents.
+ *
+ * Generated from protobuf field string description = 13;
+ */
+ protected $description = '';
+ protected $system;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $search_result_type
+ * Type of the search result.
+ * You can use this field to determine which get method to call to fetch the
+ * full resource.
+ * @type string $search_result_subtype
+ * Sub-type of the search result.
+ * A dot-delimited full type of the resource. The same type you
+ * specify in the `type` search predicate.
+ * Examples: `entry.table`, `entry.dataStream`, `tagTemplate`.
+ * @type string $relative_resource_name
+ * The relative name of the resource in URL format.
+ * Examples:
+ * * `projects/{PROJECT_ID}/locations/{LOCATION_ID}/entryGroups/{ENTRY_GROUP_ID}/entries/{ENTRY_ID}`
+ * * `projects/{PROJECT_ID}/tagTemplates/{TAG_TEMPLATE_ID}`
+ * @type string $linked_resource
+ * The full name of the Google Cloud resource the entry belongs to.
+ * For more information, see [Full Resource Name]
+ * (/apis/design/resource_names#full_resource_name).
+ * Example:
+ * `//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID`
+ * @type \Google\Protobuf\Timestamp $modify_time
+ * The last modification timestamp of the entry in the source system.
+ * @type int $integrated_system
+ * Output only. The source system that Data Catalog automatically integrates
+ * with, such as BigQuery, Cloud Pub/Sub, or Dataproc Metastore.
+ * @type string $user_specified_system
+ * Custom source system that you can manually integrate Data Catalog with.
+ * @type string $fully_qualified_name
+ * Fully qualified name (FQN) of the resource.
+ * FQNs take two forms:
+ * * For non-regionalized resources:
+ * `{SYSTEM}:{PROJECT}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}`
+ * * For regionalized resources:
+ * `{SYSTEM}:{PROJECT}.{LOCATION_ID}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}`
+ * Example for a DPMS table:
+ * `dataproc_metastore:PROJECT_ID.LOCATION_ID.INSTANCE_ID.DATABASE_ID.TABLE_ID`
+ * @type string $display_name
+ * The display name of the result.
+ * @type string $description
+ * Entry description that can consist of several sentences or paragraphs that
+ * describe entry contents.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Search::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Type of the search result.
+ * You can use this field to determine which get method to call to fetch the
+ * full resource.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.SearchResultType search_result_type = 1;
+ * @return int
+ */
+ public function getSearchResultType()
+ {
+ return $this->search_result_type;
+ }
+
+ /**
+ * Type of the search result.
+ * You can use this field to determine which get method to call to fetch the
+ * full resource.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.SearchResultType search_result_type = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setSearchResultType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\DataCatalog\V1\SearchResultType::class);
+ $this->search_result_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sub-type of the search result.
+ * A dot-delimited full type of the resource. The same type you
+ * specify in the `type` search predicate.
+ * Examples: `entry.table`, `entry.dataStream`, `tagTemplate`.
+ *
+ * Generated from protobuf field string search_result_subtype = 2;
+ * @return string
+ */
+ public function getSearchResultSubtype()
+ {
+ return $this->search_result_subtype;
+ }
+
+ /**
+ * Sub-type of the search result.
+ * A dot-delimited full type of the resource. The same type you
+ * specify in the `type` search predicate.
+ * Examples: `entry.table`, `entry.dataStream`, `tagTemplate`.
+ *
+ * Generated from protobuf field string search_result_subtype = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setSearchResultSubtype($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->search_result_subtype = $var;
+
+ return $this;
+ }
+
+ /**
+ * The relative name of the resource in URL format.
+ * Examples:
+ * * `projects/{PROJECT_ID}/locations/{LOCATION_ID}/entryGroups/{ENTRY_GROUP_ID}/entries/{ENTRY_ID}`
+ * * `projects/{PROJECT_ID}/tagTemplates/{TAG_TEMPLATE_ID}`
+ *
+ * Generated from protobuf field string relative_resource_name = 3;
+ * @return string
+ */
+ public function getRelativeResourceName()
+ {
+ return $this->relative_resource_name;
+ }
+
+ /**
+ * The relative name of the resource in URL format.
+ * Examples:
+ * * `projects/{PROJECT_ID}/locations/{LOCATION_ID}/entryGroups/{ENTRY_GROUP_ID}/entries/{ENTRY_ID}`
+ * * `projects/{PROJECT_ID}/tagTemplates/{TAG_TEMPLATE_ID}`
+ *
+ * Generated from protobuf field string relative_resource_name = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setRelativeResourceName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->relative_resource_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The full name of the Google Cloud resource the entry belongs to.
+ * For more information, see [Full Resource Name]
+ * (/apis/design/resource_names#full_resource_name).
+ * Example:
+ * `//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID`
+ *
+ * Generated from protobuf field string linked_resource = 4;
+ * @return string
+ */
+ public function getLinkedResource()
+ {
+ return $this->linked_resource;
+ }
+
+ /**
+ * The full name of the Google Cloud resource the entry belongs to.
+ * For more information, see [Full Resource Name]
+ * (/apis/design/resource_names#full_resource_name).
+ * Example:
+ * `//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID`
+ *
+ * Generated from protobuf field string linked_resource = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setLinkedResource($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->linked_resource = $var;
+
+ return $this;
+ }
+
+ /**
+ * The last modification timestamp of the entry in the source system.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp modify_time = 7;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getModifyTime()
+ {
+ return $this->modify_time;
+ }
+
+ public function hasModifyTime()
+ {
+ return isset($this->modify_time);
+ }
+
+ public function clearModifyTime()
+ {
+ unset($this->modify_time);
+ }
+
+ /**
+ * The last modification timestamp of the entry in the source system.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp modify_time = 7;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setModifyTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->modify_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The source system that Data Catalog automatically integrates
+ * with, such as BigQuery, Cloud Pub/Sub, or Dataproc Metastore.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.IntegratedSystem integrated_system = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getIntegratedSystem()
+ {
+ return $this->readOneof(8);
+ }
+
+ public function hasIntegratedSystem()
+ {
+ return $this->hasOneof(8);
+ }
+
+ /**
+ * Output only. The source system that Data Catalog automatically integrates
+ * with, such as BigQuery, Cloud Pub/Sub, or Dataproc Metastore.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.IntegratedSystem integrated_system = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setIntegratedSystem($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\DataCatalog\V1\IntegratedSystem::class);
+ $this->writeOneof(8, $var);
+
+ return $this;
+ }
+
+ /**
+ * Custom source system that you can manually integrate Data Catalog with.
+ *
+ * Generated from protobuf field string user_specified_system = 9;
+ * @return string
+ */
+ public function getUserSpecifiedSystem()
+ {
+ return $this->readOneof(9);
+ }
+
+ public function hasUserSpecifiedSystem()
+ {
+ return $this->hasOneof(9);
+ }
+
+ /**
+ * Custom source system that you can manually integrate Data Catalog with.
+ *
+ * Generated from protobuf field string user_specified_system = 9;
+ * @param string $var
+ * @return $this
+ */
+ public function setUserSpecifiedSystem($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(9, $var);
+
+ return $this;
+ }
+
+ /**
+ * Fully qualified name (FQN) of the resource.
+ * FQNs take two forms:
+ * * For non-regionalized resources:
+ * `{SYSTEM}:{PROJECT}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}`
+ * * For regionalized resources:
+ * `{SYSTEM}:{PROJECT}.{LOCATION_ID}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}`
+ * Example for a DPMS table:
+ * `dataproc_metastore:PROJECT_ID.LOCATION_ID.INSTANCE_ID.DATABASE_ID.TABLE_ID`
+ *
+ * Generated from protobuf field string fully_qualified_name = 10;
+ * @return string
+ */
+ public function getFullyQualifiedName()
+ {
+ return $this->fully_qualified_name;
+ }
+
+ /**
+ * Fully qualified name (FQN) of the resource.
+ * FQNs take two forms:
+ * * For non-regionalized resources:
+ * `{SYSTEM}:{PROJECT}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}`
+ * * For regionalized resources:
+ * `{SYSTEM}:{PROJECT}.{LOCATION_ID}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}`
+ * Example for a DPMS table:
+ * `dataproc_metastore:PROJECT_ID.LOCATION_ID.INSTANCE_ID.DATABASE_ID.TABLE_ID`
+ *
+ * Generated from protobuf field string fully_qualified_name = 10;
+ * @param string $var
+ * @return $this
+ */
+ public function setFullyQualifiedName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->fully_qualified_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The display name of the result.
+ *
+ * Generated from protobuf field string display_name = 12;
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * The display name of the result.
+ *
+ * Generated from protobuf field string display_name = 12;
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Entry description that can consist of several sentences or paragraphs that
+ * describe entry contents.
+ *
+ * Generated from protobuf field string description = 13;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Entry description that can consist of several sentences or paragraphs that
+ * describe entry contents.
+ *
+ * Generated from protobuf field string description = 13;
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getSystem()
+ {
+ return $this->whichOneof("system");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SearchResultType.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SearchResultType.php
new file mode 100644
index 000000000000..e388bd8d63d1
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SearchResultType.php
@@ -0,0 +1,68 @@
+google.cloud.datacatalog.v1.SearchResultType
+ */
+class SearchResultType
+{
+ /**
+ * Default unknown type.
+ *
+ * Generated from protobuf enum SEARCH_RESULT_TYPE_UNSPECIFIED = 0;
+ */
+ const SEARCH_RESULT_TYPE_UNSPECIFIED = 0;
+ /**
+ * An [Entry][google.cloud.datacatalog.v1.Entry].
+ *
+ * Generated from protobuf enum ENTRY = 1;
+ */
+ const ENTRY = 1;
+ /**
+ * A [TagTemplate][google.cloud.datacatalog.v1.TagTemplate].
+ *
+ * Generated from protobuf enum TAG_TEMPLATE = 2;
+ */
+ const TAG_TEMPLATE = 2;
+ /**
+ * An [EntryGroup][google.cloud.datacatalog.v1.EntryGroup].
+ *
+ * Generated from protobuf enum ENTRY_GROUP = 3;
+ */
+ const ENTRY_GROUP = 3;
+
+ private static $valueToName = [
+ self::SEARCH_RESULT_TYPE_UNSPECIFIED => 'SEARCH_RESULT_TYPE_UNSPECIFIED',
+ self::ENTRY => 'ENTRY',
+ self::TAG_TEMPLATE => 'TAG_TEMPLATE',
+ self::ENTRY_GROUP => 'ENTRY_GROUP',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SerializedPolicyTag.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SerializedPolicyTag.php
new file mode 100644
index 000000000000..aeeefe02d21f
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SerializedPolicyTag.php
@@ -0,0 +1,186 @@
+google.cloud.datacatalog.v1.SerializedPolicyTag
+ */
+class SerializedPolicyTag extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Resource name of the policy tag.
+ * This field is ignored when calling `ImportTaxonomies`.
+ *
+ * Generated from protobuf field string policy_tag = 1;
+ */
+ protected $policy_tag = '';
+ /**
+ * Required. Display name of the policy tag. At most 200 bytes when encoded
+ * in UTF-8.
+ *
+ * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $display_name = '';
+ /**
+ * Description of the serialized policy tag. At most
+ * 2000 bytes when encoded in UTF-8. If not set, defaults to an
+ * empty description.
+ *
+ * Generated from protobuf field string description = 3;
+ */
+ protected $description = '';
+ /**
+ * Children of the policy tag, if any.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.SerializedPolicyTag child_policy_tags = 4;
+ */
+ private $child_policy_tags;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $policy_tag
+ * Resource name of the policy tag.
+ * This field is ignored when calling `ImportTaxonomies`.
+ * @type string $display_name
+ * Required. Display name of the policy tag. At most 200 bytes when encoded
+ * in UTF-8.
+ * @type string $description
+ * Description of the serialized policy tag. At most
+ * 2000 bytes when encoded in UTF-8. If not set, defaults to an
+ * empty description.
+ * @type array<\Google\Cloud\DataCatalog\V1\SerializedPolicyTag>|\Google\Protobuf\Internal\RepeatedField $child_policy_tags
+ * Children of the policy tag, if any.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Policytagmanagerserialization::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Resource name of the policy tag.
+ * This field is ignored when calling `ImportTaxonomies`.
+ *
+ * Generated from protobuf field string policy_tag = 1;
+ * @return string
+ */
+ public function getPolicyTag()
+ {
+ return $this->policy_tag;
+ }
+
+ /**
+ * Resource name of the policy tag.
+ * This field is ignored when calling `ImportTaxonomies`.
+ *
+ * Generated from protobuf field string policy_tag = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setPolicyTag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->policy_tag = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Display name of the policy tag. At most 200 bytes when encoded
+ * in UTF-8.
+ *
+ * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * Required. Display name of the policy tag. At most 200 bytes when encoded
+ * in UTF-8.
+ *
+ * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Description of the serialized policy tag. At most
+ * 2000 bytes when encoded in UTF-8. If not set, defaults to an
+ * empty description.
+ *
+ * Generated from protobuf field string description = 3;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Description of the serialized policy tag. At most
+ * 2000 bytes when encoded in UTF-8. If not set, defaults to an
+ * empty description.
+ *
+ * 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;
+ }
+
+ /**
+ * Children of the policy tag, if any.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.SerializedPolicyTag child_policy_tags = 4;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getChildPolicyTags()
+ {
+ return $this->child_policy_tags;
+ }
+
+ /**
+ * Children of the policy tag, if any.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.SerializedPolicyTag child_policy_tags = 4;
+ * @param array<\Google\Cloud\DataCatalog\V1\SerializedPolicyTag>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setChildPolicyTags($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\DataCatalog\V1\SerializedPolicyTag::class);
+ $this->child_policy_tags = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SerializedTaxonomy.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SerializedTaxonomy.php
new file mode 100644
index 000000000000..f8186a5ec8bb
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SerializedTaxonomy.php
@@ -0,0 +1,179 @@
+google.cloud.datacatalog.v1.SerializedTaxonomy
+ */
+class SerializedTaxonomy extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Display name of the taxonomy. At most 200 bytes when encoded in
+ * UTF-8.
+ *
+ * Generated from protobuf field string display_name = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $display_name = '';
+ /**
+ * Description of the serialized taxonomy. At most 2000 bytes when
+ * encoded in UTF-8. If not set, defaults to an empty description.
+ *
+ * Generated from protobuf field string description = 2;
+ */
+ protected $description = '';
+ /**
+ * Top level policy tags associated with the taxonomy, if any.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.SerializedPolicyTag policy_tags = 3;
+ */
+ private $policy_tags;
+ /**
+ * A list of policy types that are activated per taxonomy.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Taxonomy.PolicyType activated_policy_types = 4;
+ */
+ private $activated_policy_types;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $display_name
+ * Required. Display name of the taxonomy. At most 200 bytes when encoded in
+ * UTF-8.
+ * @type string $description
+ * Description of the serialized taxonomy. At most 2000 bytes when
+ * encoded in UTF-8. If not set, defaults to an empty description.
+ * @type array<\Google\Cloud\DataCatalog\V1\SerializedPolicyTag>|\Google\Protobuf\Internal\RepeatedField $policy_tags
+ * Top level policy tags associated with the taxonomy, if any.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $activated_policy_types
+ * A list of policy types that are activated per taxonomy.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Policytagmanagerserialization::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Display name of the taxonomy. At most 200 bytes when encoded in
+ * UTF-8.
+ *
+ * Generated from protobuf field string display_name = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * Required. Display name of the taxonomy. At most 200 bytes when encoded in
+ * UTF-8.
+ *
+ * Generated from protobuf field string display_name = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Description of the serialized taxonomy. At most 2000 bytes when
+ * encoded in UTF-8. If not set, defaults to an empty description.
+ *
+ * Generated from protobuf field string description = 2;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Description of the serialized taxonomy. At most 2000 bytes when
+ * encoded in UTF-8. If not set, defaults to an empty description.
+ *
+ * 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;
+ }
+
+ /**
+ * Top level policy tags associated with the taxonomy, if any.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.SerializedPolicyTag policy_tags = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getPolicyTags()
+ {
+ return $this->policy_tags;
+ }
+
+ /**
+ * Top level policy tags associated with the taxonomy, if any.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.SerializedPolicyTag policy_tags = 3;
+ * @param array<\Google\Cloud\DataCatalog\V1\SerializedPolicyTag>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setPolicyTags($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\DataCatalog\V1\SerializedPolicyTag::class);
+ $this->policy_tags = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A list of policy types that are activated per taxonomy.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Taxonomy.PolicyType activated_policy_types = 4;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getActivatedPolicyTypes()
+ {
+ return $this->activated_policy_types;
+ }
+
+ /**
+ * A list of policy types that are activated per taxonomy.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Taxonomy.PolicyType activated_policy_types = 4;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setActivatedPolicyTypes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::ENUM, \Google\Cloud\DataCatalog\V1\Taxonomy\PolicyType::class);
+ $this->activated_policy_types = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ServiceSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ServiceSpec.php
new file mode 100644
index 000000000000..8fbbf96c1866
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ServiceSpec.php
@@ -0,0 +1,79 @@
+google.cloud.datacatalog.v1.ServiceSpec
+ */
+class ServiceSpec extends \Google\Protobuf\Internal\Message
+{
+ protected $system_spec;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\DataCatalog\V1\CloudBigtableInstanceSpec $cloud_bigtable_instance_spec
+ * Specification that applies to Instance entries of `CLOUD_BIGTABLE`
+ * system.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Specification that applies to Instance entries of `CLOUD_BIGTABLE`
+ * system.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.CloudBigtableInstanceSpec cloud_bigtable_instance_spec = 1;
+ * @return \Google\Cloud\DataCatalog\V1\CloudBigtableInstanceSpec|null
+ */
+ public function getCloudBigtableInstanceSpec()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasCloudBigtableInstanceSpec()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Specification that applies to Instance entries of `CLOUD_BIGTABLE`
+ * system.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.CloudBigtableInstanceSpec cloud_bigtable_instance_spec = 1;
+ * @param \Google\Cloud\DataCatalog\V1\CloudBigtableInstanceSpec $var
+ * @return $this
+ */
+ public function setCloudBigtableInstanceSpec($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\CloudBigtableInstanceSpec::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getSystemSpec()
+ {
+ return $this->whichOneof("system_spec");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SqlDatabaseSystemSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SqlDatabaseSystemSpec.php
new file mode 100644
index 000000000000..86661c30183d
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SqlDatabaseSystemSpec.php
@@ -0,0 +1,197 @@
+google.cloud.datacatalog.v1.SqlDatabaseSystemSpec
+ */
+class SqlDatabaseSystemSpec extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * SQL Database Engine.
+ * enum SqlEngine {
+ * UNDEFINED = 0;
+ * MY_SQL = 1;
+ * POSTGRE_SQL = 2;
+ * SQL_SERVER = 3;
+ * }
+ * Engine of the enclosing database instance.
+ *
+ * Generated from protobuf field string sql_engine = 1;
+ */
+ protected $sql_engine = '';
+ /**
+ * Version of the database engine.
+ *
+ * Generated from protobuf field string database_version = 2;
+ */
+ protected $database_version = '';
+ /**
+ * Host of the SQL database
+ * enum InstanceHost {
+ * UNDEFINED = 0;
+ * SELF_HOSTED = 1;
+ * CLOUD_SQL = 2;
+ * AMAZON_RDS = 3;
+ * AZURE_SQL = 4;
+ * }
+ * Host of the enclousing database instance.
+ *
+ * Generated from protobuf field string instance_host = 3;
+ */
+ protected $instance_host = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $sql_engine
+ * SQL Database Engine.
+ * enum SqlEngine {
+ * UNDEFINED = 0;
+ * MY_SQL = 1;
+ * POSTGRE_SQL = 2;
+ * SQL_SERVER = 3;
+ * }
+ * Engine of the enclosing database instance.
+ * @type string $database_version
+ * Version of the database engine.
+ * @type string $instance_host
+ * Host of the SQL database
+ * enum InstanceHost {
+ * UNDEFINED = 0;
+ * SELF_HOSTED = 1;
+ * CLOUD_SQL = 2;
+ * AMAZON_RDS = 3;
+ * AZURE_SQL = 4;
+ * }
+ * Host of the enclousing database instance.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * SQL Database Engine.
+ * enum SqlEngine {
+ * UNDEFINED = 0;
+ * MY_SQL = 1;
+ * POSTGRE_SQL = 2;
+ * SQL_SERVER = 3;
+ * }
+ * Engine of the enclosing database instance.
+ *
+ * Generated from protobuf field string sql_engine = 1;
+ * @return string
+ */
+ public function getSqlEngine()
+ {
+ return $this->sql_engine;
+ }
+
+ /**
+ * SQL Database Engine.
+ * enum SqlEngine {
+ * UNDEFINED = 0;
+ * MY_SQL = 1;
+ * POSTGRE_SQL = 2;
+ * SQL_SERVER = 3;
+ * }
+ * Engine of the enclosing database instance.
+ *
+ * Generated from protobuf field string sql_engine = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setSqlEngine($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->sql_engine = $var;
+
+ return $this;
+ }
+
+ /**
+ * Version of the database engine.
+ *
+ * Generated from protobuf field string database_version = 2;
+ * @return string
+ */
+ public function getDatabaseVersion()
+ {
+ return $this->database_version;
+ }
+
+ /**
+ * Version of the database engine.
+ *
+ * Generated from protobuf field string database_version = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setDatabaseVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->database_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * Host of the SQL database
+ * enum InstanceHost {
+ * UNDEFINED = 0;
+ * SELF_HOSTED = 1;
+ * CLOUD_SQL = 2;
+ * AMAZON_RDS = 3;
+ * AZURE_SQL = 4;
+ * }
+ * Host of the enclousing database instance.
+ *
+ * Generated from protobuf field string instance_host = 3;
+ * @return string
+ */
+ public function getInstanceHost()
+ {
+ return $this->instance_host;
+ }
+
+ /**
+ * Host of the SQL database
+ * enum InstanceHost {
+ * UNDEFINED = 0;
+ * SELF_HOSTED = 1;
+ * CLOUD_SQL = 2;
+ * AMAZON_RDS = 3;
+ * AZURE_SQL = 4;
+ * }
+ * Host of the enclousing database instance.
+ *
+ * Generated from protobuf field string instance_host = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setInstanceHost($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->instance_host = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/StarEntryRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/StarEntryRequest.php
new file mode 100644
index 000000000000..53f0422fc6a5
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/StarEntryRequest.php
@@ -0,0 +1,82 @@
+google.cloud.datacatalog.v1.StarEntryRequest
+ */
+class StarEntryRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the entry to mark as starred.
+ *
+ * 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 entry to mark as starred. Please see
+ * {@see DataCatalogClient::entryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\StarEntryRequest
+ *
+ * @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 entry to mark as starred.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the entry to mark as starred.
+ *
+ * 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 entry to mark as starred.
+ *
+ * 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/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/StarEntryResponse.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/StarEntryResponse.php
new file mode 100644
index 000000000000..b54212bdfbf4
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/StarEntryResponse.php
@@ -0,0 +1,35 @@
+google.cloud.datacatalog.v1.StarEntryResponse
+ */
+class StarEntryResponse extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/StorageProperties.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/StorageProperties.php
new file mode 100644
index 000000000000..f750dbc3b49a
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/StorageProperties.php
@@ -0,0 +1,169 @@
+google.cloud.datacatalog.v1.StorageProperties
+ */
+class StorageProperties extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Patterns to identify a set of files for this fileset.
+ * Examples of a valid `file_pattern`:
+ * * `gs://bucket_name/dir/*`: matches all files in the `bucket_name/dir`
+ * directory
+ * * `gs://bucket_name/dir/**`: matches all files in the `bucket_name/dir`
+ * and all subdirectories recursively
+ * * `gs://bucket_name/file*`: matches files prefixed by `file` in
+ * `bucket_name`
+ * * `gs://bucket_name/??.txt`: matches files with two characters followed by
+ * `.txt` in `bucket_name`
+ * * `gs://bucket_name/[aeiou].txt`: matches files that contain a single
+ * vowel character followed by `.txt` in
+ * `bucket_name`
+ * * `gs://bucket_name/[a-m].txt`: matches files that contain `a`, `b`, ...
+ * or `m` followed by `.txt` in `bucket_name`
+ * * `gs://bucket_name/a/*/b`: matches all files in `bucket_name` that match
+ * the `a/*/b` pattern, such as `a/c/b`, `a/d/b`
+ * * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`
+ *
+ * Generated from protobuf field repeated string file_pattern = 1;
+ */
+ private $file_pattern;
+ /**
+ * File type in MIME format, for example, `text/plain`.
+ *
+ * Generated from protobuf field string file_type = 2;
+ */
+ protected $file_type = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $file_pattern
+ * Patterns to identify a set of files for this fileset.
+ * Examples of a valid `file_pattern`:
+ * * `gs://bucket_name/dir/*`: matches all files in the `bucket_name/dir`
+ * directory
+ * * `gs://bucket_name/dir/**`: matches all files in the `bucket_name/dir`
+ * and all subdirectories recursively
+ * * `gs://bucket_name/file*`: matches files prefixed by `file` in
+ * `bucket_name`
+ * * `gs://bucket_name/??.txt`: matches files with two characters followed by
+ * `.txt` in `bucket_name`
+ * * `gs://bucket_name/[aeiou].txt`: matches files that contain a single
+ * vowel character followed by `.txt` in
+ * `bucket_name`
+ * * `gs://bucket_name/[a-m].txt`: matches files that contain `a`, `b`, ...
+ * or `m` followed by `.txt` in `bucket_name`
+ * * `gs://bucket_name/a/*/b`: matches all files in `bucket_name` that match
+ * the `a/*/b` pattern, such as `a/c/b`, `a/d/b`
+ * * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`
+ * @type string $file_type
+ * File type in MIME format, for example, `text/plain`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\DataSource::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Patterns to identify a set of files for this fileset.
+ * Examples of a valid `file_pattern`:
+ * * `gs://bucket_name/dir/*`: matches all files in the `bucket_name/dir`
+ * directory
+ * * `gs://bucket_name/dir/**`: matches all files in the `bucket_name/dir`
+ * and all subdirectories recursively
+ * * `gs://bucket_name/file*`: matches files prefixed by `file` in
+ * `bucket_name`
+ * * `gs://bucket_name/??.txt`: matches files with two characters followed by
+ * `.txt` in `bucket_name`
+ * * `gs://bucket_name/[aeiou].txt`: matches files that contain a single
+ * vowel character followed by `.txt` in
+ * `bucket_name`
+ * * `gs://bucket_name/[a-m].txt`: matches files that contain `a`, `b`, ...
+ * or `m` followed by `.txt` in `bucket_name`
+ * * `gs://bucket_name/a/*/b`: matches all files in `bucket_name` that match
+ * the `a/*/b` pattern, such as `a/c/b`, `a/d/b`
+ * * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`
+ *
+ * Generated from protobuf field repeated string file_pattern = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getFilePattern()
+ {
+ return $this->file_pattern;
+ }
+
+ /**
+ * Patterns to identify a set of files for this fileset.
+ * Examples of a valid `file_pattern`:
+ * * `gs://bucket_name/dir/*`: matches all files in the `bucket_name/dir`
+ * directory
+ * * `gs://bucket_name/dir/**`: matches all files in the `bucket_name/dir`
+ * and all subdirectories recursively
+ * * `gs://bucket_name/file*`: matches files prefixed by `file` in
+ * `bucket_name`
+ * * `gs://bucket_name/??.txt`: matches files with two characters followed by
+ * `.txt` in `bucket_name`
+ * * `gs://bucket_name/[aeiou].txt`: matches files that contain a single
+ * vowel character followed by `.txt` in
+ * `bucket_name`
+ * * `gs://bucket_name/[a-m].txt`: matches files that contain `a`, `b`, ...
+ * or `m` followed by `.txt` in `bucket_name`
+ * * `gs://bucket_name/a/*/b`: matches all files in `bucket_name` that match
+ * the `a/*/b` pattern, such as `a/c/b`, `a/d/b`
+ * * `gs://another_bucket/a.txt`: matches `gs://another_bucket/a.txt`
+ *
+ * Generated from protobuf field repeated string file_pattern = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setFilePattern($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->file_pattern = $arr;
+
+ return $this;
+ }
+
+ /**
+ * File type in MIME format, for example, `text/plain`.
+ *
+ * Generated from protobuf field string file_type = 2;
+ * @return string
+ */
+ public function getFileType()
+ {
+ return $this->file_type;
+ }
+
+ /**
+ * File type in MIME format, for example, `text/plain`.
+ *
+ * Generated from protobuf field string file_type = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setFileType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->file_type = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SystemTimestamps.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SystemTimestamps.php
new file mode 100644
index 000000000000..bdc1c3c65b38
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/SystemTimestamps.php
@@ -0,0 +1,189 @@
+google.cloud.datacatalog.v1.SystemTimestamps
+ */
+class SystemTimestamps extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Creation timestamp of the resource within the given system.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1;
+ */
+ protected $create_time = null;
+ /**
+ * Timestamp of the last modification of the resource or its metadata within
+ * a given system.
+ * Note: Depending on the source system, not every modification updates this
+ * timestamp.
+ * For example, BigQuery timestamps every metadata modification but not data
+ * or permission changes.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 2;
+ */
+ protected $update_time = null;
+ /**
+ * Output only. Expiration timestamp of the resource within the given system.
+ * Currently only applicable to BigQuery resources.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $expire_time = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Creation timestamp of the resource within the given system.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Timestamp of the last modification of the resource or its metadata within
+ * a given system.
+ * Note: Depending on the source system, not every modification updates this
+ * timestamp.
+ * For example, BigQuery timestamps every metadata modification but not data
+ * or permission changes.
+ * @type \Google\Protobuf\Timestamp $expire_time
+ * Output only. Expiration timestamp of the resource within the given system.
+ * Currently only applicable to BigQuery resources.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Timestamps::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Creation timestamp of the resource within the given system.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1;
+ * @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);
+ }
+
+ /**
+ * Creation timestamp of the resource within the given system.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Timestamp of the last modification of the resource or its metadata within
+ * a given system.
+ * Note: Depending on the source system, not every modification updates this
+ * timestamp.
+ * For example, BigQuery timestamps every metadata modification but not data
+ * or permission changes.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 2;
+ * @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);
+ }
+
+ /**
+ * Timestamp of the last modification of the resource or its metadata within
+ * a given system.
+ * Note: Depending on the source system, not every modification updates this
+ * timestamp.
+ * For example, BigQuery timestamps every metadata modification but not data
+ * or permission changes.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 2;
+ * @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. Expiration timestamp of the resource within the given system.
+ * Currently only applicable to BigQuery resources.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getExpireTime()
+ {
+ return $this->expire_time;
+ }
+
+ public function hasExpireTime()
+ {
+ return isset($this->expire_time);
+ }
+
+ public function clearExpireTime()
+ {
+ unset($this->expire_time);
+ }
+
+ /**
+ * Output only. Expiration timestamp of the resource within the given system.
+ * Currently only applicable to BigQuery resources.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setExpireTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->expire_time = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/TableSourceType.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/TableSourceType.php
new file mode 100644
index 000000000000..071a61c144cd
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/TableSourceType.php
@@ -0,0 +1,68 @@
+google.cloud.datacatalog.v1.TableSourceType
+ */
+class TableSourceType
+{
+ /**
+ * Default unknown type.
+ *
+ * Generated from protobuf enum TABLE_SOURCE_TYPE_UNSPECIFIED = 0;
+ */
+ const TABLE_SOURCE_TYPE_UNSPECIFIED = 0;
+ /**
+ * Table view.
+ *
+ * Generated from protobuf enum BIGQUERY_VIEW = 2;
+ */
+ const BIGQUERY_VIEW = 2;
+ /**
+ * BigQuery native table.
+ *
+ * Generated from protobuf enum BIGQUERY_TABLE = 5;
+ */
+ const BIGQUERY_TABLE = 5;
+ /**
+ * BigQuery materialized view.
+ *
+ * Generated from protobuf enum BIGQUERY_MATERIALIZED_VIEW = 7;
+ */
+ const BIGQUERY_MATERIALIZED_VIEW = 7;
+
+ private static $valueToName = [
+ self::TABLE_SOURCE_TYPE_UNSPECIFIED => 'TABLE_SOURCE_TYPE_UNSPECIFIED',
+ self::BIGQUERY_VIEW => 'BIGQUERY_VIEW',
+ self::BIGQUERY_TABLE => 'BIGQUERY_TABLE',
+ self::BIGQUERY_MATERIALIZED_VIEW => 'BIGQUERY_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);
+ }
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/TableSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/TableSpec.php
new file mode 100644
index 000000000000..79f7f99856fc
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/TableSpec.php
@@ -0,0 +1,83 @@
+google.cloud.datacatalog.v1.TableSpec
+ */
+class TableSpec extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. If the table is date-sharded, that is, it matches the
+ * `[prefix]YYYYMMDD` name pattern, this field is the Data Catalog resource
+ * name of the date-sharded grouped entry. For example:
+ * `projects/{PROJECT_ID}/locations/{LOCATION}/entrygroups/{ENTRY_GROUP_ID}/entries/{ENTRY_ID}`.
+ * Otherwise, `grouped_entry` is empty.
+ *
+ * Generated from protobuf field string grouped_entry = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ */
+ protected $grouped_entry = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $grouped_entry
+ * Output only. If the table is date-sharded, that is, it matches the
+ * `[prefix]YYYYMMDD` name pattern, this field is the Data Catalog resource
+ * name of the date-sharded grouped entry. For example:
+ * `projects/{PROJECT_ID}/locations/{LOCATION}/entrygroups/{ENTRY_GROUP_ID}/entries/{ENTRY_ID}`.
+ * Otherwise, `grouped_entry` is empty.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\TableSpec::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. If the table is date-sharded, that is, it matches the
+ * `[prefix]YYYYMMDD` name pattern, this field is the Data Catalog resource
+ * name of the date-sharded grouped entry. For example:
+ * `projects/{PROJECT_ID}/locations/{LOCATION}/entrygroups/{ENTRY_GROUP_ID}/entries/{ENTRY_ID}`.
+ * Otherwise, `grouped_entry` is empty.
+ *
+ * Generated from protobuf field string grouped_entry = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getGroupedEntry()
+ {
+ return $this->grouped_entry;
+ }
+
+ /**
+ * Output only. If the table is date-sharded, that is, it matches the
+ * `[prefix]YYYYMMDD` name pattern, this field is the Data Catalog resource
+ * name of the date-sharded grouped entry. For example:
+ * `projects/{PROJECT_ID}/locations/{LOCATION}/entrygroups/{ENTRY_GROUP_ID}/entries/{ENTRY_ID}`.
+ * Otherwise, `grouped_entry` is empty.
+ *
+ * Generated from protobuf field string grouped_entry = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setGroupedEntry($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->grouped_entry = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/Tag.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/Tag.php
new file mode 100644
index 000000000000..54e7f6197639
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/Tag.php
@@ -0,0 +1,256 @@
+google.cloud.datacatalog.v1.Tag
+ */
+class Tag extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The resource name of the tag in URL format where tag ID is a
+ * system-generated identifier.
+ * Note: The tag itself might not be stored in the location specified in its
+ * name.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * Required. The resource name of the tag template this tag uses. Example:
+ * `projects/{PROJECT_ID}/locations/{LOCATION}/tagTemplates/{TAG_TEMPLATE_ID}`
+ * This field cannot be modified after creation.
+ *
+ * Generated from protobuf field string template = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $template = '';
+ /**
+ * Output only. The display name of the tag template.
+ *
+ * Generated from protobuf field string template_display_name = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $template_display_name = '';
+ /**
+ * Required. Maps the ID of a tag field to its value and additional
+ * information about that field.
+ * Tag template defines valid field IDs. A tag
+ * must have at least 1 field and at most 500 fields.
+ *
+ * Generated from protobuf field map fields = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $fields;
+ protected $scope;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The resource name of the tag in URL format where tag ID is a
+ * system-generated identifier.
+ * Note: The tag itself might not be stored in the location specified in its
+ * name.
+ * @type string $template
+ * Required. The resource name of the tag template this tag uses. Example:
+ * `projects/{PROJECT_ID}/locations/{LOCATION}/tagTemplates/{TAG_TEMPLATE_ID}`
+ * This field cannot be modified after creation.
+ * @type string $template_display_name
+ * Output only. The display name of the tag template.
+ * @type string $column
+ * Resources like entry can have schemas associated with them. This scope
+ * allows you to attach tags to an individual column based on that schema.
+ * To attach a tag to a nested column, separate column names with a dot
+ * (`.`). Example: `column.nested_column`.
+ * @type array|\Google\Protobuf\Internal\MapField $fields
+ * Required. Maps the ID of a tag field to its value and additional
+ * information about that field.
+ * Tag template defines valid field IDs. A tag
+ * must have at least 1 field and at most 500 fields.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Tags::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The resource name of the tag in URL format where tag ID is a
+ * system-generated identifier.
+ * Note: The tag itself might not be stored in the location specified in its
+ * name.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The resource name of the tag in URL format where tag ID is a
+ * system-generated identifier.
+ * Note: The tag itself might not be stored in the location specified in its
+ * name.
+ *
+ * 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 resource name of the tag template this tag uses. Example:
+ * `projects/{PROJECT_ID}/locations/{LOCATION}/tagTemplates/{TAG_TEMPLATE_ID}`
+ * This field cannot be modified after creation.
+ *
+ * Generated from protobuf field string template = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getTemplate()
+ {
+ return $this->template;
+ }
+
+ /**
+ * Required. The resource name of the tag template this tag uses. Example:
+ * `projects/{PROJECT_ID}/locations/{LOCATION}/tagTemplates/{TAG_TEMPLATE_ID}`
+ * This field cannot be modified after creation.
+ *
+ * Generated from protobuf field string template = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setTemplate($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->template = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The display name of the tag template.
+ *
+ * Generated from protobuf field string template_display_name = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getTemplateDisplayName()
+ {
+ return $this->template_display_name;
+ }
+
+ /**
+ * Output only. The display name of the tag template.
+ *
+ * Generated from protobuf field string template_display_name = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setTemplateDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->template_display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Resources like entry can have schemas associated with them. This scope
+ * allows you to attach tags to an individual column based on that schema.
+ * To attach a tag to a nested column, separate column names with a dot
+ * (`.`). Example: `column.nested_column`.
+ *
+ * Generated from protobuf field string column = 4;
+ * @return string
+ */
+ public function getColumn()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasColumn()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * Resources like entry can have schemas associated with them. This scope
+ * allows you to attach tags to an individual column based on that schema.
+ * To attach a tag to a nested column, separate column names with a dot
+ * (`.`). Example: `column.nested_column`.
+ *
+ * Generated from protobuf field string column = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setColumn($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * Required. Maps the ID of a tag field to its value and additional
+ * information about that field.
+ * Tag template defines valid field IDs. A tag
+ * must have at least 1 field and at most 500 fields.
+ *
+ * Generated from protobuf field map fields = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getFields()
+ {
+ return $this->fields;
+ }
+
+ /**
+ * Required. Maps the ID of a tag field to its value and additional
+ * information about that field.
+ * Tag template defines valid field IDs. A tag
+ * must have at least 1 field and at most 500 fields.
+ *
+ * Generated from protobuf field map fields = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setFields($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\DataCatalog\V1\TagField::class);
+ $this->fields = $arr;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getScope()
+ {
+ return $this->whichOneof("scope");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/TagField.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/TagField.php
new file mode 100644
index 000000000000..560ede287e87
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/TagField.php
@@ -0,0 +1,344 @@
+google.cloud.datacatalog.v1.TagField
+ */
+class TagField extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The display name of this field.
+ *
+ * Generated from protobuf field string display_name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $display_name = '';
+ /**
+ * Output only. The order of this field with respect to other fields in this
+ * tag. Can be set by
+ * [Tag][google.cloud.datacatalog.v1.TagTemplateField.order].
+ * For example, a higher value can indicate a more important field.
+ * The value can be negative. Multiple fields can have the same order, and
+ * field orders within a tag don't have to be sequential.
+ *
+ * Generated from protobuf field int32 order = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $order = 0;
+ protected $kind;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $display_name
+ * Output only. The display name of this field.
+ * @type float $double_value
+ * The value of a tag field with a double type.
+ * @type string $string_value
+ * The value of a tag field with a string type.
+ * The maximum length is 2000 UTF-8 characters.
+ * @type bool $bool_value
+ * The value of a tag field with a boolean type.
+ * @type \Google\Protobuf\Timestamp $timestamp_value
+ * The value of a tag field with a timestamp type.
+ * @type \Google\Cloud\DataCatalog\V1\TagField\EnumValue $enum_value
+ * The value of a tag field with an enum type.
+ * This value must be one of the allowed values listed in this enum.
+ * @type string $richtext_value
+ * The value of a tag field with a rich text type.
+ * The maximum length is 10 MiB as this value holds HTML descriptions
+ * including encoded images. The maximum length of the text without images
+ * is 100 KiB.
+ * @type int $order
+ * Output only. The order of this field with respect to other fields in this
+ * tag. Can be set by
+ * [Tag][google.cloud.datacatalog.v1.TagTemplateField.order].
+ * For example, a higher value can indicate a more important field.
+ * The value can be negative. Multiple fields can have the same order, and
+ * field orders within a tag don't have to be sequential.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Tags::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The display name of this field.
+ *
+ * Generated from protobuf field string display_name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * Output only. The display name of this field.
+ *
+ * Generated from protobuf field string display_name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The value of a tag field with a double type.
+ *
+ * Generated from protobuf field double double_value = 2;
+ * @return float
+ */
+ public function getDoubleValue()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasDoubleValue()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * The value of a tag field with a double type.
+ *
+ * Generated from protobuf field double double_value = 2;
+ * @param float $var
+ * @return $this
+ */
+ public function setDoubleValue($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * The value of a tag field with a string type.
+ * The maximum length is 2000 UTF-8 characters.
+ *
+ * Generated from protobuf field string string_value = 3;
+ * @return string
+ */
+ public function getStringValue()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasStringValue()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * The value of a tag field with a string type.
+ * The maximum length is 2000 UTF-8 characters.
+ *
+ * Generated from protobuf field string string_value = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setStringValue($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * The value of a tag field with a boolean type.
+ *
+ * Generated from protobuf field bool bool_value = 4;
+ * @return bool
+ */
+ public function getBoolValue()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasBoolValue()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * The value of a tag field with a boolean type.
+ *
+ * Generated from protobuf field bool bool_value = 4;
+ * @param bool $var
+ * @return $this
+ */
+ public function setBoolValue($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * The value of a tag field with a timestamp type.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp timestamp_value = 5;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getTimestampValue()
+ {
+ return $this->readOneof(5);
+ }
+
+ public function hasTimestampValue()
+ {
+ return $this->hasOneof(5);
+ }
+
+ /**
+ * The value of a tag field with a timestamp type.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp timestamp_value = 5;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setTimestampValue($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->writeOneof(5, $var);
+
+ return $this;
+ }
+
+ /**
+ * The value of a tag field with an enum type.
+ * This value must be one of the allowed values listed in this enum.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.TagField.EnumValue enum_value = 6;
+ * @return \Google\Cloud\DataCatalog\V1\TagField\EnumValue|null
+ */
+ public function getEnumValue()
+ {
+ return $this->readOneof(6);
+ }
+
+ public function hasEnumValue()
+ {
+ return $this->hasOneof(6);
+ }
+
+ /**
+ * The value of a tag field with an enum type.
+ * This value must be one of the allowed values listed in this enum.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.TagField.EnumValue enum_value = 6;
+ * @param \Google\Cloud\DataCatalog\V1\TagField\EnumValue $var
+ * @return $this
+ */
+ public function setEnumValue($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\TagField\EnumValue::class);
+ $this->writeOneof(6, $var);
+
+ return $this;
+ }
+
+ /**
+ * The value of a tag field with a rich text type.
+ * The maximum length is 10 MiB as this value holds HTML descriptions
+ * including encoded images. The maximum length of the text without images
+ * is 100 KiB.
+ *
+ * Generated from protobuf field string richtext_value = 8;
+ * @return string
+ */
+ public function getRichtextValue()
+ {
+ return $this->readOneof(8);
+ }
+
+ public function hasRichtextValue()
+ {
+ return $this->hasOneof(8);
+ }
+
+ /**
+ * The value of a tag field with a rich text type.
+ * The maximum length is 10 MiB as this value holds HTML descriptions
+ * including encoded images. The maximum length of the text without images
+ * is 100 KiB.
+ *
+ * Generated from protobuf field string richtext_value = 8;
+ * @param string $var
+ * @return $this
+ */
+ public function setRichtextValue($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(8, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. The order of this field with respect to other fields in this
+ * tag. Can be set by
+ * [Tag][google.cloud.datacatalog.v1.TagTemplateField.order].
+ * For example, a higher value can indicate a more important field.
+ * The value can be negative. Multiple fields can have the same order, and
+ * field orders within a tag don't have to be sequential.
+ *
+ * Generated from protobuf field int32 order = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getOrder()
+ {
+ return $this->order;
+ }
+
+ /**
+ * Output only. The order of this field with respect to other fields in this
+ * tag. Can be set by
+ * [Tag][google.cloud.datacatalog.v1.TagTemplateField.order].
+ * For example, a higher value can indicate a more important field.
+ * The value can be negative. Multiple fields can have the same order, and
+ * field orders within a tag don't have to be sequential.
+ *
+ * Generated from protobuf field int32 order = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setOrder($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->order = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getKind()
+ {
+ return $this->whichOneof("kind");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/TagField/EnumValue.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/TagField/EnumValue.php
new file mode 100644
index 000000000000..e2a3a5f748aa
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/TagField/EnumValue.php
@@ -0,0 +1,70 @@
+google.cloud.datacatalog.v1.TagField.EnumValue
+ */
+class EnumValue extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The display name of the enum value.
+ *
+ * Generated from protobuf field string display_name = 1;
+ */
+ protected $display_name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $display_name
+ * The display name of the enum value.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Tags::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The display name of the enum value.
+ *
+ * Generated from protobuf field string display_name = 1;
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * The display name of the enum value.
+ *
+ * Generated from protobuf field string display_name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(EnumValue::class, \Google\Cloud\DataCatalog\V1\TagField_EnumValue::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/TagTemplate.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/TagTemplate.php
new file mode 100644
index 000000000000..af1412783557
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/TagTemplate.php
@@ -0,0 +1,244 @@
+google.cloud.datacatalog.v1.TagTemplate
+ */
+class TagTemplate extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The resource name of the tag template in URL format.
+ * Note: The tag template itself and its child resources might not be
+ * stored in the location specified in its name.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * Display name for this template. Defaults to an empty string.
+ * The name must contain only Unicode letters, numbers (0-9), underscores (_),
+ * dashes (-), spaces ( ), and can't start or end with spaces.
+ * The maximum length is 200 characters.
+ *
+ * Generated from protobuf field string display_name = 2;
+ */
+ protected $display_name = '';
+ /**
+ * Indicates whether tags created with this template are public. Public tags
+ * do not require tag template access to appear in
+ * [ListTags][google.cloud.datacatalog.v1.ListTags] API response.
+ * Additionally, you can search for a public tag by value with a
+ * simple search query in addition to using a ``tag:`` predicate.
+ *
+ * Generated from protobuf field bool is_publicly_readable = 5;
+ */
+ protected $is_publicly_readable = false;
+ /**
+ * Required. Map of tag template field IDs to the settings for the field.
+ * This map is an exhaustive list of the allowed fields. The map must contain
+ * at least one field and at most 500 fields.
+ * The keys to this map are tag template field IDs. The IDs have the
+ * following limitations:
+ * * Can contain uppercase and lowercase letters, numbers (0-9) and
+ * underscores (_).
+ * * Must be at least 1 character and at most 64 characters long.
+ * * Must start with a letter or underscore.
+ *
+ * Generated from protobuf field map fields = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $fields;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The resource name of the tag template in URL format.
+ * Note: The tag template itself and its child resources might not be
+ * stored in the location specified in its name.
+ * @type string $display_name
+ * Display name for this template. Defaults to an empty string.
+ * The name must contain only Unicode letters, numbers (0-9), underscores (_),
+ * dashes (-), spaces ( ), and can't start or end with spaces.
+ * The maximum length is 200 characters.
+ * @type bool $is_publicly_readable
+ * Indicates whether tags created with this template are public. Public tags
+ * do not require tag template access to appear in
+ * [ListTags][google.cloud.datacatalog.v1.ListTags] API response.
+ * Additionally, you can search for a public tag by value with a
+ * simple search query in addition to using a ``tag:`` predicate.
+ * @type array|\Google\Protobuf\Internal\MapField $fields
+ * Required. Map of tag template field IDs to the settings for the field.
+ * This map is an exhaustive list of the allowed fields. The map must contain
+ * at least one field and at most 500 fields.
+ * The keys to this map are tag template field IDs. The IDs have the
+ * following limitations:
+ * * Can contain uppercase and lowercase letters, numbers (0-9) and
+ * underscores (_).
+ * * Must be at least 1 character and at most 64 characters long.
+ * * Must start with a letter or underscore.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Tags::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The resource name of the tag template in URL format.
+ * Note: The tag template itself and its child resources might not be
+ * stored in the location specified in its name.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The resource name of the tag template in URL format.
+ * Note: The tag template itself and its child resources might not be
+ * stored in the location specified in its name.
+ *
+ * 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;
+ }
+
+ /**
+ * Display name for this template. Defaults to an empty string.
+ * The name must contain only Unicode letters, numbers (0-9), underscores (_),
+ * dashes (-), spaces ( ), and can't start or end with spaces.
+ * The maximum length is 200 characters.
+ *
+ * Generated from protobuf field string display_name = 2;
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * Display name for this template. Defaults to an empty string.
+ * The name must contain only Unicode letters, numbers (0-9), underscores (_),
+ * dashes (-), spaces ( ), and can't start or end with spaces.
+ * The maximum length is 200 characters.
+ *
+ * Generated from protobuf field string display_name = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Indicates whether tags created with this template are public. Public tags
+ * do not require tag template access to appear in
+ * [ListTags][google.cloud.datacatalog.v1.ListTags] API response.
+ * Additionally, you can search for a public tag by value with a
+ * simple search query in addition to using a ``tag:`` predicate.
+ *
+ * Generated from protobuf field bool is_publicly_readable = 5;
+ * @return bool
+ */
+ public function getIsPubliclyReadable()
+ {
+ return $this->is_publicly_readable;
+ }
+
+ /**
+ * Indicates whether tags created with this template are public. Public tags
+ * do not require tag template access to appear in
+ * [ListTags][google.cloud.datacatalog.v1.ListTags] API response.
+ * Additionally, you can search for a public tag by value with a
+ * simple search query in addition to using a ``tag:`` predicate.
+ *
+ * Generated from protobuf field bool is_publicly_readable = 5;
+ * @param bool $var
+ * @return $this
+ */
+ public function setIsPubliclyReadable($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->is_publicly_readable = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Map of tag template field IDs to the settings for the field.
+ * This map is an exhaustive list of the allowed fields. The map must contain
+ * at least one field and at most 500 fields.
+ * The keys to this map are tag template field IDs. The IDs have the
+ * following limitations:
+ * * Can contain uppercase and lowercase letters, numbers (0-9) and
+ * underscores (_).
+ * * Must be at least 1 character and at most 64 characters long.
+ * * Must start with a letter or underscore.
+ *
+ * Generated from protobuf field map fields = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getFields()
+ {
+ return $this->fields;
+ }
+
+ /**
+ * Required. Map of tag template field IDs to the settings for the field.
+ * This map is an exhaustive list of the allowed fields. The map must contain
+ * at least one field and at most 500 fields.
+ * The keys to this map are tag template field IDs. The IDs have the
+ * following limitations:
+ * * Can contain uppercase and lowercase letters, numbers (0-9) and
+ * underscores (_).
+ * * Must be at least 1 character and at most 64 characters long.
+ * * Must start with a letter or underscore.
+ *
+ * Generated from protobuf field map fields = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setFields($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\DataCatalog\V1\TagTemplateField::class);
+ $this->fields = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/TagTemplateField.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/TagTemplateField.php
new file mode 100644
index 000000000000..679ab457c1d9
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/TagTemplateField.php
@@ -0,0 +1,303 @@
+google.cloud.datacatalog.v1.TagTemplateField
+ */
+class TagTemplateField extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The resource name of the tag template field in URL format.
+ * Example:
+ * `projects/{PROJECT_ID}/locations/{LOCATION}/tagTemplates/{TAG_TEMPLATE}/fields/{FIELD}`
+ * Note: The tag template field itself might not be stored in the location
+ * specified in its name.
+ * The name must contain only letters (a-z, A-Z), numbers (0-9),
+ * or underscores (_), and must start with a letter or underscore.
+ * The maximum length is 64 characters.
+ *
+ * Generated from protobuf field string name = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $name = '';
+ /**
+ * The display name for this field. Defaults to an empty string.
+ * The name must contain only Unicode letters, numbers (0-9), underscores (_),
+ * dashes (-), spaces ( ), and can't start or end with spaces.
+ * The maximum length is 200 characters.
+ *
+ * Generated from protobuf field string display_name = 1;
+ */
+ protected $display_name = '';
+ /**
+ * Required. The type of value this tag field can contain.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.FieldType type = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $type = null;
+ /**
+ * If true, this field is required. Defaults to false.
+ *
+ * Generated from protobuf field bool is_required = 3;
+ */
+ protected $is_required = false;
+ /**
+ * The description for this field. Defaults to an empty string.
+ *
+ * Generated from protobuf field string description = 4;
+ */
+ protected $description = '';
+ /**
+ * The order of this field with respect to other fields in this tag
+ * template.
+ * For example, a higher value can indicate a more important field.
+ * The value can be negative. Multiple fields can have the same order and
+ * field orders within a tag don't have to be sequential.
+ *
+ * Generated from protobuf field int32 order = 5;
+ */
+ protected $order = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. The resource name of the tag template field in URL format.
+ * Example:
+ * `projects/{PROJECT_ID}/locations/{LOCATION}/tagTemplates/{TAG_TEMPLATE}/fields/{FIELD}`
+ * Note: The tag template field itself might not be stored in the location
+ * specified in its name.
+ * The name must contain only letters (a-z, A-Z), numbers (0-9),
+ * or underscores (_), and must start with a letter or underscore.
+ * The maximum length is 64 characters.
+ * @type string $display_name
+ * The display name for this field. Defaults to an empty string.
+ * The name must contain only Unicode letters, numbers (0-9), underscores (_),
+ * dashes (-), spaces ( ), and can't start or end with spaces.
+ * The maximum length is 200 characters.
+ * @type \Google\Cloud\DataCatalog\V1\FieldType $type
+ * Required. The type of value this tag field can contain.
+ * @type bool $is_required
+ * If true, this field is required. Defaults to false.
+ * @type string $description
+ * The description for this field. Defaults to an empty string.
+ * @type int $order
+ * The order of this field with respect to other fields in this tag
+ * template.
+ * For example, a higher value can indicate a more important field.
+ * The value can be negative. Multiple fields can have the same order and
+ * field orders within a tag don't have to be sequential.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Tags::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The resource name of the tag template field in URL format.
+ * Example:
+ * `projects/{PROJECT_ID}/locations/{LOCATION}/tagTemplates/{TAG_TEMPLATE}/fields/{FIELD}`
+ * Note: The tag template field itself might not be stored in the location
+ * specified in its name.
+ * The name must contain only letters (a-z, A-Z), numbers (0-9),
+ * or underscores (_), and must start with a letter or underscore.
+ * The maximum length is 64 characters.
+ *
+ * Generated from protobuf field string name = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. The resource name of the tag template field in URL format.
+ * Example:
+ * `projects/{PROJECT_ID}/locations/{LOCATION}/tagTemplates/{TAG_TEMPLATE}/fields/{FIELD}`
+ * Note: The tag template field itself might not be stored in the location
+ * specified in its name.
+ * The name must contain only letters (a-z, A-Z), numbers (0-9),
+ * or underscores (_), and must start with a letter or underscore.
+ * The maximum length is 64 characters.
+ *
+ * Generated from protobuf field string name = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The display name for this field. Defaults to an empty string.
+ * The name must contain only Unicode letters, numbers (0-9), underscores (_),
+ * dashes (-), spaces ( ), and can't start or end with spaces.
+ * The maximum length is 200 characters.
+ *
+ * Generated from protobuf field string display_name = 1;
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * The display name for this field. Defaults to an empty string.
+ * The name must contain only Unicode letters, numbers (0-9), underscores (_),
+ * dashes (-), spaces ( ), and can't start or end with spaces.
+ * The maximum length is 200 characters.
+ *
+ * Generated from protobuf field string display_name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The type of value this tag field can contain.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.FieldType type = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\DataCatalog\V1\FieldType|null
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ public function hasType()
+ {
+ return isset($this->type);
+ }
+
+ public function clearType()
+ {
+ unset($this->type);
+ }
+
+ /**
+ * Required. The type of value this tag field can contain.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.FieldType type = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\DataCatalog\V1\FieldType $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\FieldType::class);
+ $this->type = $var;
+
+ return $this;
+ }
+
+ /**
+ * If true, this field is required. Defaults to false.
+ *
+ * Generated from protobuf field bool is_required = 3;
+ * @return bool
+ */
+ public function getIsRequired()
+ {
+ return $this->is_required;
+ }
+
+ /**
+ * If true, this field is required. Defaults to false.
+ *
+ * Generated from protobuf field bool is_required = 3;
+ * @param bool $var
+ * @return $this
+ */
+ public function setIsRequired($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->is_required = $var;
+
+ return $this;
+ }
+
+ /**
+ * The description for this field. Defaults to an empty string.
+ *
+ * Generated from protobuf field string description = 4;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * The description for this field. Defaults to an empty string.
+ *
+ * Generated from protobuf field string description = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * The order of this field with respect to other fields in this tag
+ * template.
+ * For example, a higher value can indicate a more important field.
+ * The value can be negative. Multiple fields can have the same order and
+ * field orders within a tag don't have to be sequential.
+ *
+ * Generated from protobuf field int32 order = 5;
+ * @return int
+ */
+ public function getOrder()
+ {
+ return $this->order;
+ }
+
+ /**
+ * The order of this field with respect to other fields in this tag
+ * template.
+ * For example, a higher value can indicate a more important field.
+ * The value can be negative. Multiple fields can have the same order and
+ * field orders within a tag don't have to be sequential.
+ *
+ * Generated from protobuf field int32 order = 5;
+ * @param int $var
+ * @return $this
+ */
+ public function setOrder($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->order = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/TaggedEntry.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/TaggedEntry.php
new file mode 100644
index 000000000000..4145479ad46e
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/TaggedEntry.php
@@ -0,0 +1,152 @@
+google.cloud.datacatalog.v1.TaggedEntry
+ */
+class TaggedEntry extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. Tags that should be ingested into the Data Catalog.
+ * Caller should populate template name, column and fields.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Tag present_tags = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $present_tags;
+ /**
+ * Optional. Tags that should be deleted from the Data Catalog.
+ * Caller should populate template name and column only.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Tag absent_tags = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $absent_tags;
+ protected $entry;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\DataCatalog\V1\Entry $v1_entry
+ * Non-encrypted Data Catalog v1 Entry.
+ * @type array<\Google\Cloud\DataCatalog\V1\Tag>|\Google\Protobuf\Internal\RepeatedField $present_tags
+ * Optional. Tags that should be ingested into the Data Catalog.
+ * Caller should populate template name, column and fields.
+ * @type array<\Google\Cloud\DataCatalog\V1\Tag>|\Google\Protobuf\Internal\RepeatedField $absent_tags
+ * Optional. Tags that should be deleted from the Data Catalog.
+ * Caller should populate template name and column only.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\DumpContent::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Non-encrypted Data Catalog v1 Entry.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Entry v1_entry = 1;
+ * @return \Google\Cloud\DataCatalog\V1\Entry|null
+ */
+ public function getV1Entry()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasV1Entry()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Non-encrypted Data Catalog v1 Entry.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Entry v1_entry = 1;
+ * @param \Google\Cloud\DataCatalog\V1\Entry $var
+ * @return $this
+ */
+ public function setV1Entry($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\Entry::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Optional. Tags that should be ingested into the Data Catalog.
+ * Caller should populate template name, column and fields.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Tag present_tags = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getPresentTags()
+ {
+ return $this->present_tags;
+ }
+
+ /**
+ * Optional. Tags that should be ingested into the Data Catalog.
+ * Caller should populate template name, column and fields.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Tag present_tags = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param array<\Google\Cloud\DataCatalog\V1\Tag>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setPresentTags($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\DataCatalog\V1\Tag::class);
+ $this->present_tags = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Tags that should be deleted from the Data Catalog.
+ * Caller should populate template name and column only.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Tag absent_tags = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAbsentTags()
+ {
+ return $this->absent_tags;
+ }
+
+ /**
+ * Optional. Tags that should be deleted from the Data Catalog.
+ * Caller should populate template name and column only.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Tag absent_tags = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param array<\Google\Cloud\DataCatalog\V1\Tag>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAbsentTags($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\DataCatalog\V1\Tag::class);
+ $this->absent_tags = $arr;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getEntry()
+ {
+ return $this->whichOneof("entry");
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/Taxonomy.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/Taxonomy.php
new file mode 100644
index 000000000000..e7933040d619
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/Taxonomy.php
@@ -0,0 +1,354 @@
+google.cloud.datacatalog.v1.Taxonomy
+ */
+class Taxonomy extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Identifier. Resource name of this taxonomy in URL format.
+ * Note: Policy tag manager generates unique taxonomy IDs.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ */
+ protected $name = '';
+ /**
+ * Required. User-defined name of this taxonomy.
+ * The name can't start or end with spaces, must contain only Unicode letters,
+ * numbers, underscores, dashes, and spaces, and be at most 200 bytes long
+ * when encoded in UTF-8.
+ * The taxonomy display name must be unique within an organization.
+ *
+ * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $display_name = '';
+ /**
+ * Optional. Description of this taxonomy. If not set, defaults to empty.
+ * The description must contain only Unicode characters, tabs, newlines,
+ * carriage returns, and page breaks, and be at most 2000 bytes long when
+ * encoded in UTF-8.
+ *
+ * Generated from protobuf field string description = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $description = '';
+ /**
+ * Output only. Number of policy tags in this taxonomy.
+ *
+ * Generated from protobuf field int32 policy_tag_count = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $policy_tag_count = 0;
+ /**
+ * Output only. Creation and modification timestamps of this taxonomy.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.SystemTimestamps taxonomy_timestamps = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $taxonomy_timestamps = null;
+ /**
+ * Optional. A list of policy types that are activated for this taxonomy. If
+ * not set, defaults to an empty list.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Taxonomy.PolicyType activated_policy_types = 6 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $activated_policy_types;
+ /**
+ * Output only. Identity of the service which owns the Taxonomy. This field is
+ * only populated when the taxonomy is created by a Google Cloud service.
+ * Currently only 'DATAPLEX' is supported.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Taxonomy.Service service = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $service = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Identifier. Resource name of this taxonomy in URL format.
+ * Note: Policy tag manager generates unique taxonomy IDs.
+ * @type string $display_name
+ * Required. User-defined name of this taxonomy.
+ * The name can't start or end with spaces, must contain only Unicode letters,
+ * numbers, underscores, dashes, and spaces, and be at most 200 bytes long
+ * when encoded in UTF-8.
+ * The taxonomy display name must be unique within an organization.
+ * @type string $description
+ * Optional. Description of this taxonomy. If not set, defaults to empty.
+ * The description must contain only Unicode characters, tabs, newlines,
+ * carriage returns, and page breaks, and be at most 2000 bytes long when
+ * encoded in UTF-8.
+ * @type int $policy_tag_count
+ * Output only. Number of policy tags in this taxonomy.
+ * @type \Google\Cloud\DataCatalog\V1\SystemTimestamps $taxonomy_timestamps
+ * Output only. Creation and modification timestamps of this taxonomy.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $activated_policy_types
+ * Optional. A list of policy types that are activated for this taxonomy. If
+ * not set, defaults to an empty list.
+ * @type \Google\Cloud\DataCatalog\V1\Taxonomy\Service $service
+ * Output only. Identity of the service which owns the Taxonomy. This field is
+ * only populated when the taxonomy is created by a Google Cloud service.
+ * Currently only 'DATAPLEX' is supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Policytagmanager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Identifier. Resource name of this taxonomy in URL format.
+ * Note: Policy tag manager generates unique taxonomy IDs.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Identifier. Resource name of this taxonomy in URL format.
+ * Note: Policy tag manager generates unique taxonomy IDs.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. User-defined name of this taxonomy.
+ * The name can't start or end with spaces, must contain only Unicode letters,
+ * numbers, underscores, dashes, and spaces, and be at most 200 bytes long
+ * when encoded in UTF-8.
+ * The taxonomy display name must be unique within an organization.
+ *
+ * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * Required. User-defined name of this taxonomy.
+ * The name can't start or end with spaces, must contain only Unicode letters,
+ * numbers, underscores, dashes, and spaces, and be at most 200 bytes long
+ * when encoded in UTF-8.
+ * The taxonomy display name must be unique within an organization.
+ *
+ * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Description of this taxonomy. If not set, defaults to empty.
+ * The description must contain only Unicode characters, tabs, newlines,
+ * carriage returns, and page breaks, and be at most 2000 bytes long when
+ * encoded in UTF-8.
+ *
+ * Generated from protobuf field string description = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Optional. Description of this taxonomy. If not set, defaults to empty.
+ * The description must contain only Unicode characters, tabs, newlines,
+ * carriage returns, and page breaks, and be at most 2000 bytes long when
+ * encoded in UTF-8.
+ *
+ * Generated from protobuf field string description = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Number of policy tags in this taxonomy.
+ *
+ * Generated from protobuf field int32 policy_tag_count = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getPolicyTagCount()
+ {
+ return $this->policy_tag_count;
+ }
+
+ /**
+ * Output only. Number of policy tags in this taxonomy.
+ *
+ * Generated from protobuf field int32 policy_tag_count = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setPolicyTagCount($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->policy_tag_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Creation and modification timestamps of this taxonomy.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.SystemTimestamps taxonomy_timestamps = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\DataCatalog\V1\SystemTimestamps|null
+ */
+ public function getTaxonomyTimestamps()
+ {
+ return $this->taxonomy_timestamps;
+ }
+
+ public function hasTaxonomyTimestamps()
+ {
+ return isset($this->taxonomy_timestamps);
+ }
+
+ public function clearTaxonomyTimestamps()
+ {
+ unset($this->taxonomy_timestamps);
+ }
+
+ /**
+ * Output only. Creation and modification timestamps of this taxonomy.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.SystemTimestamps taxonomy_timestamps = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\DataCatalog\V1\SystemTimestamps $var
+ * @return $this
+ */
+ public function setTaxonomyTimestamps($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\SystemTimestamps::class);
+ $this->taxonomy_timestamps = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A list of policy types that are activated for this taxonomy. If
+ * not set, defaults to an empty list.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Taxonomy.PolicyType activated_policy_types = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getActivatedPolicyTypes()
+ {
+ return $this->activated_policy_types;
+ }
+
+ /**
+ * Optional. A list of policy types that are activated for this taxonomy. If
+ * not set, defaults to an empty list.
+ *
+ * Generated from protobuf field repeated .google.cloud.datacatalog.v1.Taxonomy.PolicyType activated_policy_types = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setActivatedPolicyTypes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::ENUM, \Google\Cloud\DataCatalog\V1\Taxonomy\PolicyType::class);
+ $this->activated_policy_types = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Identity of the service which owns the Taxonomy. This field is
+ * only populated when the taxonomy is created by a Google Cloud service.
+ * Currently only 'DATAPLEX' is supported.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Taxonomy.Service service = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\DataCatalog\V1\Taxonomy\Service|null
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ public function hasService()
+ {
+ return isset($this->service);
+ }
+
+ public function clearService()
+ {
+ unset($this->service);
+ }
+
+ /**
+ * Output only. Identity of the service which owns the Taxonomy. This field is
+ * only populated when the taxonomy is created by a Google Cloud service.
+ * Currently only 'DATAPLEX' is supported.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Taxonomy.Service service = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\DataCatalog\V1\Taxonomy\Service $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\Taxonomy\Service::class);
+ $this->service = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/Taxonomy/PolicyType.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/Taxonomy/PolicyType.php
new file mode 100644
index 000000000000..45ad29d6aeac
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/Taxonomy/PolicyType.php
@@ -0,0 +1,58 @@
+google.cloud.datacatalog.v1.Taxonomy.PolicyType
+ */
+class PolicyType
+{
+ /**
+ * Unspecified policy type.
+ *
+ * Generated from protobuf enum POLICY_TYPE_UNSPECIFIED = 0;
+ */
+ const POLICY_TYPE_UNSPECIFIED = 0;
+ /**
+ * Fine-grained access control policy that enables access control on
+ * tagged sub-resources.
+ *
+ * Generated from protobuf enum FINE_GRAINED_ACCESS_CONTROL = 1;
+ */
+ const FINE_GRAINED_ACCESS_CONTROL = 1;
+
+ private static $valueToName = [
+ self::POLICY_TYPE_UNSPECIFIED => 'POLICY_TYPE_UNSPECIFIED',
+ self::FINE_GRAINED_ACCESS_CONTROL => 'FINE_GRAINED_ACCESS_CONTROL',
+ ];
+
+ 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(PolicyType::class, \Google\Cloud\DataCatalog\V1\Taxonomy_PolicyType::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/Taxonomy/Service.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/Taxonomy/Service.php
new file mode 100644
index 000000000000..e7f275427ed8
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/Taxonomy/Service.php
@@ -0,0 +1,104 @@
+google.cloud.datacatalog.v1.Taxonomy.Service
+ */
+class Service extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The Google Cloud service name.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.ManagingSystem name = 1;
+ */
+ protected $name = 0;
+ /**
+ * The service agent for the service.
+ *
+ * Generated from protobuf field string identity = 2;
+ */
+ protected $identity = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $name
+ * The Google Cloud service name.
+ * @type string $identity
+ * The service agent for the service.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Policytagmanager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The Google Cloud service name.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.ManagingSystem name = 1;
+ * @return int
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The Google Cloud service name.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.ManagingSystem name = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\DataCatalog\V1\ManagingSystem::class);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The service agent for the service.
+ *
+ * Generated from protobuf field string identity = 2;
+ * @return string
+ */
+ public function getIdentity()
+ {
+ return $this->identity;
+ }
+
+ /**
+ * The service agent for the service.
+ *
+ * Generated from protobuf field string identity = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setIdentity($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->identity = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Service::class, \Google\Cloud\DataCatalog\V1\Taxonomy_Service::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UnstarEntryRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UnstarEntryRequest.php
new file mode 100644
index 000000000000..df58071e2146
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UnstarEntryRequest.php
@@ -0,0 +1,82 @@
+google.cloud.datacatalog.v1.UnstarEntryRequest
+ */
+class UnstarEntryRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the entry to mark as **not** starred.
+ *
+ * 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 entry to mark as **not** starred. Please see
+ * {@see DataCatalogClient::entryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\UnstarEntryRequest
+ *
+ * @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 entry to mark as **not** starred.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the entry to mark as **not** starred.
+ *
+ * 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 entry to mark as **not** starred.
+ *
+ * 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/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UnstarEntryResponse.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UnstarEntryResponse.php
new file mode 100644
index 000000000000..e3dd7087e4f6
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UnstarEntryResponse.php
@@ -0,0 +1,35 @@
+google.cloud.datacatalog.v1.UnstarEntryResponse
+ */
+class UnstarEntryResponse extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UpdateEntryGroupRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UpdateEntryGroupRequest.php
new file mode 100644
index 000000000000..153557fc00c0
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UpdateEntryGroupRequest.php
@@ -0,0 +1,166 @@
+google.cloud.datacatalog.v1.UpdateEntryGroupRequest
+ */
+class UpdateEntryGroupRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Updates for the entry group. The `name` field must be set.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.EntryGroup entry_group = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $entry_group = null;
+ /**
+ * Names of fields whose values to overwrite on an entry group.
+ * If this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the
+ * request body, their values are emptied.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ */
+ protected $update_mask = null;
+
+ /**
+ * @param \Google\Cloud\DataCatalog\V1\EntryGroup $entryGroup Required. Updates for the entry group. The `name` field must be set.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\UpdateEntryGroupRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\DataCatalog\V1\EntryGroup $entryGroup): self
+ {
+ return (new self())
+ ->setEntryGroup($entryGroup);
+ }
+
+ /**
+ * @param \Google\Cloud\DataCatalog\V1\EntryGroup $entryGroup Required. Updates for the entry group. The `name` field must be set.
+ * @param \Google\Protobuf\FieldMask $updateMask Names of fields whose values to overwrite on an entry group.
+ *
+ * If this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the
+ * request body, their values are emptied.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\UpdateEntryGroupRequest
+ *
+ * @experimental
+ */
+ public static function buildFromEntryGroupUpdateMask(\Google\Cloud\DataCatalog\V1\EntryGroup $entryGroup, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setEntryGroup($entryGroup)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\DataCatalog\V1\EntryGroup $entry_group
+ * Required. Updates for the entry group. The `name` field must be set.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Names of fields whose values to overwrite on an entry group.
+ * If this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the
+ * request body, their values are emptied.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Updates for the entry group. The `name` field must be set.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.EntryGroup entry_group = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\DataCatalog\V1\EntryGroup|null
+ */
+ public function getEntryGroup()
+ {
+ return $this->entry_group;
+ }
+
+ public function hasEntryGroup()
+ {
+ return isset($this->entry_group);
+ }
+
+ public function clearEntryGroup()
+ {
+ unset($this->entry_group);
+ }
+
+ /**
+ * Required. Updates for the entry group. The `name` field must be set.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.EntryGroup entry_group = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\DataCatalog\V1\EntryGroup $var
+ * @return $this
+ */
+ public function setEntryGroup($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\EntryGroup::class);
+ $this->entry_group = $var;
+
+ return $this;
+ }
+
+ /**
+ * Names of fields whose values to overwrite on an entry group.
+ * If this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the
+ * request body, their values are emptied.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ * @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);
+ }
+
+ /**
+ * Names of fields whose values to overwrite on an entry group.
+ * If this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the
+ * request body, their values are emptied.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ * @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/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UpdateEntryRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UpdateEntryRequest.php
new file mode 100644
index 000000000000..c70ab4025380
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UpdateEntryRequest.php
@@ -0,0 +1,258 @@
+google.cloud.datacatalog.v1.UpdateEntryRequest
+ */
+class UpdateEntryRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Updates for the entry. The `name` field must be set.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Entry entry = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $entry = null;
+ /**
+ * Names of fields whose values to overwrite on an entry.
+ * If this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the
+ * request body, their values are emptied.
+ * You can modify only the fields listed below.
+ * For entries with type `DATA_STREAM`:
+ * * `schema`
+ * For entries with type `FILESET`:
+ * * `schema`
+ * * `display_name`
+ * * `description`
+ * * `gcs_fileset_spec`
+ * * `gcs_fileset_spec.file_patterns`
+ * For entries with `user_specified_type`:
+ * * `schema`
+ * * `display_name`
+ * * `description`
+ * * `user_specified_type`
+ * * `user_specified_system`
+ * * `linked_resource`
+ * * `source_system_timestamps`
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ */
+ protected $update_mask = null;
+
+ /**
+ * @param \Google\Cloud\DataCatalog\V1\Entry $entry Required. Updates for the entry. The `name` field must be set.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\UpdateEntryRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\DataCatalog\V1\Entry $entry): self
+ {
+ return (new self())
+ ->setEntry($entry);
+ }
+
+ /**
+ * @param \Google\Cloud\DataCatalog\V1\Entry $entry Required. Updates for the entry. The `name` field must be set.
+ * @param \Google\Protobuf\FieldMask $updateMask Names of fields whose values to overwrite on an entry.
+ *
+ * If this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the
+ * request body, their values are emptied.
+ *
+ * You can modify only the fields listed below.
+ *
+ * For entries with type `DATA_STREAM`:
+ *
+ * * `schema`
+ *
+ * For entries with type `FILESET`:
+ *
+ * * `schema`
+ * * `display_name`
+ * * `description`
+ * * `gcs_fileset_spec`
+ * * `gcs_fileset_spec.file_patterns`
+ *
+ * For entries with `user_specified_type`:
+ *
+ * * `schema`
+ * * `display_name`
+ * * `description`
+ * * `user_specified_type`
+ * * `user_specified_system`
+ * * `linked_resource`
+ * * `source_system_timestamps`
+ *
+ * @return \Google\Cloud\DataCatalog\V1\UpdateEntryRequest
+ *
+ * @experimental
+ */
+ public static function buildFromEntryUpdateMask(\Google\Cloud\DataCatalog\V1\Entry $entry, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setEntry($entry)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\DataCatalog\V1\Entry $entry
+ * Required. Updates for the entry. The `name` field must be set.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Names of fields whose values to overwrite on an entry.
+ * If this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the
+ * request body, their values are emptied.
+ * You can modify only the fields listed below.
+ * For entries with type `DATA_STREAM`:
+ * * `schema`
+ * For entries with type `FILESET`:
+ * * `schema`
+ * * `display_name`
+ * * `description`
+ * * `gcs_fileset_spec`
+ * * `gcs_fileset_spec.file_patterns`
+ * For entries with `user_specified_type`:
+ * * `schema`
+ * * `display_name`
+ * * `description`
+ * * `user_specified_type`
+ * * `user_specified_system`
+ * * `linked_resource`
+ * * `source_system_timestamps`
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Updates for the entry. The `name` field must be set.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Entry entry = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\DataCatalog\V1\Entry|null
+ */
+ public function getEntry()
+ {
+ return $this->entry;
+ }
+
+ public function hasEntry()
+ {
+ return isset($this->entry);
+ }
+
+ public function clearEntry()
+ {
+ unset($this->entry);
+ }
+
+ /**
+ * Required. Updates for the entry. The `name` field must be set.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Entry entry = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\DataCatalog\V1\Entry $var
+ * @return $this
+ */
+ public function setEntry($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\Entry::class);
+ $this->entry = $var;
+
+ return $this;
+ }
+
+ /**
+ * Names of fields whose values to overwrite on an entry.
+ * If this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the
+ * request body, their values are emptied.
+ * You can modify only the fields listed below.
+ * For entries with type `DATA_STREAM`:
+ * * `schema`
+ * For entries with type `FILESET`:
+ * * `schema`
+ * * `display_name`
+ * * `description`
+ * * `gcs_fileset_spec`
+ * * `gcs_fileset_spec.file_patterns`
+ * For entries with `user_specified_type`:
+ * * `schema`
+ * * `display_name`
+ * * `description`
+ * * `user_specified_type`
+ * * `user_specified_system`
+ * * `linked_resource`
+ * * `source_system_timestamps`
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ * @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);
+ }
+
+ /**
+ * Names of fields whose values to overwrite on an entry.
+ * If this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the
+ * request body, their values are emptied.
+ * You can modify only the fields listed below.
+ * For entries with type `DATA_STREAM`:
+ * * `schema`
+ * For entries with type `FILESET`:
+ * * `schema`
+ * * `display_name`
+ * * `description`
+ * * `gcs_fileset_spec`
+ * * `gcs_fileset_spec.file_patterns`
+ * For entries with `user_specified_type`:
+ * * `schema`
+ * * `display_name`
+ * * `description`
+ * * `user_specified_type`
+ * * `user_specified_system`
+ * * `linked_resource`
+ * * `source_system_timestamps`
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ * @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/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UpdatePolicyTagRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UpdatePolicyTagRequest.php
new file mode 100644
index 000000000000..a51c4f876e53
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UpdatePolicyTagRequest.php
@@ -0,0 +1,156 @@
+google.cloud.datacatalog.v1.UpdatePolicyTagRequest
+ */
+class UpdatePolicyTagRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The policy tag to update. You can update only its description, display
+ * name, and parent policy tag fields.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.PolicyTag policy_tag = 1;
+ */
+ protected $policy_tag = null;
+ /**
+ * Specifies the fields to update.
+ * You can update only display name, description, and parent policy tag.
+ * If not set, defaults to all updatable fields.
+ * For more information, see [FieldMask]
+ * (https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask).
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ */
+ protected $update_mask = null;
+
+ /**
+ * @param \Google\Cloud\DataCatalog\V1\PolicyTag $policyTag The policy tag to update. You can update only its description, display
+ * name, and parent policy tag fields.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\UpdatePolicyTagRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\DataCatalog\V1\PolicyTag $policyTag): self
+ {
+ return (new self())
+ ->setPolicyTag($policyTag);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\DataCatalog\V1\PolicyTag $policy_tag
+ * The policy tag to update. You can update only its description, display
+ * name, and parent policy tag fields.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Specifies the fields to update.
+ * You can update only display name, description, and parent policy tag.
+ * If not set, defaults to all updatable fields.
+ * For more information, see [FieldMask]
+ * (https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Policytagmanager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The policy tag to update. You can update only its description, display
+ * name, and parent policy tag fields.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.PolicyTag policy_tag = 1;
+ * @return \Google\Cloud\DataCatalog\V1\PolicyTag|null
+ */
+ public function getPolicyTag()
+ {
+ return $this->policy_tag;
+ }
+
+ public function hasPolicyTag()
+ {
+ return isset($this->policy_tag);
+ }
+
+ public function clearPolicyTag()
+ {
+ unset($this->policy_tag);
+ }
+
+ /**
+ * The policy tag to update. You can update only its description, display
+ * name, and parent policy tag fields.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.PolicyTag policy_tag = 1;
+ * @param \Google\Cloud\DataCatalog\V1\PolicyTag $var
+ * @return $this
+ */
+ public function setPolicyTag($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\PolicyTag::class);
+ $this->policy_tag = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specifies the fields to update.
+ * You can update only display name, description, and parent policy tag.
+ * If not set, defaults to all updatable fields.
+ * For more information, see [FieldMask]
+ * (https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask).
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ * @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);
+ }
+
+ /**
+ * Specifies the fields to update.
+ * You can update only display name, description, and parent policy tag.
+ * If not set, defaults to all updatable fields.
+ * For more information, see [FieldMask]
+ * (https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask).
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ * @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/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UpdateTagRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UpdateTagRequest.php
new file mode 100644
index 000000000000..3be100dbab9f
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UpdateTagRequest.php
@@ -0,0 +1,171 @@
+google.cloud.datacatalog.v1.UpdateTagRequest
+ */
+class UpdateTagRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The updated tag. The "name" field must be set.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Tag tag = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $tag = null;
+ /**
+ * Names of fields whose values to overwrite on a tag. Currently, a tag has
+ * the only modifiable field with the name `fields`.
+ * In general, if this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the
+ * request body, their values are emptied.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ */
+ protected $update_mask = null;
+
+ /**
+ * @param \Google\Cloud\DataCatalog\V1\Tag $tag Required. The updated tag. The "name" field must be set.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\UpdateTagRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\DataCatalog\V1\Tag $tag): self
+ {
+ return (new self())
+ ->setTag($tag);
+ }
+
+ /**
+ * @param \Google\Cloud\DataCatalog\V1\Tag $tag Required. The updated tag. The "name" field must be set.
+ * @param \Google\Protobuf\FieldMask $updateMask Names of fields whose values to overwrite on a tag. Currently, a tag has
+ * the only modifiable field with the name `fields`.
+ *
+ * In general, if this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the
+ * request body, their values are emptied.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\UpdateTagRequest
+ *
+ * @experimental
+ */
+ public static function buildFromTagUpdateMask(\Google\Cloud\DataCatalog\V1\Tag $tag, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setTag($tag)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\DataCatalog\V1\Tag $tag
+ * Required. The updated tag. The "name" field must be set.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Names of fields whose values to overwrite on a tag. Currently, a tag has
+ * the only modifiable field with the name `fields`.
+ * In general, if this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the
+ * request body, their values are emptied.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The updated tag. The "name" field must be set.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Tag tag = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\DataCatalog\V1\Tag|null
+ */
+ public function getTag()
+ {
+ return $this->tag;
+ }
+
+ public function hasTag()
+ {
+ return isset($this->tag);
+ }
+
+ public function clearTag()
+ {
+ unset($this->tag);
+ }
+
+ /**
+ * Required. The updated tag. The "name" field must be set.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Tag tag = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\DataCatalog\V1\Tag $var
+ * @return $this
+ */
+ public function setTag($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\Tag::class);
+ $this->tag = $var;
+
+ return $this;
+ }
+
+ /**
+ * Names of fields whose values to overwrite on a tag. Currently, a tag has
+ * the only modifiable field with the name `fields`.
+ * In general, if this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the
+ * request body, their values are emptied.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ * @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);
+ }
+
+ /**
+ * Names of fields whose values to overwrite on a tag. Currently, a tag has
+ * the only modifiable field with the name `fields`.
+ * In general, if this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the
+ * request body, their values are emptied.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ * @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/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UpdateTagTemplateFieldRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UpdateTagTemplateFieldRequest.php
new file mode 100644
index 000000000000..2886ab41f940
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UpdateTagTemplateFieldRequest.php
@@ -0,0 +1,253 @@
+google.cloud.datacatalog.v1.UpdateTagTemplateFieldRequest
+ */
+class UpdateTagTemplateFieldRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the tag template field.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Required. The template to update.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.TagTemplateField tag_template_field = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $tag_template_field = null;
+ /**
+ * Optional. Names of fields whose values to overwrite on an individual field
+ * of a tag template. The following fields are modifiable:
+ * * `display_name`
+ * * `type.enum_type`
+ * * `is_required`
+ * If this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the request
+ * body, their values are emptied with one exception: when updating an enum
+ * type, the provided values are merged with the existing values. Therefore,
+ * enum values can only be added, existing enum values cannot be deleted or
+ * renamed.
+ * Additionally, updating a template field from optional to required is
+ * *not* allowed.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $update_mask = null;
+
+ /**
+ * @param string $name Required. The name of the tag template field. Please see
+ * {@see DataCatalogClient::tagTemplateFieldName()} for help formatting this field.
+ * @param \Google\Cloud\DataCatalog\V1\TagTemplateField $tagTemplateField Required. The template to update.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\UpdateTagTemplateFieldRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name, \Google\Cloud\DataCatalog\V1\TagTemplateField $tagTemplateField): self
+ {
+ return (new self())
+ ->setName($name)
+ ->setTagTemplateField($tagTemplateField);
+ }
+
+ /**
+ * @param string $name Required. The name of the tag template field. Please see
+ * {@see DataCatalogClient::tagTemplateFieldName()} for help formatting this field.
+ * @param \Google\Cloud\DataCatalog\V1\TagTemplateField $tagTemplateField Required. The template to update.
+ * @param \Google\Protobuf\FieldMask $updateMask Optional. Names of fields whose values to overwrite on an individual field
+ * of a tag template. The following fields are modifiable:
+ *
+ * * `display_name`
+ * * `type.enum_type`
+ * * `is_required`
+ *
+ * If this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the request
+ * body, their values are emptied with one exception: when updating an enum
+ * type, the provided values are merged with the existing values. Therefore,
+ * enum values can only be added, existing enum values cannot be deleted or
+ * renamed.
+ *
+ * Additionally, updating a template field from optional to required is
+ * *not* allowed.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\UpdateTagTemplateFieldRequest
+ *
+ * @experimental
+ */
+ public static function buildFromNameTagTemplateFieldUpdateMask(string $name, \Google\Cloud\DataCatalog\V1\TagTemplateField $tagTemplateField, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setName($name)
+ ->setTagTemplateField($tagTemplateField)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the tag template field.
+ * @type \Google\Cloud\DataCatalog\V1\TagTemplateField $tag_template_field
+ * Required. The template to update.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Optional. Names of fields whose values to overwrite on an individual field
+ * of a tag template. The following fields are modifiable:
+ * * `display_name`
+ * * `type.enum_type`
+ * * `is_required`
+ * If this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the request
+ * body, their values are emptied with one exception: when updating an enum
+ * type, the provided values are merged with the existing values. Therefore,
+ * enum values can only be added, existing enum values cannot be deleted or
+ * renamed.
+ * Additionally, updating a template field from optional to required is
+ * *not* allowed.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the tag template field.
+ *
+ * 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 tag template field.
+ *
+ * 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 template to update.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.TagTemplateField tag_template_field = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\DataCatalog\V1\TagTemplateField|null
+ */
+ public function getTagTemplateField()
+ {
+ return $this->tag_template_field;
+ }
+
+ public function hasTagTemplateField()
+ {
+ return isset($this->tag_template_field);
+ }
+
+ public function clearTagTemplateField()
+ {
+ unset($this->tag_template_field);
+ }
+
+ /**
+ * Required. The template to update.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.TagTemplateField tag_template_field = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\DataCatalog\V1\TagTemplateField $var
+ * @return $this
+ */
+ public function setTagTemplateField($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\TagTemplateField::class);
+ $this->tag_template_field = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Names of fields whose values to overwrite on an individual field
+ * of a tag template. The following fields are modifiable:
+ * * `display_name`
+ * * `type.enum_type`
+ * * `is_required`
+ * If this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the request
+ * body, their values are emptied with one exception: when updating an enum
+ * type, the provided values are merged with the existing values. Therefore,
+ * enum values can only be added, existing enum values cannot be deleted or
+ * renamed.
+ * Additionally, updating a template field from optional to required is
+ * *not* allowed.
+ *
+ * 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. Names of fields whose values to overwrite on an individual field
+ * of a tag template. The following fields are modifiable:
+ * * `display_name`
+ * * `type.enum_type`
+ * * `is_required`
+ * If this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the request
+ * body, their values are emptied with one exception: when updating an enum
+ * type, the provided values are merged with the existing values. Therefore,
+ * enum values can only be added, existing enum values cannot be deleted or
+ * renamed.
+ * Additionally, updating a template field from optional to required is
+ * *not* allowed.
+ *
+ * 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/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UpdateTagTemplateRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UpdateTagTemplateRequest.php
new file mode 100644
index 000000000000..8fe3da4bcd3b
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UpdateTagTemplateRequest.php
@@ -0,0 +1,182 @@
+google.cloud.datacatalog.v1.UpdateTagTemplateRequest
+ */
+class UpdateTagTemplateRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The template to update. The `name` field must be set.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.TagTemplate tag_template = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $tag_template = null;
+ /**
+ * Names of fields whose values to overwrite on a tag template. Currently,
+ * only `display_name` and `is_publicly_readable` can be overwritten.
+ * If this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the
+ * request body, their values are emptied.
+ * Note: Updating the `is_publicly_readable` field may require up to 12
+ * hours to take effect in search results.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ */
+ protected $update_mask = null;
+
+ /**
+ * @param \Google\Cloud\DataCatalog\V1\TagTemplate $tagTemplate Required. The template to update. The `name` field must be set.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\UpdateTagTemplateRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\DataCatalog\V1\TagTemplate $tagTemplate): self
+ {
+ return (new self())
+ ->setTagTemplate($tagTemplate);
+ }
+
+ /**
+ * @param \Google\Cloud\DataCatalog\V1\TagTemplate $tagTemplate Required. The template to update. The `name` field must be set.
+ * @param \Google\Protobuf\FieldMask $updateMask Names of fields whose values to overwrite on a tag template. Currently,
+ * only `display_name` and `is_publicly_readable` can be overwritten.
+ *
+ * If this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the
+ * request body, their values are emptied.
+ *
+ * Note: Updating the `is_publicly_readable` field may require up to 12
+ * hours to take effect in search results.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\UpdateTagTemplateRequest
+ *
+ * @experimental
+ */
+ public static function buildFromTagTemplateUpdateMask(\Google\Cloud\DataCatalog\V1\TagTemplate $tagTemplate, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setTagTemplate($tagTemplate)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\DataCatalog\V1\TagTemplate $tag_template
+ * Required. The template to update. The `name` field must be set.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Names of fields whose values to overwrite on a tag template. Currently,
+ * only `display_name` and `is_publicly_readable` can be overwritten.
+ * If this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the
+ * request body, their values are emptied.
+ * Note: Updating the `is_publicly_readable` field may require up to 12
+ * hours to take effect in search results.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The template to update. The `name` field must be set.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.TagTemplate tag_template = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\DataCatalog\V1\TagTemplate|null
+ */
+ public function getTagTemplate()
+ {
+ return $this->tag_template;
+ }
+
+ public function hasTagTemplate()
+ {
+ return isset($this->tag_template);
+ }
+
+ public function clearTagTemplate()
+ {
+ unset($this->tag_template);
+ }
+
+ /**
+ * Required. The template to update. The `name` field must be set.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.TagTemplate tag_template = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\DataCatalog\V1\TagTemplate $var
+ * @return $this
+ */
+ public function setTagTemplate($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\TagTemplate::class);
+ $this->tag_template = $var;
+
+ return $this;
+ }
+
+ /**
+ * Names of fields whose values to overwrite on a tag template. Currently,
+ * only `display_name` and `is_publicly_readable` can be overwritten.
+ * If this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the
+ * request body, their values are emptied.
+ * Note: Updating the `is_publicly_readable` field may require up to 12
+ * hours to take effect in search results.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ * @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);
+ }
+
+ /**
+ * Names of fields whose values to overwrite on a tag template. Currently,
+ * only `display_name` and `is_publicly_readable` can be overwritten.
+ * If this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the
+ * request body, their values are emptied.
+ * Note: Updating the `is_publicly_readable` field may require up to 12
+ * hours to take effect in search results.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ * @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/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UpdateTaxonomyRequest.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UpdateTaxonomyRequest.php
new file mode 100644
index 000000000000..ce0a2830e873
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UpdateTaxonomyRequest.php
@@ -0,0 +1,152 @@
+google.cloud.datacatalog.v1.UpdateTaxonomyRequest
+ */
+class UpdateTaxonomyRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The taxonomy to update. You can update only its description, display name,
+ * and activated policy types.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Taxonomy taxonomy = 1;
+ */
+ protected $taxonomy = null;
+ /**
+ * Specifies fields to update. If not set, defaults to all fields you can
+ * update.
+ * For more information, see [FieldMask]
+ * (https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask).
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ */
+ protected $update_mask = null;
+
+ /**
+ * @param \Google\Cloud\DataCatalog\V1\Taxonomy $taxonomy The taxonomy to update. You can update only its description, display name,
+ * and activated policy types.
+ *
+ * @return \Google\Cloud\DataCatalog\V1\UpdateTaxonomyRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\DataCatalog\V1\Taxonomy $taxonomy): self
+ {
+ return (new self())
+ ->setTaxonomy($taxonomy);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\DataCatalog\V1\Taxonomy $taxonomy
+ * The taxonomy to update. You can update only its description, display name,
+ * and activated policy types.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Specifies fields to update. If not set, defaults to all fields you can
+ * update.
+ * For more information, see [FieldMask]
+ * (https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Policytagmanager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The taxonomy to update. You can update only its description, display name,
+ * and activated policy types.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Taxonomy taxonomy = 1;
+ * @return \Google\Cloud\DataCatalog\V1\Taxonomy|null
+ */
+ public function getTaxonomy()
+ {
+ return $this->taxonomy;
+ }
+
+ public function hasTaxonomy()
+ {
+ return isset($this->taxonomy);
+ }
+
+ public function clearTaxonomy()
+ {
+ unset($this->taxonomy);
+ }
+
+ /**
+ * The taxonomy to update. You can update only its description, display name,
+ * and activated policy types.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.Taxonomy taxonomy = 1;
+ * @param \Google\Cloud\DataCatalog\V1\Taxonomy $var
+ * @return $this
+ */
+ public function setTaxonomy($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\Taxonomy::class);
+ $this->taxonomy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specifies fields to update. If not set, defaults to all fields you can
+ * update.
+ * For more information, see [FieldMask]
+ * (https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask).
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ * @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);
+ }
+
+ /**
+ * Specifies fields to update. If not set, defaults to all fields you can
+ * update.
+ * For more information, see [FieldMask]
+ * (https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask).
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ * @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/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UsageSignal.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UsageSignal.php
new file mode 100644
index 000000000000..55f5ad1161dd
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UsageSignal.php
@@ -0,0 +1,203 @@
+google.cloud.datacatalog.v1.UsageSignal
+ */
+class UsageSignal extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The end timestamp of the duration of usage statistics.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 1;
+ */
+ protected $update_time = null;
+ /**
+ * Output only. BigQuery usage statistics over each of the predefined time
+ * ranges.
+ * Supported time ranges are `{"24H", "7D", "30D"}`.
+ *
+ * Generated from protobuf field map usage_within_time_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $usage_within_time_range;
+ /**
+ * Common usage statistics over each of the predefined time ranges.
+ * Supported time ranges are `{"24H", "7D", "30D", "Lifetime"}`.
+ *
+ * Generated from protobuf field map common_usage_within_time_range = 3;
+ */
+ private $common_usage_within_time_range;
+ /**
+ * Favorite count in the source system.
+ *
+ * Generated from protobuf field optional int64 favorite_count = 4;
+ */
+ protected $favorite_count = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Timestamp $update_time
+ * The end timestamp of the duration of usage statistics.
+ * @type array|\Google\Protobuf\Internal\MapField $usage_within_time_range
+ * Output only. BigQuery usage statistics over each of the predefined time
+ * ranges.
+ * Supported time ranges are `{"24H", "7D", "30D"}`.
+ * @type array|\Google\Protobuf\Internal\MapField $common_usage_within_time_range
+ * Common usage statistics over each of the predefined time ranges.
+ * Supported time ranges are `{"24H", "7D", "30D", "Lifetime"}`.
+ * @type int|string $favorite_count
+ * Favorite count in the source system.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Usage::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The end timestamp of the duration of usage statistics.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 1;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * The end timestamp of the duration of usage statistics.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 1;
+ * @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. BigQuery usage statistics over each of the predefined time
+ * ranges.
+ * Supported time ranges are `{"24H", "7D", "30D"}`.
+ *
+ * Generated from protobuf field map usage_within_time_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getUsageWithinTimeRange()
+ {
+ return $this->usage_within_time_range;
+ }
+
+ /**
+ * Output only. BigQuery usage statistics over each of the predefined time
+ * ranges.
+ * Supported time ranges are `{"24H", "7D", "30D"}`.
+ *
+ * Generated from protobuf field map usage_within_time_range = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setUsageWithinTimeRange($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\DataCatalog\V1\UsageStats::class);
+ $this->usage_within_time_range = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Common usage statistics over each of the predefined time ranges.
+ * Supported time ranges are `{"24H", "7D", "30D", "Lifetime"}`.
+ *
+ * Generated from protobuf field map common_usage_within_time_range = 3;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getCommonUsageWithinTimeRange()
+ {
+ return $this->common_usage_within_time_range;
+ }
+
+ /**
+ * Common usage statistics over each of the predefined time ranges.
+ * Supported time ranges are `{"24H", "7D", "30D", "Lifetime"}`.
+ *
+ * Generated from protobuf field map common_usage_within_time_range = 3;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setCommonUsageWithinTimeRange($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\DataCatalog\V1\CommonUsageStats::class);
+ $this->common_usage_within_time_range = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Favorite count in the source system.
+ *
+ * Generated from protobuf field optional int64 favorite_count = 4;
+ * @return int|string
+ */
+ public function getFavoriteCount()
+ {
+ return isset($this->favorite_count) ? $this->favorite_count : 0;
+ }
+
+ public function hasFavoriteCount()
+ {
+ return isset($this->favorite_count);
+ }
+
+ public function clearFavoriteCount()
+ {
+ unset($this->favorite_count);
+ }
+
+ /**
+ * Favorite count in the source system.
+ *
+ * Generated from protobuf field optional int64 favorite_count = 4;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setFavoriteCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->favorite_count = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UsageStats.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UsageStats.php
new file mode 100644
index 000000000000..c98875850054
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/UsageStats.php
@@ -0,0 +1,176 @@
+google.cloud.datacatalog.v1.UsageStats
+ */
+class UsageStats extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The number of successful uses of the underlying entry.
+ *
+ * Generated from protobuf field float total_completions = 1;
+ */
+ protected $total_completions = 0.0;
+ /**
+ * The number of failed attempts to use the underlying entry.
+ *
+ * Generated from protobuf field float total_failures = 2;
+ */
+ protected $total_failures = 0.0;
+ /**
+ * The number of cancelled attempts to use the underlying entry.
+ *
+ * Generated from protobuf field float total_cancellations = 3;
+ */
+ protected $total_cancellations = 0.0;
+ /**
+ * Total time spent only on successful uses, in milliseconds.
+ *
+ * Generated from protobuf field float total_execution_time_for_completions_millis = 4;
+ */
+ protected $total_execution_time_for_completions_millis = 0.0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type float $total_completions
+ * The number of successful uses of the underlying entry.
+ * @type float $total_failures
+ * The number of failed attempts to use the underlying entry.
+ * @type float $total_cancellations
+ * The number of cancelled attempts to use the underlying entry.
+ * @type float $total_execution_time_for_completions_millis
+ * Total time spent only on successful uses, in milliseconds.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Usage::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The number of successful uses of the underlying entry.
+ *
+ * Generated from protobuf field float total_completions = 1;
+ * @return float
+ */
+ public function getTotalCompletions()
+ {
+ return $this->total_completions;
+ }
+
+ /**
+ * The number of successful uses of the underlying entry.
+ *
+ * Generated from protobuf field float total_completions = 1;
+ * @param float $var
+ * @return $this
+ */
+ public function setTotalCompletions($var)
+ {
+ GPBUtil::checkFloat($var);
+ $this->total_completions = $var;
+
+ return $this;
+ }
+
+ /**
+ * The number of failed attempts to use the underlying entry.
+ *
+ * Generated from protobuf field float total_failures = 2;
+ * @return float
+ */
+ public function getTotalFailures()
+ {
+ return $this->total_failures;
+ }
+
+ /**
+ * The number of failed attempts to use the underlying entry.
+ *
+ * Generated from protobuf field float total_failures = 2;
+ * @param float $var
+ * @return $this
+ */
+ public function setTotalFailures($var)
+ {
+ GPBUtil::checkFloat($var);
+ $this->total_failures = $var;
+
+ return $this;
+ }
+
+ /**
+ * The number of cancelled attempts to use the underlying entry.
+ *
+ * Generated from protobuf field float total_cancellations = 3;
+ * @return float
+ */
+ public function getTotalCancellations()
+ {
+ return $this->total_cancellations;
+ }
+
+ /**
+ * The number of cancelled attempts to use the underlying entry.
+ *
+ * Generated from protobuf field float total_cancellations = 3;
+ * @param float $var
+ * @return $this
+ */
+ public function setTotalCancellations($var)
+ {
+ GPBUtil::checkFloat($var);
+ $this->total_cancellations = $var;
+
+ return $this;
+ }
+
+ /**
+ * Total time spent only on successful uses, in milliseconds.
+ *
+ * Generated from protobuf field float total_execution_time_for_completions_millis = 4;
+ * @return float
+ */
+ public function getTotalExecutionTimeForCompletionsMillis()
+ {
+ return $this->total_execution_time_for_completions_millis;
+ }
+
+ /**
+ * Total time spent only on successful uses, in milliseconds.
+ *
+ * Generated from protobuf field float total_execution_time_for_completions_millis = 4;
+ * @param float $var
+ * @return $this
+ */
+ public function setTotalExecutionTimeForCompletionsMillis($var)
+ {
+ GPBUtil::checkFloat($var);
+ $this->total_execution_time_for_completions_millis = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/VertexDatasetSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/VertexDatasetSpec.php
new file mode 100644
index 000000000000..e81f1f14226e
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/VertexDatasetSpec.php
@@ -0,0 +1,105 @@
+google.cloud.datacatalog.v1.VertexDatasetSpec
+ */
+class VertexDatasetSpec extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The number of DataItems in this Dataset. Only apply for non-structured
+ * Dataset.
+ *
+ * Generated from protobuf field int64 data_item_count = 1;
+ */
+ protected $data_item_count = 0;
+ /**
+ * Type of the dataset.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.VertexDatasetSpec.DataType data_type = 2;
+ */
+ protected $data_type = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $data_item_count
+ * The number of DataItems in this Dataset. Only apply for non-structured
+ * Dataset.
+ * @type int $data_type
+ * Type of the dataset.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The number of DataItems in this Dataset. Only apply for non-structured
+ * Dataset.
+ *
+ * Generated from protobuf field int64 data_item_count = 1;
+ * @return int|string
+ */
+ public function getDataItemCount()
+ {
+ return $this->data_item_count;
+ }
+
+ /**
+ * The number of DataItems in this Dataset. Only apply for non-structured
+ * Dataset.
+ *
+ * Generated from protobuf field int64 data_item_count = 1;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setDataItemCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->data_item_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Type of the dataset.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.VertexDatasetSpec.DataType data_type = 2;
+ * @return int
+ */
+ public function getDataType()
+ {
+ return $this->data_type;
+ }
+
+ /**
+ * Type of the dataset.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.VertexDatasetSpec.DataType data_type = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setDataType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\DataCatalog\V1\VertexDatasetSpec\DataType::class);
+ $this->data_type = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/VertexDatasetSpec/DataType.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/VertexDatasetSpec/DataType.php
new file mode 100644
index 000000000000..a5372cf15e3b
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/VertexDatasetSpec/DataType.php
@@ -0,0 +1,138 @@
+google.cloud.datacatalog.v1.VertexDatasetSpec.DataType
+ */
+class DataType
+{
+ /**
+ * Should not be used.
+ *
+ * Generated from protobuf enum DATA_TYPE_UNSPECIFIED = 0;
+ */
+ const DATA_TYPE_UNSPECIFIED = 0;
+ /**
+ * Structured data dataset.
+ *
+ * Generated from protobuf enum TABLE = 1;
+ */
+ const TABLE = 1;
+ /**
+ * Image dataset which supports ImageClassification, ImageObjectDetection
+ * and ImageSegmentation problems.
+ *
+ * Generated from protobuf enum IMAGE = 2;
+ */
+ const IMAGE = 2;
+ /**
+ * Document dataset which supports TextClassification, TextExtraction and
+ * TextSentiment problems.
+ *
+ * Generated from protobuf enum TEXT = 3;
+ */
+ const TEXT = 3;
+ /**
+ * Video dataset which supports VideoClassification, VideoObjectTracking and
+ * VideoActionRecognition problems.
+ *
+ * Generated from protobuf enum VIDEO = 4;
+ */
+ const VIDEO = 4;
+ /**
+ * Conversation dataset which supports conversation problems.
+ *
+ * Generated from protobuf enum CONVERSATION = 5;
+ */
+ const CONVERSATION = 5;
+ /**
+ * TimeSeries dataset.
+ *
+ * Generated from protobuf enum TIME_SERIES = 6;
+ */
+ const TIME_SERIES = 6;
+ /**
+ * Document dataset which supports DocumentAnnotation problems.
+ *
+ * Generated from protobuf enum DOCUMENT = 7;
+ */
+ const DOCUMENT = 7;
+ /**
+ * TextToSpeech dataset which supports TextToSpeech problems.
+ *
+ * Generated from protobuf enum TEXT_TO_SPEECH = 8;
+ */
+ const TEXT_TO_SPEECH = 8;
+ /**
+ * Translation dataset which supports Translation problems.
+ *
+ * Generated from protobuf enum TRANSLATION = 9;
+ */
+ const TRANSLATION = 9;
+ /**
+ * Store Vision dataset which is used for HITL integration.
+ *
+ * Generated from protobuf enum STORE_VISION = 10;
+ */
+ const STORE_VISION = 10;
+ /**
+ * Enterprise Knowledge Graph dataset which is used for HITL labeling
+ * integration.
+ *
+ * Generated from protobuf enum ENTERPRISE_KNOWLEDGE_GRAPH = 11;
+ */
+ const ENTERPRISE_KNOWLEDGE_GRAPH = 11;
+ /**
+ * Text prompt dataset which supports Large Language Models.
+ *
+ * Generated from protobuf enum TEXT_PROMPT = 12;
+ */
+ const TEXT_PROMPT = 12;
+
+ private static $valueToName = [
+ self::DATA_TYPE_UNSPECIFIED => 'DATA_TYPE_UNSPECIFIED',
+ self::TABLE => 'TABLE',
+ self::IMAGE => 'IMAGE',
+ self::TEXT => 'TEXT',
+ self::VIDEO => 'VIDEO',
+ self::CONVERSATION => 'CONVERSATION',
+ self::TIME_SERIES => 'TIME_SERIES',
+ self::DOCUMENT => 'DOCUMENT',
+ self::TEXT_TO_SPEECH => 'TEXT_TO_SPEECH',
+ self::TRANSLATION => 'TRANSLATION',
+ self::STORE_VISION => 'STORE_VISION',
+ self::ENTERPRISE_KNOWLEDGE_GRAPH => 'ENTERPRISE_KNOWLEDGE_GRAPH',
+ self::TEXT_PROMPT => 'TEXT_PROMPT',
+ ];
+
+ 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(DataType::class, \Google\Cloud\DataCatalog\V1\VertexDatasetSpec_DataType::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/VertexModelSourceInfo.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/VertexModelSourceInfo.php
new file mode 100644
index 000000000000..276df35d3029
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/VertexModelSourceInfo.php
@@ -0,0 +1,109 @@
+google.cloud.datacatalog.v1.VertexModelSourceInfo
+ */
+class VertexModelSourceInfo extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Type of the model source.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.VertexModelSourceInfo.ModelSourceType source_type = 1;
+ */
+ protected $source_type = 0;
+ /**
+ * If this Model is copy of another Model. If true then
+ * [source_type][google.cloud.datacatalog.v1.VertexModelSourceInfo.source_type]
+ * pertains to the original.
+ *
+ * Generated from protobuf field bool copy = 2;
+ */
+ protected $copy = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $source_type
+ * Type of the model source.
+ * @type bool $copy
+ * If this Model is copy of another Model. If true then
+ * [source_type][google.cloud.datacatalog.v1.VertexModelSourceInfo.source_type]
+ * pertains to the original.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Type of the model source.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.VertexModelSourceInfo.ModelSourceType source_type = 1;
+ * @return int
+ */
+ public function getSourceType()
+ {
+ return $this->source_type;
+ }
+
+ /**
+ * Type of the model source.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.VertexModelSourceInfo.ModelSourceType source_type = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setSourceType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\DataCatalog\V1\VertexModelSourceInfo\ModelSourceType::class);
+ $this->source_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * If this Model is copy of another Model. If true then
+ * [source_type][google.cloud.datacatalog.v1.VertexModelSourceInfo.source_type]
+ * pertains to the original.
+ *
+ * Generated from protobuf field bool copy = 2;
+ * @return bool
+ */
+ public function getCopy()
+ {
+ return $this->copy;
+ }
+
+ /**
+ * If this Model is copy of another Model. If true then
+ * [source_type][google.cloud.datacatalog.v1.VertexModelSourceInfo.source_type]
+ * pertains to the original.
+ *
+ * Generated from protobuf field bool copy = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setCopy($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->copy = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/VertexModelSourceInfo/ModelSourceType.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/VertexModelSourceInfo/ModelSourceType.php
new file mode 100644
index 000000000000..7b0e1d42765c
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/VertexModelSourceInfo/ModelSourceType.php
@@ -0,0 +1,78 @@
+google.cloud.datacatalog.v1.VertexModelSourceInfo.ModelSourceType
+ */
+class ModelSourceType
+{
+ /**
+ * Should not be used.
+ *
+ * Generated from protobuf enum MODEL_SOURCE_TYPE_UNSPECIFIED = 0;
+ */
+ const MODEL_SOURCE_TYPE_UNSPECIFIED = 0;
+ /**
+ * The Model is uploaded by automl training pipeline.
+ *
+ * Generated from protobuf enum AUTOML = 1;
+ */
+ const AUTOML = 1;
+ /**
+ * The Model is uploaded by user or custom training pipeline.
+ *
+ * Generated from protobuf enum CUSTOM = 2;
+ */
+ const CUSTOM = 2;
+ /**
+ * The Model is registered and sync'ed from BigQuery ML.
+ *
+ * Generated from protobuf enum BQML = 3;
+ */
+ const BQML = 3;
+ /**
+ * The Model is saved or tuned from Model Garden.
+ *
+ * Generated from protobuf enum MODEL_GARDEN = 4;
+ */
+ const MODEL_GARDEN = 4;
+
+ private static $valueToName = [
+ self::MODEL_SOURCE_TYPE_UNSPECIFIED => 'MODEL_SOURCE_TYPE_UNSPECIFIED',
+ self::AUTOML => 'AUTOML',
+ self::CUSTOM => 'CUSTOM',
+ self::BQML => 'BQML',
+ self::MODEL_GARDEN => 'MODEL_GARDEN',
+ ];
+
+ 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(ModelSourceType::class, \Google\Cloud\DataCatalog\V1\VertexModelSourceInfo_ModelSourceType::class);
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/VertexModelSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/VertexModelSpec.php
new file mode 100644
index 000000000000..649d11443130
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/VertexModelSpec.php
@@ -0,0 +1,221 @@
+google.cloud.datacatalog.v1.VertexModelSpec
+ */
+class VertexModelSpec extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The version ID of the model.
+ *
+ * Generated from protobuf field string version_id = 1;
+ */
+ protected $version_id = '';
+ /**
+ * User provided version aliases so that a model version can be referenced via
+ * alias
+ *
+ * Generated from protobuf field repeated string version_aliases = 2;
+ */
+ private $version_aliases;
+ /**
+ * The description of this version.
+ *
+ * Generated from protobuf field string version_description = 3;
+ */
+ protected $version_description = '';
+ /**
+ * Source of a Vertex model.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.VertexModelSourceInfo vertex_model_source_info = 4;
+ */
+ protected $vertex_model_source_info = null;
+ /**
+ * URI of the Docker image to be used as the custom container for serving
+ * predictions.
+ *
+ * Generated from protobuf field string container_image_uri = 5;
+ */
+ protected $container_image_uri = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $version_id
+ * The version ID of the model.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $version_aliases
+ * User provided version aliases so that a model version can be referenced via
+ * alias
+ * @type string $version_description
+ * The description of this version.
+ * @type \Google\Cloud\DataCatalog\V1\VertexModelSourceInfo $vertex_model_source_info
+ * Source of a Vertex model.
+ * @type string $container_image_uri
+ * URI of the Docker image to be used as the custom container for serving
+ * predictions.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\Datacatalog::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The version ID of the model.
+ *
+ * Generated from protobuf field string version_id = 1;
+ * @return string
+ */
+ public function getVersionId()
+ {
+ return $this->version_id;
+ }
+
+ /**
+ * The version ID of the model.
+ *
+ * Generated from protobuf field string version_id = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setVersionId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->version_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * User provided version aliases so that a model version can be referenced via
+ * alias
+ *
+ * Generated from protobuf field repeated string version_aliases = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getVersionAliases()
+ {
+ return $this->version_aliases;
+ }
+
+ /**
+ * User provided version aliases so that a model version can be referenced via
+ * alias
+ *
+ * Generated from protobuf field repeated string version_aliases = 2;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setVersionAliases($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->version_aliases = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The description of this version.
+ *
+ * Generated from protobuf field string version_description = 3;
+ * @return string
+ */
+ public function getVersionDescription()
+ {
+ return $this->version_description;
+ }
+
+ /**
+ * The description of this version.
+ *
+ * Generated from protobuf field string version_description = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setVersionDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->version_description = $var;
+
+ return $this;
+ }
+
+ /**
+ * Source of a Vertex model.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.VertexModelSourceInfo vertex_model_source_info = 4;
+ * @return \Google\Cloud\DataCatalog\V1\VertexModelSourceInfo|null
+ */
+ public function getVertexModelSourceInfo()
+ {
+ return $this->vertex_model_source_info;
+ }
+
+ public function hasVertexModelSourceInfo()
+ {
+ return isset($this->vertex_model_source_info);
+ }
+
+ public function clearVertexModelSourceInfo()
+ {
+ unset($this->vertex_model_source_info);
+ }
+
+ /**
+ * Source of a Vertex model.
+ *
+ * Generated from protobuf field .google.cloud.datacatalog.v1.VertexModelSourceInfo vertex_model_source_info = 4;
+ * @param \Google\Cloud\DataCatalog\V1\VertexModelSourceInfo $var
+ * @return $this
+ */
+ public function setVertexModelSourceInfo($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\DataCatalog\V1\VertexModelSourceInfo::class);
+ $this->vertex_model_source_info = $var;
+
+ return $this;
+ }
+
+ /**
+ * URI of the Docker image to be used as the custom container for serving
+ * predictions.
+ *
+ * Generated from protobuf field string container_image_uri = 5;
+ * @return string
+ */
+ public function getContainerImageUri()
+ {
+ return $this->container_image_uri;
+ }
+
+ /**
+ * URI of the Docker image to be used as the custom container for serving
+ * predictions.
+ *
+ * Generated from protobuf field string container_image_uri = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setContainerImageUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->container_image_uri = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ViewSpec.php b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ViewSpec.php
new file mode 100644
index 000000000000..644575cef61f
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/proto/src/Google/Cloud/DataCatalog/V1/ViewSpec.php
@@ -0,0 +1,67 @@
+google.cloud.datacatalog.v1.ViewSpec
+ */
+class ViewSpec extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The query that defines the table view.
+ *
+ * Generated from protobuf field string view_query = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $view_query = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $view_query
+ * Output only. The query that defines the table view.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Datacatalog\V1\TableSpec::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The query that defines the table view.
+ *
+ * Generated from protobuf field string view_query = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getViewQuery()
+ {
+ return $this->view_query;
+ }
+
+ /**
+ * Output only. The query that defines the table view.
+ *
+ * Generated from protobuf field string view_query = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setViewQuery($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->view_query = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/create_entry.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/create_entry.php
new file mode 100644
index 000000000000..4dd1d3277a7f
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/create_entry.php
@@ -0,0 +1,93 @@
+setParent($formattedParent)
+ ->setEntryId($entryId)
+ ->setEntry($entry);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Entry $response */
+ $response = $dataCatalogClient->createEntry($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 = DataCatalogClient::entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ $entryId = '[ENTRY_ID]';
+
+ create_entry_sample($formattedParent, $entryId);
+}
+// [END datacatalog_v1_generated_DataCatalog_CreateEntry_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/create_entry_group.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/create_entry_group.php
new file mode 100644
index 000000000000..761af51e7844
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/create_entry_group.php
@@ -0,0 +1,108 @@
+setParent($formattedParent)
+ ->setEntryGroupId($entryGroupId);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var EntryGroup $response */
+ $response = $dataCatalogClient->createEntryGroup($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 = DataCatalogClient::locationName('[PROJECT]', '[LOCATION]');
+ $entryGroupId = '[ENTRY_GROUP_ID]';
+
+ create_entry_group_sample($formattedParent, $entryGroupId);
+}
+// [END datacatalog_v1_generated_DataCatalog_CreateEntryGroup_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/create_tag.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/create_tag.php
new file mode 100644
index 000000000000..4061327f5863
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/create_tag.php
@@ -0,0 +1,104 @@
+setTemplate($tagTemplate)
+ ->setFields($tagFields);
+ $request = (new CreateTagRequest())
+ ->setParent($formattedParent)
+ ->setTag($tag);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Tag $response */
+ $response = $dataCatalogClient->createTag($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 = DataCatalogClient::entryName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[ENTRY_GROUP]',
+ '[ENTRY]'
+ );
+ $tagTemplate = '[TEMPLATE]';
+
+ create_tag_sample($formattedParent, $tagTemplate);
+}
+// [END datacatalog_v1_generated_DataCatalog_CreateTag_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/create_tag_template.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/create_tag_template.php
new file mode 100644
index 000000000000..bc9de5a75d2c
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/create_tag_template.php
@@ -0,0 +1,88 @@
+setFields($tagTemplateFields);
+ $request = (new CreateTagTemplateRequest())
+ ->setParent($formattedParent)
+ ->setTagTemplateId($tagTemplateId)
+ ->setTagTemplate($tagTemplate);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var TagTemplate $response */
+ $response = $dataCatalogClient->createTagTemplate($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 = DataCatalogClient::locationName('[PROJECT]', '[LOCATION]');
+ $tagTemplateId = '[TAG_TEMPLATE_ID]';
+
+ create_tag_template_sample($formattedParent, $tagTemplateId);
+}
+// [END datacatalog_v1_generated_DataCatalog_CreateTagTemplate_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/create_tag_template_field.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/create_tag_template_field.php
new file mode 100644
index 000000000000..5f451e37bb57
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/create_tag_template_field.php
@@ -0,0 +1,93 @@
+setType($tagTemplateFieldType);
+ $request = (new CreateTagTemplateFieldRequest())
+ ->setParent($formattedParent)
+ ->setTagTemplateFieldId($tagTemplateFieldId)
+ ->setTagTemplateField($tagTemplateField);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var TagTemplateField $response */
+ $response = $dataCatalogClient->createTagTemplateField($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 = DataCatalogClient::tagTemplateName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]');
+ $tagTemplateFieldId = '[TAG_TEMPLATE_FIELD_ID]';
+
+ create_tag_template_field_sample($formattedParent, $tagTemplateFieldId);
+}
+// [END datacatalog_v1_generated_DataCatalog_CreateTagTemplateField_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/delete_entry.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/delete_entry.php
new file mode 100644
index 000000000000..3167594c9fec
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/delete_entry.php
@@ -0,0 +1,83 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ $dataCatalogClient->deleteEntry($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 = DataCatalogClient::entryName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[ENTRY_GROUP]',
+ '[ENTRY]'
+ );
+
+ delete_entry_sample($formattedName);
+}
+// [END datacatalog_v1_generated_DataCatalog_DeleteEntry_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/delete_entry_group.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/delete_entry_group.php
new file mode 100644
index 000000000000..8a07f05ee423
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/delete_entry_group.php
@@ -0,0 +1,74 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ $dataCatalogClient->deleteEntryGroup($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 = DataCatalogClient::entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+
+ delete_entry_group_sample($formattedName);
+}
+// [END datacatalog_v1_generated_DataCatalog_DeleteEntryGroup_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/delete_tag.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/delete_tag.php
new file mode 100644
index 000000000000..3e26ffd7d0ed
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/delete_tag.php
@@ -0,0 +1,74 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ $dataCatalogClient->deleteTag($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 = DataCatalogClient::entryName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[ENTRY_GROUP]',
+ '[ENTRY]'
+ );
+
+ delete_tag_sample($formattedName);
+}
+// [END datacatalog_v1_generated_DataCatalog_DeleteTag_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/delete_tag_template.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/delete_tag_template.php
new file mode 100644
index 000000000000..deb0e563d495
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/delete_tag_template.php
@@ -0,0 +1,78 @@
+setName($formattedName)
+ ->setForce($force);
+
+ // Call the API and handle any network failures.
+ try {
+ $dataCatalogClient->deleteTagTemplate($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 = DataCatalogClient::tagTemplateName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]');
+ $force = false;
+
+ delete_tag_template_sample($formattedName, $force);
+}
+// [END datacatalog_v1_generated_DataCatalog_DeleteTagTemplate_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/delete_tag_template_field.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/delete_tag_template_field.php
new file mode 100644
index 000000000000..edf3fb3d8e5f
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/delete_tag_template_field.php
@@ -0,0 +1,84 @@
+setName($formattedName)
+ ->setForce($force);
+
+ // Call the API and handle any network failures.
+ try {
+ $dataCatalogClient->deleteTagTemplateField($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 = DataCatalogClient::tagTemplateFieldName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[TAG_TEMPLATE]',
+ '[FIELD]'
+ );
+ $force = false;
+
+ delete_tag_template_field_sample($formattedName, $force);
+}
+// [END datacatalog_v1_generated_DataCatalog_DeleteTagTemplateField_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/get_entry.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/get_entry.php
new file mode 100644
index 000000000000..14162f257d67
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/get_entry.php
@@ -0,0 +1,76 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Entry $response */
+ $response = $dataCatalogClient->getEntry($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 = DataCatalogClient::entryName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[ENTRY_GROUP]',
+ '[ENTRY]'
+ );
+
+ get_entry_sample($formattedName);
+}
+// [END datacatalog_v1_generated_DataCatalog_GetEntry_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/get_entry_group.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/get_entry_group.php
new file mode 100644
index 000000000000..1b7207067afc
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/get_entry_group.php
@@ -0,0 +1,71 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var EntryGroup $response */
+ $response = $dataCatalogClient->getEntryGroup($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 = DataCatalogClient::entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+
+ get_entry_group_sample($formattedName);
+}
+// [END datacatalog_v1_generated_DataCatalog_GetEntryGroup_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/get_iam_policy.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/get_iam_policy.php
new file mode 100644
index 000000000000..54bdb4a9b0aa
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/get_iam_policy.php
@@ -0,0 +1,91 @@
+setResource($resource);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Policy $response */
+ $response = $dataCatalogClient->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 datacatalog_v1_generated_DataCatalog_GetIamPolicy_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/get_tag_template.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/get_tag_template.php
new file mode 100644
index 000000000000..5bb5bf4d3020
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/get_tag_template.php
@@ -0,0 +1,71 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var TagTemplate $response */
+ $response = $dataCatalogClient->getTagTemplate($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 = DataCatalogClient::tagTemplateName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]');
+
+ get_tag_template_sample($formattedName);
+}
+// [END datacatalog_v1_generated_DataCatalog_GetTagTemplate_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/import_entries.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/import_entries.php
new file mode 100644
index 000000000000..1a926d1498ed
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/import_entries.php
@@ -0,0 +1,100 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $dataCatalogClient->importEntries($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var ImportEntriesResponse $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 = DataCatalogClient::entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+
+ import_entries_sample($formattedParent);
+}
+// [END datacatalog_v1_generated_DataCatalog_ImportEntries_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/list_entries.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/list_entries.php
new file mode 100644
index 000000000000..2147a84e8383
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/list_entries.php
@@ -0,0 +1,82 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $dataCatalogClient->listEntries($request);
+
+ /** @var Entry $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 = DataCatalogClient::entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+
+ list_entries_sample($formattedParent);
+}
+// [END datacatalog_v1_generated_DataCatalog_ListEntries_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/list_entry_groups.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/list_entry_groups.php
new file mode 100644
index 000000000000..c41deda94967
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/list_entry_groups.php
@@ -0,0 +1,78 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $dataCatalogClient->listEntryGroups($request);
+
+ /** @var EntryGroup $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 = DataCatalogClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_entry_groups_sample($formattedParent);
+}
+// [END datacatalog_v1_generated_DataCatalog_ListEntryGroups_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/list_tags.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/list_tags.php
new file mode 100644
index 000000000000..5ad2673d22cd
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/list_tags.php
@@ -0,0 +1,87 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $dataCatalogClient->listTags($request);
+
+ /** @var Tag $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 = DataCatalogClient::entryName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[ENTRY_GROUP]',
+ '[ENTRY]'
+ );
+
+ list_tags_sample($formattedParent);
+}
+// [END datacatalog_v1_generated_DataCatalog_ListTags_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/lookup_entry.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/lookup_entry.php
new file mode 100644
index 000000000000..5bbe2a87b29a
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/lookup_entry.php
@@ -0,0 +1,59 @@
+lookupEntry($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END datacatalog_v1_generated_DataCatalog_LookupEntry_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/modify_entry_contacts.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/modify_entry_contacts.php
new file mode 100644
index 000000000000..8927dbe7fb60
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/modify_entry_contacts.php
@@ -0,0 +1,82 @@
+setName($formattedName)
+ ->setContacts($contacts);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Contacts $response */
+ $response = $dataCatalogClient->modifyEntryContacts($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 = DataCatalogClient::entryName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[ENTRY_GROUP]',
+ '[ENTRY]'
+ );
+
+ modify_entry_contacts_sample($formattedName);
+}
+// [END datacatalog_v1_generated_DataCatalog_ModifyEntryContacts_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/modify_entry_overview.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/modify_entry_overview.php
new file mode 100644
index 000000000000..f52dace8fdcc
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/modify_entry_overview.php
@@ -0,0 +1,82 @@
+setName($formattedName)
+ ->setEntryOverview($entryOverview);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var EntryOverview $response */
+ $response = $dataCatalogClient->modifyEntryOverview($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 = DataCatalogClient::entryName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[ENTRY_GROUP]',
+ '[ENTRY]'
+ );
+
+ modify_entry_overview_sample($formattedName);
+}
+// [END datacatalog_v1_generated_DataCatalog_ModifyEntryOverview_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/reconcile_tags.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/reconcile_tags.php
new file mode 100644
index 000000000000..22bddd479e30
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/reconcile_tags.php
@@ -0,0 +1,108 @@
+setParent($formattedParent)
+ ->setTagTemplate($formattedTagTemplate);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $dataCatalogClient->reconcileTags($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var ReconcileTagsResponse $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 = DataCatalogClient::entryName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[ENTRY_GROUP]',
+ '[ENTRY]'
+ );
+ $formattedTagTemplate = DataCatalogClient::tagTemplateName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[TAG_TEMPLATE]'
+ );
+
+ reconcile_tags_sample($formattedParent, $formattedTagTemplate);
+}
+// [END datacatalog_v1_generated_DataCatalog_ReconcileTags_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/rename_tag_template_field.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/rename_tag_template_field.php
new file mode 100644
index 000000000000..4581efa721a7
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/rename_tag_template_field.php
@@ -0,0 +1,86 @@
+setName($formattedName)
+ ->setNewTagTemplateFieldId($newTagTemplateFieldId);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var TagTemplateField $response */
+ $response = $dataCatalogClient->renameTagTemplateField($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 = DataCatalogClient::tagTemplateFieldName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[TAG_TEMPLATE]',
+ '[FIELD]'
+ );
+ $newTagTemplateFieldId = '[NEW_TAG_TEMPLATE_FIELD_ID]';
+
+ rename_tag_template_field_sample($formattedName, $newTagTemplateFieldId);
+}
+// [END datacatalog_v1_generated_DataCatalog_RenameTagTemplateField_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/rename_tag_template_field_enum_value.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/rename_tag_template_field_enum_value.php
new file mode 100644
index 000000000000..39f19f957110
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/rename_tag_template_field_enum_value.php
@@ -0,0 +1,85 @@
+setName($formattedName)
+ ->setNewEnumValueDisplayName($newEnumValueDisplayName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var TagTemplateField $response */
+ $response = $dataCatalogClient->renameTagTemplateFieldEnumValue($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 = DataCatalogClient::tagTemplateFieldEnumValueName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[TAG_TEMPLATE]',
+ '[TAG_TEMPLATE_FIELD_ID]',
+ '[ENUM_VALUE_DISPLAY_NAME]'
+ );
+ $newEnumValueDisplayName = '[NEW_ENUM_VALUE_DISPLAY_NAME]';
+
+ rename_tag_template_field_enum_value_sample($formattedName, $newEnumValueDisplayName);
+}
+// [END datacatalog_v1_generated_DataCatalog_RenameTagTemplateFieldEnumValue_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/search_catalog.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/search_catalog.php
new file mode 100644
index 000000000000..1035bf2e885d
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/search_catalog.php
@@ -0,0 +1,103 @@
+setScope($scope)
+ ->setQuery($query);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $dataCatalogClient->searchCatalog($request);
+
+ /** @var SearchCatalogResult $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
+{
+ $query = '[QUERY]';
+
+ search_catalog_sample($query);
+}
+// [END datacatalog_v1_generated_DataCatalog_SearchCatalog_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/set_iam_policy.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/set_iam_policy.php
new file mode 100644
index 000000000000..6c20d2af5444
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/set_iam_policy.php
@@ -0,0 +1,89 @@
+setResource($resource)
+ ->setPolicy($policy);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Policy $response */
+ $response = $dataCatalogClient->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 datacatalog_v1_generated_DataCatalog_SetIamPolicy_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/star_entry.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/star_entry.php
new file mode 100644
index 000000000000..e7977c4e447b
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/star_entry.php
@@ -0,0 +1,77 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var StarEntryResponse $response */
+ $response = $dataCatalogClient->starEntry($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 = DataCatalogClient::entryName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[ENTRY_GROUP]',
+ '[ENTRY]'
+ );
+
+ star_entry_sample($formattedName);
+}
+// [END datacatalog_v1_generated_DataCatalog_StarEntry_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/test_iam_permissions.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/test_iam_permissions.php
new file mode 100644
index 000000000000..2917991507d4
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/test_iam_permissions.php
@@ -0,0 +1,91 @@
+setResource($resource)
+ ->setPermissions($permissions);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var TestIamPermissionsResponse $response */
+ $response = $dataCatalogClient->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 datacatalog_v1_generated_DataCatalog_TestIamPermissions_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/unstar_entry.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/unstar_entry.php
new file mode 100644
index 000000000000..2e9c9e3102c1
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/unstar_entry.php
@@ -0,0 +1,77 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var UnstarEntryResponse $response */
+ $response = $dataCatalogClient->unstarEntry($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 = DataCatalogClient::entryName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[ENTRY_GROUP]',
+ '[ENTRY]'
+ );
+
+ unstar_entry_sample($formattedName);
+}
+// [END datacatalog_v1_generated_DataCatalog_UnstarEntry_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/update_entry.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/update_entry.php
new file mode 100644
index 000000000000..52bcb75026b2
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/update_entry.php
@@ -0,0 +1,64 @@
+setEntry($entry);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Entry $response */
+ $response = $dataCatalogClient->updateEntry($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END datacatalog_v1_generated_DataCatalog_UpdateEntry_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/update_entry_group.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/update_entry_group.php
new file mode 100644
index 000000000000..d8cc9a6a0f99
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/update_entry_group.php
@@ -0,0 +1,64 @@
+setEntryGroup($entryGroup);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var EntryGroup $response */
+ $response = $dataCatalogClient->updateEntryGroup($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END datacatalog_v1_generated_DataCatalog_UpdateEntryGroup_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/update_tag.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/update_tag.php
new file mode 100644
index 000000000000..2d355163a80e
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/update_tag.php
@@ -0,0 +1,78 @@
+setTemplate($tagTemplate)
+ ->setFields($tagFields);
+ $request = (new UpdateTagRequest())
+ ->setTag($tag);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Tag $response */
+ $response = $dataCatalogClient->updateTag($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
+{
+ $tagTemplate = '[TEMPLATE]';
+
+ update_tag_sample($tagTemplate);
+}
+// [END datacatalog_v1_generated_DataCatalog_UpdateTag_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/update_tag_template.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/update_tag_template.php
new file mode 100644
index 000000000000..063c43ec7c34
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/update_tag_template.php
@@ -0,0 +1,69 @@
+setFields($tagTemplateFields);
+ $request = (new UpdateTagTemplateRequest())
+ ->setTagTemplate($tagTemplate);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var TagTemplate $response */
+ $response = $dataCatalogClient->updateTagTemplate($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END datacatalog_v1_generated_DataCatalog_UpdateTagTemplate_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/update_tag_template_field.php b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/update_tag_template_field.php
new file mode 100644
index 000000000000..eadd6100895c
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/DataCatalogClient/update_tag_template_field.php
@@ -0,0 +1,88 @@
+setType($tagTemplateFieldType);
+ $request = (new UpdateTagTemplateFieldRequest())
+ ->setName($formattedName)
+ ->setTagTemplateField($tagTemplateField);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var TagTemplateField $response */
+ $response = $dataCatalogClient->updateTagTemplateField($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 = DataCatalogClient::tagTemplateFieldName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[TAG_TEMPLATE]',
+ '[FIELD]'
+ );
+
+ update_tag_template_field_sample($formattedName);
+}
+// [END datacatalog_v1_generated_DataCatalog_UpdateTagTemplateField_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/create_policy_tag.php b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/create_policy_tag.php
new file mode 100644
index 000000000000..b55f3aa145c0
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/create_policy_tag.php
@@ -0,0 +1,71 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PolicyTag $response */
+ $response = $policyTagManagerClient->createPolicyTag($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 = PolicyTagManagerClient::taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+
+ create_policy_tag_sample($formattedParent);
+}
+// [END datacatalog_v1_generated_PolicyTagManager_CreatePolicyTag_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/create_taxonomy.php b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/create_taxonomy.php
new file mode 100644
index 000000000000..2297b2bace11
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/create_taxonomy.php
@@ -0,0 +1,73 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Taxonomy $response */
+ $response = $policyTagManagerClient->createTaxonomy($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 = PolicyTagManagerClient::locationName('[PROJECT]', '[LOCATION]');
+
+ create_taxonomy_sample($formattedParent);
+}
+// [END datacatalog_v1_generated_PolicyTagManager_CreateTaxonomy_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/delete_policy_tag.php b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/delete_policy_tag.php
new file mode 100644
index 000000000000..24d5fbaa5de8
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/delete_policy_tag.php
@@ -0,0 +1,81 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ $policyTagManagerClient->deletePolicyTag($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 = PolicyTagManagerClient::policyTagName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[TAXONOMY]',
+ '[POLICY_TAG]'
+ );
+
+ delete_policy_tag_sample($formattedName);
+}
+// [END datacatalog_v1_generated_PolicyTagManager_DeletePolicyTag_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/delete_taxonomy.php b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/delete_taxonomy.php
new file mode 100644
index 000000000000..332e1d05e10d
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/delete_taxonomy.php
@@ -0,0 +1,73 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ $policyTagManagerClient->deleteTaxonomy($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 = PolicyTagManagerClient::taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+
+ delete_taxonomy_sample($formattedName);
+}
+// [END datacatalog_v1_generated_PolicyTagManager_DeleteTaxonomy_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/get_iam_policy.php b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/get_iam_policy.php
new file mode 100644
index 000000000000..d9b104d5531c
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/get_iam_policy.php
@@ -0,0 +1,71 @@
+setResource($resource);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Policy $response */
+ $response = $policyTagManagerClient->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 datacatalog_v1_generated_PolicyTagManager_GetIamPolicy_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/get_policy_tag.php b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/get_policy_tag.php
new file mode 100644
index 000000000000..fafde96fa062
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/get_policy_tag.php
@@ -0,0 +1,76 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PolicyTag $response */
+ $response = $policyTagManagerClient->getPolicyTag($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 = PolicyTagManagerClient::policyTagName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[TAXONOMY]',
+ '[POLICY_TAG]'
+ );
+
+ get_policy_tag_sample($formattedName);
+}
+// [END datacatalog_v1_generated_PolicyTagManager_GetPolicyTag_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/get_taxonomy.php b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/get_taxonomy.php
new file mode 100644
index 000000000000..7958be7f7594
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/get_taxonomy.php
@@ -0,0 +1,71 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Taxonomy $response */
+ $response = $policyTagManagerClient->getTaxonomy($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 = PolicyTagManagerClient::taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+
+ get_taxonomy_sample($formattedName);
+}
+// [END datacatalog_v1_generated_PolicyTagManager_GetTaxonomy_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/list_policy_tags.php b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/list_policy_tags.php
new file mode 100644
index 000000000000..be2e0b3af801
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/list_policy_tags.php
@@ -0,0 +1,76 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $policyTagManagerClient->listPolicyTags($request);
+
+ /** @var PolicyTag $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 = PolicyTagManagerClient::taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+
+ list_policy_tags_sample($formattedParent);
+}
+// [END datacatalog_v1_generated_PolicyTagManager_ListPolicyTags_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/list_taxonomies.php b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/list_taxonomies.php
new file mode 100644
index 000000000000..e3a043ecd47d
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/list_taxonomies.php
@@ -0,0 +1,77 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $policyTagManagerClient->listTaxonomies($request);
+
+ /** @var Taxonomy $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 = PolicyTagManagerClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_taxonomies_sample($formattedParent);
+}
+// [END datacatalog_v1_generated_PolicyTagManager_ListTaxonomies_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/set_iam_policy.php b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/set_iam_policy.php
new file mode 100644
index 000000000000..8189a8162704
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/set_iam_policy.php
@@ -0,0 +1,73 @@
+setResource($resource)
+ ->setPolicy($policy);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Policy $response */
+ $response = $policyTagManagerClient->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 datacatalog_v1_generated_PolicyTagManager_SetIamPolicy_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/test_iam_permissions.php b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/test_iam_permissions.php
new file mode 100644
index 000000000000..ca75b4550cca
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/test_iam_permissions.php
@@ -0,0 +1,79 @@
+setResource($resource)
+ ->setPermissions($permissions);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var TestIamPermissionsResponse $response */
+ $response = $policyTagManagerClient->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 datacatalog_v1_generated_PolicyTagManager_TestIamPermissions_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/update_policy_tag.php b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/update_policy_tag.php
new file mode 100644
index 000000000000..e5fe0710f74b
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/update_policy_tag.php
@@ -0,0 +1,58 @@
+updatePolicyTag($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END datacatalog_v1_generated_PolicyTagManager_UpdatePolicyTag_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/update_taxonomy.php b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/update_taxonomy.php
new file mode 100644
index 000000000000..85e7f4a3e623
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerClient/update_taxonomy.php
@@ -0,0 +1,58 @@
+updateTaxonomy($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END datacatalog_v1_generated_PolicyTagManager_UpdateTaxonomy_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerSerializationClient/export_taxonomies.php b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerSerializationClient/export_taxonomies.php
new file mode 100644
index 000000000000..8c745f1d0b14
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerSerializationClient/export_taxonomies.php
@@ -0,0 +1,88 @@
+setParent($formattedParent)
+ ->setTaxonomies($formattedTaxonomies);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var ExportTaxonomiesResponse $response */
+ $response = $policyTagManagerSerializationClient->exportTaxonomies($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 = PolicyTagManagerSerializationClient::locationName('[PROJECT]', '[LOCATION]');
+ $formattedTaxonomiesElement = PolicyTagManagerSerializationClient::taxonomyName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[TAXONOMY]'
+ );
+
+ export_taxonomies_sample($formattedParent, $formattedTaxonomiesElement);
+}
+// [END datacatalog_v1_generated_PolicyTagManagerSerialization_ExportTaxonomies_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerSerializationClient/import_taxonomies.php b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerSerializationClient/import_taxonomies.php
new file mode 100644
index 000000000000..fdb35e91ec7c
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerSerializationClient/import_taxonomies.php
@@ -0,0 +1,79 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var ImportTaxonomiesResponse $response */
+ $response = $policyTagManagerSerializationClient->importTaxonomies($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 = PolicyTagManagerSerializationClient::locationName('[PROJECT]', '[LOCATION]');
+
+ import_taxonomies_sample($formattedParent);
+}
+// [END datacatalog_v1_generated_PolicyTagManagerSerialization_ImportTaxonomies_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerSerializationClient/replace_taxonomy.php b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerSerializationClient/replace_taxonomy.php
new file mode 100644
index 000000000000..12f6f74ba561
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/samples/V1/PolicyTagManagerSerializationClient/replace_taxonomy.php
@@ -0,0 +1,96 @@
+setDisplayName($serializedTaxonomyDisplayName);
+ $request = (new ReplaceTaxonomyRequest())
+ ->setName($formattedName)
+ ->setSerializedTaxonomy($serializedTaxonomy);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Taxonomy $response */
+ $response = $policyTagManagerSerializationClient->replaceTaxonomy($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 = PolicyTagManagerSerializationClient::taxonomyName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[TAXONOMY]'
+ );
+ $serializedTaxonomyDisplayName = '[DISPLAY_NAME]';
+
+ replace_taxonomy_sample($formattedName, $serializedTaxonomyDisplayName);
+}
+// [END datacatalog_v1_generated_PolicyTagManagerSerialization_ReplaceTaxonomy_sync]
diff --git a/owl-bot-staging/DataCatalog/v1/src/V1/Client/DataCatalogClient.php b/owl-bot-staging/DataCatalog/v1/src/V1/Client/DataCatalogClient.php
new file mode 100644
index 000000000000..68aec9872e72
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/src/V1/Client/DataCatalogClient.php
@@ -0,0 +1,1555 @@
+ self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/data_catalog_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/data_catalog_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/data_catalog_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/data_catalog_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 entry
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $entryGroup
+ * @param string $entry
+ *
+ * @return string The formatted entry resource.
+ */
+ public static function entryName(string $project, string $location, string $entryGroup, string $entry): string
+ {
+ return self::getPathTemplate('entry')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'entry_group' => $entryGroup,
+ 'entry' => $entry,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a entry_group
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $entryGroup
+ *
+ * @return string The formatted entry_group resource.
+ */
+ public static function entryGroupName(string $project, string $location, string $entryGroup): string
+ {
+ return self::getPathTemplate('entryGroup')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'entry_group' => $entryGroup,
+ ]);
+ }
+
+ /**
+ * 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 tag
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $entryGroup
+ * @param string $entry
+ * @param string $tag
+ *
+ * @return string The formatted tag resource.
+ */
+ public static function tagName(string $project, string $location, string $entryGroup, string $entry, string $tag): string
+ {
+ return self::getPathTemplate('tag')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'entry_group' => $entryGroup,
+ 'entry' => $entry,
+ 'tag' => $tag,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a tag_template
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $tagTemplate
+ *
+ * @return string The formatted tag_template resource.
+ */
+ public static function tagTemplateName(string $project, string $location, string $tagTemplate): string
+ {
+ return self::getPathTemplate('tagTemplate')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'tag_template' => $tagTemplate,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * tag_template_field resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $tagTemplate
+ * @param string $field
+ *
+ * @return string The formatted tag_template_field resource.
+ */
+ public static function tagTemplateFieldName(string $project, string $location, string $tagTemplate, string $field): string
+ {
+ return self::getPathTemplate('tagTemplateField')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'tag_template' => $tagTemplate,
+ 'field' => $field,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * tag_template_field_enum_value resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $tagTemplate
+ * @param string $tagTemplateFieldId
+ * @param string $enumValueDisplayName
+ *
+ * @return string The formatted tag_template_field_enum_value resource.
+ */
+ public static function tagTemplateFieldEnumValueName(string $project, string $location, string $tagTemplate, string $tagTemplateFieldId, string $enumValueDisplayName): string
+ {
+ return self::getPathTemplate('tagTemplateFieldEnumValue')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'tag_template' => $tagTemplate,
+ 'tag_template_field_id' => $tagTemplateFieldId,
+ 'enum_value_display_name' => $enumValueDisplayName,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - entry: projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}
+ * - entryGroup: projects/{project}/locations/{location}/entryGroups/{entry_group}
+ * - location: projects/{project}/locations/{location}
+ * - tag: projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}/tags/{tag}
+ * - tagTemplate: projects/{project}/locations/{location}/tagTemplates/{tag_template}
+ * - tagTemplateField: projects/{project}/locations/{location}/tagTemplates/{tag_template}/fields/{field}
+ * - tagTemplateFieldEnumValue: projects/{project}/locations/{location}/tagTemplates/{tag_template}/fields/{tag_template_field_id}/enumValues/{enum_value_display_name}
+ *
+ * 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 'datacatalog.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 an entry.
+ *
+ * You can create entries only with 'FILESET', 'CLUSTER', 'DATA_STREAM',
+ * or custom types. Data Catalog automatically creates entries with other
+ * types during metadata ingestion from integrated systems.
+ *
+ * You must enable the Data Catalog API in the project identified by
+ * the `parent` parameter. For more information, see [Data Catalog resource
+ * project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
+ *
+ * An entry group can have a maximum of 100,000 entries.
+ *
+ * The async variant is {@see DataCatalogClient::createEntryAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/create_entry.php
+ *
+ * @param CreateEntryRequest $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 Entry
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createEntry(CreateEntryRequest $request, array $callOptions = []): Entry
+ {
+ return $this->startApiCall('CreateEntry', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates an entry group.
+ *
+ * An entry group contains logically related entries together with [Cloud
+ * Identity and Access Management](/data-catalog/docs/concepts/iam) policies.
+ * These policies specify users who can create, edit, and view entries
+ * within entry groups.
+ *
+ * Data Catalog automatically creates entry groups with names that start with
+ * the `@` symbol for the following resources:
+ *
+ * * BigQuery entries (`@bigquery`)
+ * * Pub/Sub topics (`@pubsub`)
+ * * Dataproc Metastore services (`@dataproc_metastore_{SERVICE_NAME_HASH}`)
+ *
+ * You can create your own entry groups for Cloud Storage fileset entries
+ * and custom entries together with the corresponding IAM policies.
+ * User-created entry groups can't contain the `@` symbol, it is reserved
+ * for automatically created groups.
+ *
+ * Entry groups, like entries, can be searched.
+ *
+ * A maximum of 10,000 entry groups may be created per organization across all
+ * locations.
+ *
+ * You must enable the Data Catalog API in the project identified by
+ * the `parent` parameter. For more information, see [Data Catalog resource
+ * project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
+ *
+ * The async variant is {@see DataCatalogClient::createEntryGroupAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/create_entry_group.php
+ *
+ * @param CreateEntryGroupRequest $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 EntryGroup
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createEntryGroup(CreateEntryGroupRequest $request, array $callOptions = []): EntryGroup
+ {
+ return $this->startApiCall('CreateEntryGroup', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates a tag and assigns it to:
+ *
+ * * An [Entry][google.cloud.datacatalog.v1.Entry] if the method name is
+ * `projects.locations.entryGroups.entries.tags.create`.
+ * * Or [EntryGroup][google.cloud.datacatalog.v1.EntryGroup]if the method
+ * name is `projects.locations.entryGroups.tags.create`.
+ *
+ * Note: The project identified by the `parent` parameter for the [tag]
+ * (https://cloud.google.com/data-catalog/docs/reference/rest/v1/projects.locations.entryGroups.entries.tags/create#path-parameters)
+ * and the [tag template]
+ * (https://cloud.google.com/data-catalog/docs/reference/rest/v1/projects.locations.tagTemplates/create#path-parameters)
+ * used to create the tag must be in the same organization.
+ *
+ * The async variant is {@see DataCatalogClient::createTagAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/create_tag.php
+ *
+ * @param CreateTagRequest $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 Tag
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createTag(CreateTagRequest $request, array $callOptions = []): Tag
+ {
+ return $this->startApiCall('CreateTag', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates a tag template.
+ *
+ * You must enable the Data Catalog API in the project identified by the
+ * `parent` parameter.
+ * For more information, see [Data Catalog resource project]
+ * (https://cloud.google.com/data-catalog/docs/concepts/resource-project).
+ *
+ * The async variant is {@see DataCatalogClient::createTagTemplateAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/create_tag_template.php
+ *
+ * @param CreateTagTemplateRequest $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 TagTemplate
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createTagTemplate(CreateTagTemplateRequest $request, array $callOptions = []): TagTemplate
+ {
+ return $this->startApiCall('CreateTagTemplate', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates a field in a tag template.
+ *
+ * You must enable the Data Catalog API in the project identified by
+ * the `parent` parameter. For more information, see [Data Catalog resource
+ * project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
+ *
+ * The async variant is {@see DataCatalogClient::createTagTemplateFieldAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/create_tag_template_field.php
+ *
+ * @param CreateTagTemplateFieldRequest $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 TagTemplateField
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createTagTemplateField(CreateTagTemplateFieldRequest $request, array $callOptions = []): TagTemplateField
+ {
+ return $this->startApiCall('CreateTagTemplateField', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes an existing entry.
+ *
+ * You can delete only the entries created by the
+ * [CreateEntry][google.cloud.datacatalog.v1.DataCatalog.CreateEntry]
+ * method.
+ *
+ * You must enable the Data Catalog API in the project identified by
+ * the `name` parameter. For more information, see [Data Catalog
+ * resource
+ * project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
+ *
+ * The async variant is {@see DataCatalogClient::deleteEntryAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/delete_entry.php
+ *
+ * @param DeleteEntryRequest $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 deleteEntry(DeleteEntryRequest $request, array $callOptions = []): void
+ {
+ $this->startApiCall('DeleteEntry', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes an entry group.
+ *
+ * You must enable the Data Catalog API in the project
+ * identified by the `name` parameter. For more information, see [Data Catalog
+ * resource
+ * project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
+ *
+ * The async variant is {@see DataCatalogClient::deleteEntryGroupAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/delete_entry_group.php
+ *
+ * @param DeleteEntryGroupRequest $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 deleteEntryGroup(DeleteEntryGroupRequest $request, array $callOptions = []): void
+ {
+ $this->startApiCall('DeleteEntryGroup', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a tag.
+ *
+ * The async variant is {@see DataCatalogClient::deleteTagAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/delete_tag.php
+ *
+ * @param DeleteTagRequest $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 deleteTag(DeleteTagRequest $request, array $callOptions = []): void
+ {
+ $this->startApiCall('DeleteTag', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a tag template and all tags that use it.
+ *
+ * You must enable the Data Catalog API in the project identified by
+ * the `name` parameter. For more information, see [Data Catalog resource
+ * project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
+ *
+ * The async variant is {@see DataCatalogClient::deleteTagTemplateAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/delete_tag_template.php
+ *
+ * @param DeleteTagTemplateRequest $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 deleteTagTemplate(DeleteTagTemplateRequest $request, array $callOptions = []): void
+ {
+ $this->startApiCall('DeleteTagTemplate', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a field in a tag template and all uses of this field from the tags
+ * based on this template.
+ *
+ * You must enable the Data Catalog API in the project identified by
+ * the `name` parameter. For more information, see [Data Catalog resource
+ * project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
+ *
+ * The async variant is {@see DataCatalogClient::deleteTagTemplateFieldAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/delete_tag_template_field.php
+ *
+ * @param DeleteTagTemplateFieldRequest $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 deleteTagTemplateField(DeleteTagTemplateFieldRequest $request, array $callOptions = []): void
+ {
+ $this->startApiCall('DeleteTagTemplateField', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets an entry.
+ *
+ * The async variant is {@see DataCatalogClient::getEntryAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/get_entry.php
+ *
+ * @param GetEntryRequest $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 Entry
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getEntry(GetEntryRequest $request, array $callOptions = []): Entry
+ {
+ return $this->startApiCall('GetEntry', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets an entry group.
+ *
+ * The async variant is {@see DataCatalogClient::getEntryGroupAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/get_entry_group.php
+ *
+ * @param GetEntryGroupRequest $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 EntryGroup
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getEntryGroup(GetEntryGroupRequest $request, array $callOptions = []): EntryGroup
+ {
+ return $this->startApiCall('GetEntryGroup', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets the access control policy for a resource.
+ *
+ * May return:
+ *
+ * * A`NOT_FOUND` error if the resource doesn't exist or you don't have the
+ * permission to view it.
+ * * An empty policy if the resource exists but doesn't have a set policy.
+ *
+ * Supported resources are:
+ *
+ * - Tag templates
+ * - Entry groups
+ *
+ * Note: This method doesn't get policies from Google Cloud Platform
+ * resources ingested into Data Catalog.
+ *
+ * To call this method, you must have the following Google IAM permissions:
+ *
+ * - `datacatalog.tagTemplates.getIamPolicy` to get policies on tag
+ * templates.
+ * - `datacatalog.entryGroups.getIamPolicy` to get policies on entry groups.
+ *
+ * The async variant is {@see DataCatalogClient::getIamPolicyAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/get_iam_policy.php
+ *
+ * @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();
+ }
+
+ /**
+ * Gets a tag template.
+ *
+ * The async variant is {@see DataCatalogClient::getTagTemplateAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/get_tag_template.php
+ *
+ * @param GetTagTemplateRequest $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 TagTemplate
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getTagTemplate(GetTagTemplateRequest $request, array $callOptions = []): TagTemplate
+ {
+ return $this->startApiCall('GetTagTemplate', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Imports entries from a source, such as data previously dumped into a
+ * Cloud Storage bucket, into Data Catalog. Import of entries
+ * is a sync operation that reconciles the state of the third-party system
+ * with the Data Catalog.
+ *
+ * `ImportEntries` accepts source data snapshots of a third-party system.
+ * Snapshot should be delivered as a .wire or base65-encoded .txt file
+ * containing a sequence of Protocol Buffer messages of
+ * [DumpItem][google.cloud.datacatalog.v1.DumpItem] type.
+ *
+ * `ImportEntries` returns a [long-running operation]
+ * [google.longrunning.Operation] resource that can be queried with
+ * [Operations.GetOperation][google.longrunning.Operations.GetOperation]
+ * to return
+ * [ImportEntriesMetadata][google.cloud.datacatalog.v1.ImportEntriesMetadata]
+ * and an
+ * [ImportEntriesResponse][google.cloud.datacatalog.v1.ImportEntriesResponse]
+ * message.
+ *
+ * The async variant is {@see DataCatalogClient::importEntriesAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/import_entries.php
+ *
+ * @param ImportEntriesRequest $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 importEntries(ImportEntriesRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('ImportEntries', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Lists entries.
+ *
+ * Note: Currently, this method can list only custom entries.
+ * To get a list of both custom and automatically created entries, use
+ * [SearchCatalog][google.cloud.datacatalog.v1.DataCatalog.SearchCatalog].
+ *
+ * The async variant is {@see DataCatalogClient::listEntriesAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/list_entries.php
+ *
+ * @param ListEntriesRequest $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 listEntries(ListEntriesRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListEntries', $request, $callOptions);
+ }
+
+ /**
+ * Lists entry groups.
+ *
+ * The async variant is {@see DataCatalogClient::listEntryGroupsAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/list_entry_groups.php
+ *
+ * @param ListEntryGroupsRequest $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 listEntryGroups(ListEntryGroupsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListEntryGroups', $request, $callOptions);
+ }
+
+ /**
+ * Lists tags assigned to an [Entry][google.cloud.datacatalog.v1.Entry].
+ * The [columns][google.cloud.datacatalog.v1.Tag.column] in the response are
+ * lowercased.
+ *
+ * The async variant is {@see DataCatalogClient::listTagsAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/list_tags.php
+ *
+ * @param ListTagsRequest $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 listTags(ListTagsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListTags', $request, $callOptions);
+ }
+
+ /**
+ * Gets an entry by its target resource name.
+ *
+ * The resource name comes from the source Google Cloud Platform service.
+ *
+ * The async variant is {@see DataCatalogClient::lookupEntryAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/lookup_entry.php
+ *
+ * @param LookupEntryRequest $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 Entry
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function lookupEntry(LookupEntryRequest $request, array $callOptions = []): Entry
+ {
+ return $this->startApiCall('LookupEntry', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Modifies contacts, part of the business context of an
+ * [Entry][google.cloud.datacatalog.v1.Entry].
+ *
+ * To call this method, you must have the `datacatalog.entries.updateContacts`
+ * IAM permission on the corresponding project.
+ *
+ * The async variant is {@see DataCatalogClient::modifyEntryContactsAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/modify_entry_contacts.php
+ *
+ * @param ModifyEntryContactsRequest $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 Contacts
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function modifyEntryContacts(ModifyEntryContactsRequest $request, array $callOptions = []): Contacts
+ {
+ return $this->startApiCall('ModifyEntryContacts', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Modifies entry overview, part of the business context of an
+ * [Entry][google.cloud.datacatalog.v1.Entry].
+ *
+ * To call this method, you must have the `datacatalog.entries.updateOverview`
+ * IAM permission on the corresponding project.
+ *
+ * The async variant is {@see DataCatalogClient::modifyEntryOverviewAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/modify_entry_overview.php
+ *
+ * @param ModifyEntryOverviewRequest $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 EntryOverview
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function modifyEntryOverview(ModifyEntryOverviewRequest $request, array $callOptions = []): EntryOverview
+ {
+ return $this->startApiCall('ModifyEntryOverview', $request, $callOptions)->wait();
+ }
+
+ /**
+ * `ReconcileTags` creates or updates a list of tags on the entry.
+ * If the
+ * [ReconcileTagsRequest.force_delete_missing][google.cloud.datacatalog.v1.ReconcileTagsRequest.force_delete_missing]
+ * parameter is set, the operation deletes tags not included in the input tag
+ * list.
+ *
+ * `ReconcileTags` returns a [long-running operation]
+ * [google.longrunning.Operation] resource that can be queried with
+ * [Operations.GetOperation][google.longrunning.Operations.GetOperation]
+ * to return [ReconcileTagsMetadata]
+ * [google.cloud.datacatalog.v1.ReconcileTagsMetadata] and
+ * a [ReconcileTagsResponse]
+ * [google.cloud.datacatalog.v1.ReconcileTagsResponse] message.
+ *
+ * The async variant is {@see DataCatalogClient::reconcileTagsAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/reconcile_tags.php
+ *
+ * @param ReconcileTagsRequest $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 reconcileTags(ReconcileTagsRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('ReconcileTags', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Renames a field in a tag template.
+ *
+ * You must enable the Data Catalog API in the project identified by the
+ * `name` parameter. For more information, see [Data Catalog resource project]
+ * (https://cloud.google.com/data-catalog/docs/concepts/resource-project).
+ *
+ * The async variant is {@see DataCatalogClient::renameTagTemplateFieldAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/rename_tag_template_field.php
+ *
+ * @param RenameTagTemplateFieldRequest $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 TagTemplateField
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function renameTagTemplateField(RenameTagTemplateFieldRequest $request, array $callOptions = []): TagTemplateField
+ {
+ return $this->startApiCall('RenameTagTemplateField', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Renames an enum value in a tag template.
+ *
+ * Within a single enum field, enum values must be unique.
+ *
+ * The async variant is
+ * {@see DataCatalogClient::renameTagTemplateFieldEnumValueAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/rename_tag_template_field_enum_value.php
+ *
+ * @param RenameTagTemplateFieldEnumValueRequest $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 TagTemplateField
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function renameTagTemplateFieldEnumValue(RenameTagTemplateFieldEnumValueRequest $request, array $callOptions = []): TagTemplateField
+ {
+ return $this->startApiCall('RenameTagTemplateFieldEnumValue', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Searches Data Catalog for multiple resources like entries and tags that
+ * match a query.
+ *
+ * This is a [Custom Method]
+ * (https://cloud.google.com/apis/design/custom_methods) that doesn't return
+ * all information on a resource, only its ID and high level fields. To get
+ * more information, you can subsequently call specific get methods.
+ *
+ * Note: Data Catalog search queries don't guarantee full recall. Results
+ * that match your query might not be returned, even in subsequent
+ * result pages. Additionally, returned (and not returned) results can vary
+ * if you repeat search queries.
+ *
+ * For more information, see [Data Catalog search syntax]
+ * (https://cloud.google.com/data-catalog/docs/how-to/search-reference).
+ *
+ * The async variant is {@see DataCatalogClient::searchCatalogAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/search_catalog.php
+ *
+ * @param SearchCatalogRequest $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 searchCatalog(SearchCatalogRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('SearchCatalog', $request, $callOptions);
+ }
+
+ /**
+ * Sets an access control policy for a resource. Replaces any existing
+ * policy.
+ *
+ * Supported resources are:
+ *
+ * - Tag templates
+ * - Entry groups
+ *
+ * Note: This method sets policies only within Data Catalog and can't be
+ * used to manage policies in BigQuery, Pub/Sub, Dataproc Metastore, and any
+ * external Google Cloud Platform resources synced with the Data Catalog.
+ *
+ * To call this method, you must have the following Google IAM permissions:
+ *
+ * - `datacatalog.tagTemplates.setIamPolicy` to set policies on tag
+ * templates.
+ * - `datacatalog.entryGroups.setIamPolicy` to set policies on entry groups.
+ *
+ * The async variant is {@see DataCatalogClient::setIamPolicyAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/set_iam_policy.php
+ *
+ * @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();
+ }
+
+ /**
+ * Marks an [Entry][google.cloud.datacatalog.v1.Entry] as starred by
+ * the current user. Starring information is private to each user.
+ *
+ * The async variant is {@see DataCatalogClient::starEntryAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/star_entry.php
+ *
+ * @param StarEntryRequest $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 StarEntryResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function starEntry(StarEntryRequest $request, array $callOptions = []): StarEntryResponse
+ {
+ return $this->startApiCall('StarEntry', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets your permissions on a resource.
+ *
+ * Returns an empty set of permissions if the resource doesn't exist.
+ *
+ * Supported resources are:
+ *
+ * - Tag templates
+ * - Entry groups
+ *
+ * Note: This method gets policies only within Data Catalog and can't be
+ * used to get policies from BigQuery, Pub/Sub, Dataproc Metastore, and any
+ * external Google Cloud Platform resources ingested into Data Catalog.
+ *
+ * No Google IAM permissions are required to call this method.
+ *
+ * The async variant is {@see DataCatalogClient::testIamPermissionsAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/test_iam_permissions.php
+ *
+ * @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();
+ }
+
+ /**
+ * Marks an [Entry][google.cloud.datacatalog.v1.Entry] as NOT starred by
+ * the current user. Starring information is private to each user.
+ *
+ * The async variant is {@see DataCatalogClient::unstarEntryAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/unstar_entry.php
+ *
+ * @param UnstarEntryRequest $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 UnstarEntryResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function unstarEntry(UnstarEntryRequest $request, array $callOptions = []): UnstarEntryResponse
+ {
+ return $this->startApiCall('UnstarEntry', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates an existing entry.
+ *
+ * You must enable the Data Catalog API in the project identified by
+ * the `entry.name` parameter. For more information, see [Data Catalog
+ * resource
+ * project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
+ *
+ * The async variant is {@see DataCatalogClient::updateEntryAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/update_entry.php
+ *
+ * @param UpdateEntryRequest $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 Entry
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateEntry(UpdateEntryRequest $request, array $callOptions = []): Entry
+ {
+ return $this->startApiCall('UpdateEntry', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates an entry group.
+ *
+ * You must enable the Data Catalog API in the project identified by
+ * the `entry_group.name` parameter. For more information, see [Data Catalog
+ * resource
+ * project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
+ *
+ * The async variant is {@see DataCatalogClient::updateEntryGroupAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/update_entry_group.php
+ *
+ * @param UpdateEntryGroupRequest $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 EntryGroup
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateEntryGroup(UpdateEntryGroupRequest $request, array $callOptions = []): EntryGroup
+ {
+ return $this->startApiCall('UpdateEntryGroup', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates an existing tag.
+ *
+ * The async variant is {@see DataCatalogClient::updateTagAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/update_tag.php
+ *
+ * @param UpdateTagRequest $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 Tag
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateTag(UpdateTagRequest $request, array $callOptions = []): Tag
+ {
+ return $this->startApiCall('UpdateTag', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates a tag template.
+ *
+ * You can't update template fields with this method. These fields are
+ * separate resources with their own create, update, and delete methods.
+ *
+ * You must enable the Data Catalog API in the project identified by
+ * the `tag_template.name` parameter. For more information, see [Data Catalog
+ * resource
+ * project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
+ *
+ * The async variant is {@see DataCatalogClient::updateTagTemplateAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/update_tag_template.php
+ *
+ * @param UpdateTagTemplateRequest $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 TagTemplate
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateTagTemplate(UpdateTagTemplateRequest $request, array $callOptions = []): TagTemplate
+ {
+ return $this->startApiCall('UpdateTagTemplate', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates a field in a tag template.
+ *
+ * You can't update the field type with this method.
+ *
+ * You must enable the Data Catalog API in the project
+ * identified by the `name` parameter. For more information, see [Data Catalog
+ * resource
+ * project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
+ *
+ * The async variant is {@see DataCatalogClient::updateTagTemplateFieldAsync()} .
+ *
+ * @example samples/V1/DataCatalogClient/update_tag_template_field.php
+ *
+ * @param UpdateTagTemplateFieldRequest $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 TagTemplateField
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateTagTemplateField(UpdateTagTemplateFieldRequest $request, array $callOptions = []): TagTemplateField
+ {
+ return $this->startApiCall('UpdateTagTemplateField', $request, $callOptions)->wait();
+ }
+}
diff --git a/owl-bot-staging/DataCatalog/v1/src/V1/Client/PolicyTagManagerClient.php b/owl-bot-staging/DataCatalog/v1/src/V1/Client/PolicyTagManagerClient.php
new file mode 100644
index 000000000000..a1f7c4090651
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/src/V1/Client/PolicyTagManagerClient.php
@@ -0,0 +1,633 @@
+ self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/policy_tag_manager_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/policy_tag_manager_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/policy_tag_manager_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/policy_tag_manager_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * 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 policy_tag
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $taxonomy
+ * @param string $policyTag
+ *
+ * @return string The formatted policy_tag resource.
+ */
+ public static function policyTagName(string $project, string $location, string $taxonomy, string $policyTag): string
+ {
+ return self::getPathTemplate('policyTag')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'taxonomy' => $taxonomy,
+ 'policy_tag' => $policyTag,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a taxonomy
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $taxonomy
+ *
+ * @return string The formatted taxonomy resource.
+ */
+ public static function taxonomyName(string $project, string $location, string $taxonomy): string
+ {
+ return self::getPathTemplate('taxonomy')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'taxonomy' => $taxonomy,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - location: projects/{project}/locations/{location}
+ * - policyTag: projects/{project}/locations/{location}/taxonomies/{taxonomy}/policyTags/{policy_tag}
+ * - taxonomy: projects/{project}/locations/{location}/taxonomies/{taxonomy}
+ *
+ * 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 'datacatalog.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);
+ }
+
+ /**
+ * Creates a policy tag in a taxonomy.
+ *
+ * The async variant is {@see PolicyTagManagerClient::createPolicyTagAsync()} .
+ *
+ * @example samples/V1/PolicyTagManagerClient/create_policy_tag.php
+ *
+ * @param CreatePolicyTagRequest $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 PolicyTag
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createPolicyTag(CreatePolicyTagRequest $request, array $callOptions = []): PolicyTag
+ {
+ return $this->startApiCall('CreatePolicyTag', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates a taxonomy in a specified project.
+ *
+ * The taxonomy is initially empty, that is, it doesn't contain policy tags.
+ *
+ * The async variant is {@see PolicyTagManagerClient::createTaxonomyAsync()} .
+ *
+ * @example samples/V1/PolicyTagManagerClient/create_taxonomy.php
+ *
+ * @param CreateTaxonomyRequest $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 Taxonomy
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createTaxonomy(CreateTaxonomyRequest $request, array $callOptions = []): Taxonomy
+ {
+ return $this->startApiCall('CreateTaxonomy', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a policy tag together with the following:
+ *
+ * * All of its descendant policy tags, if any
+ * * Policies associated with the policy tag and its descendants
+ * * References from BigQuery table schema of the policy tag and its
+ * descendants
+ *
+ * The async variant is {@see PolicyTagManagerClient::deletePolicyTagAsync()} .
+ *
+ * @example samples/V1/PolicyTagManagerClient/delete_policy_tag.php
+ *
+ * @param DeletePolicyTagRequest $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 deletePolicyTag(DeletePolicyTagRequest $request, array $callOptions = []): void
+ {
+ $this->startApiCall('DeletePolicyTag', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a taxonomy, including all policy tags in this
+ * taxonomy, their associated policies, and the policy tags references from
+ * BigQuery columns.
+ *
+ * The async variant is {@see PolicyTagManagerClient::deleteTaxonomyAsync()} .
+ *
+ * @example samples/V1/PolicyTagManagerClient/delete_taxonomy.php
+ *
+ * @param DeleteTaxonomyRequest $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 deleteTaxonomy(DeleteTaxonomyRequest $request, array $callOptions = []): void
+ {
+ $this->startApiCall('DeleteTaxonomy', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets the IAM policy for a policy tag or a taxonomy.
+ *
+ * The async variant is {@see PolicyTagManagerClient::getIamPolicyAsync()} .
+ *
+ * @example samples/V1/PolicyTagManagerClient/get_iam_policy.php
+ *
+ * @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();
+ }
+
+ /**
+ * Gets a policy tag.
+ *
+ * The async variant is {@see PolicyTagManagerClient::getPolicyTagAsync()} .
+ *
+ * @example samples/V1/PolicyTagManagerClient/get_policy_tag.php
+ *
+ * @param GetPolicyTagRequest $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 PolicyTag
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getPolicyTag(GetPolicyTagRequest $request, array $callOptions = []): PolicyTag
+ {
+ return $this->startApiCall('GetPolicyTag', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets a taxonomy.
+ *
+ * The async variant is {@see PolicyTagManagerClient::getTaxonomyAsync()} .
+ *
+ * @example samples/V1/PolicyTagManagerClient/get_taxonomy.php
+ *
+ * @param GetTaxonomyRequest $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 Taxonomy
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getTaxonomy(GetTaxonomyRequest $request, array $callOptions = []): Taxonomy
+ {
+ return $this->startApiCall('GetTaxonomy', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Lists all policy tags in a taxonomy.
+ *
+ * The async variant is {@see PolicyTagManagerClient::listPolicyTagsAsync()} .
+ *
+ * @example samples/V1/PolicyTagManagerClient/list_policy_tags.php
+ *
+ * @param ListPolicyTagsRequest $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 listPolicyTags(ListPolicyTagsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListPolicyTags', $request, $callOptions);
+ }
+
+ /**
+ * Lists all taxonomies in a project in a particular location that you
+ * have a permission to view.
+ *
+ * The async variant is {@see PolicyTagManagerClient::listTaxonomiesAsync()} .
+ *
+ * @example samples/V1/PolicyTagManagerClient/list_taxonomies.php
+ *
+ * @param ListTaxonomiesRequest $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 listTaxonomies(ListTaxonomiesRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListTaxonomies', $request, $callOptions);
+ }
+
+ /**
+ * Sets the IAM policy for a policy tag or a taxonomy.
+ *
+ * The async variant is {@see PolicyTagManagerClient::setIamPolicyAsync()} .
+ *
+ * @example samples/V1/PolicyTagManagerClient/set_iam_policy.php
+ *
+ * @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 your permissions on a specified policy tag or
+ * taxonomy.
+ *
+ * The async variant is {@see PolicyTagManagerClient::testIamPermissionsAsync()} .
+ *
+ * @example samples/V1/PolicyTagManagerClient/test_iam_permissions.php
+ *
+ * @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();
+ }
+
+ /**
+ * Updates a policy tag, including its display
+ * name, description, and parent policy tag.
+ *
+ * The async variant is {@see PolicyTagManagerClient::updatePolicyTagAsync()} .
+ *
+ * @example samples/V1/PolicyTagManagerClient/update_policy_tag.php
+ *
+ * @param UpdatePolicyTagRequest $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 PolicyTag
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updatePolicyTag(UpdatePolicyTagRequest $request, array $callOptions = []): PolicyTag
+ {
+ return $this->startApiCall('UpdatePolicyTag', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates a taxonomy, including its display name,
+ * description, and activated policy types.
+ *
+ * The async variant is {@see PolicyTagManagerClient::updateTaxonomyAsync()} .
+ *
+ * @example samples/V1/PolicyTagManagerClient/update_taxonomy.php
+ *
+ * @param UpdateTaxonomyRequest $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 Taxonomy
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateTaxonomy(UpdateTaxonomyRequest $request, array $callOptions = []): Taxonomy
+ {
+ return $this->startApiCall('UpdateTaxonomy', $request, $callOptions)->wait();
+ }
+}
diff --git a/owl-bot-staging/DataCatalog/v1/src/V1/Client/PolicyTagManagerSerializationClient.php b/owl-bot-staging/DataCatalog/v1/src/V1/Client/PolicyTagManagerSerializationClient.php
new file mode 100644
index 000000000000..4c4484df4b00
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/src/V1/Client/PolicyTagManagerSerializationClient.php
@@ -0,0 +1,345 @@
+ self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/policy_tag_manager_serialization_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/policy_tag_manager_serialization_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/policy_tag_manager_serialization_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/policy_tag_manager_serialization_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * 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 taxonomy
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $taxonomy
+ *
+ * @return string The formatted taxonomy resource.
+ */
+ public static function taxonomyName(string $project, string $location, string $taxonomy): string
+ {
+ return self::getPathTemplate('taxonomy')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'taxonomy' => $taxonomy,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - location: projects/{project}/locations/{location}
+ * - taxonomy: projects/{project}/locations/{location}/taxonomies/{taxonomy}
+ *
+ * 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 'datacatalog.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);
+ }
+
+ /**
+ * Exports taxonomies in the requested type and returns them,
+ * including their policy tags. The requested taxonomies must belong to the
+ * same project.
+ *
+ * This method generates `SerializedTaxonomy` protocol buffers with nested
+ * policy tags that can be used as input for `ImportTaxonomies` calls.
+ *
+ * The async variant is
+ * {@see PolicyTagManagerSerializationClient::exportTaxonomiesAsync()} .
+ *
+ * @example samples/V1/PolicyTagManagerSerializationClient/export_taxonomies.php
+ *
+ * @param ExportTaxonomiesRequest $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 ExportTaxonomiesResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function exportTaxonomies(ExportTaxonomiesRequest $request, array $callOptions = []): ExportTaxonomiesResponse
+ {
+ return $this->startApiCall('ExportTaxonomies', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates new taxonomies (including their policy tags) in a given project
+ * by importing from inlined or cross-regional sources.
+ *
+ * For a cross-regional source, new taxonomies are created by copying
+ * from a source in another region.
+ *
+ * For an inlined source, taxonomies and policy tags are created in bulk using
+ * nested protocol buffer structures.
+ *
+ * The async variant is
+ * {@see PolicyTagManagerSerializationClient::importTaxonomiesAsync()} .
+ *
+ * @example samples/V1/PolicyTagManagerSerializationClient/import_taxonomies.php
+ *
+ * @param ImportTaxonomiesRequest $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 ImportTaxonomiesResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function importTaxonomies(ImportTaxonomiesRequest $request, array $callOptions = []): ImportTaxonomiesResponse
+ {
+ return $this->startApiCall('ImportTaxonomies', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Replaces (updates) a taxonomy and all its policy tags.
+ *
+ * The taxonomy and its entire hierarchy of policy tags must be
+ * represented literally by `SerializedTaxonomy` and the nested
+ * `SerializedPolicyTag` messages.
+ *
+ * This operation automatically does the following:
+ *
+ * - Deletes the existing policy tags that are missing from the
+ * `SerializedPolicyTag`.
+ * - Creates policy tags that don't have resource names. They are considered
+ * new.
+ * - Updates policy tags with valid resources names accordingly.
+ *
+ * The async variant is
+ * {@see PolicyTagManagerSerializationClient::replaceTaxonomyAsync()} .
+ *
+ * @example samples/V1/PolicyTagManagerSerializationClient/replace_taxonomy.php
+ *
+ * @param ReplaceTaxonomyRequest $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 Taxonomy
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function replaceTaxonomy(ReplaceTaxonomyRequest $request, array $callOptions = []): Taxonomy
+ {
+ return $this->startApiCall('ReplaceTaxonomy', $request, $callOptions)->wait();
+ }
+}
diff --git a/owl-bot-staging/DataCatalog/v1/src/V1/DataCatalogClient.php b/owl-bot-staging/DataCatalog/v1/src/V1/DataCatalogClient.php
new file mode 100644
index 000000000000..16e906b5c1b8
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/src/V1/DataCatalogClient.php
@@ -0,0 +1,34 @@
+entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ * $entryId = 'entry_id';
+ * $entry = new Entry();
+ * $response = $dataCatalogClient->createEntry($formattedParent, $entryId, $entry);
+ * } finally {
+ * $dataCatalogClient->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.
+ *
+ * @deprecated Please use the new service client {@see \Google\Cloud\DataCatalog\V1\Client\DataCatalogClient}.
+ */
+class DataCatalogGapicClient
+{
+ use GapicClientTrait;
+
+ /** The name of the service. */
+ const SERVICE_NAME = 'google.cloud.datacatalog.v1.DataCatalog';
+
+ /**
+ * The default address of the service.
+ *
+ * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead.
+ */
+ const SERVICE_ADDRESS = 'datacatalog.googleapis.com';
+
+ /** The address template of the service. */
+ private const SERVICE_ADDRESS_TEMPLATE = 'datacatalog.UNIVERSE_DOMAIN';
+
+ /** The default port of the service. */
+ const DEFAULT_SERVICE_PORT = 443;
+
+ /** The name of the code generator, to be included in the agent header. */
+ const CODEGEN_NAME = 'gapic';
+
+ /** The default scopes required by the service. */
+ public static $serviceScopes = [
+ 'https://www.googleapis.com/auth/cloud-platform',
+ ];
+
+ private static $entryNameTemplate;
+
+ private static $entryGroupNameTemplate;
+
+ private static $locationNameTemplate;
+
+ private static $tagNameTemplate;
+
+ private static $tagTemplateNameTemplate;
+
+ private static $tagTemplateFieldNameTemplate;
+
+ private static $tagTemplateFieldEnumValueNameTemplate;
+
+ 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/data_catalog_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/data_catalog_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/data_catalog_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/data_catalog_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ private static function getEntryNameTemplate()
+ {
+ if (self::$entryNameTemplate == null) {
+ self::$entryNameTemplate = new PathTemplate('projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}');
+ }
+
+ return self::$entryNameTemplate;
+ }
+
+ private static function getEntryGroupNameTemplate()
+ {
+ if (self::$entryGroupNameTemplate == null) {
+ self::$entryGroupNameTemplate = new PathTemplate('projects/{project}/locations/{location}/entryGroups/{entry_group}');
+ }
+
+ return self::$entryGroupNameTemplate;
+ }
+
+ private static function getLocationNameTemplate()
+ {
+ if (self::$locationNameTemplate == null) {
+ self::$locationNameTemplate = new PathTemplate('projects/{project}/locations/{location}');
+ }
+
+ return self::$locationNameTemplate;
+ }
+
+ private static function getTagNameTemplate()
+ {
+ if (self::$tagNameTemplate == null) {
+ self::$tagNameTemplate = new PathTemplate('projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}/tags/{tag}');
+ }
+
+ return self::$tagNameTemplate;
+ }
+
+ private static function getTagTemplateNameTemplate()
+ {
+ if (self::$tagTemplateNameTemplate == null) {
+ self::$tagTemplateNameTemplate = new PathTemplate('projects/{project}/locations/{location}/tagTemplates/{tag_template}');
+ }
+
+ return self::$tagTemplateNameTemplate;
+ }
+
+ private static function getTagTemplateFieldNameTemplate()
+ {
+ if (self::$tagTemplateFieldNameTemplate == null) {
+ self::$tagTemplateFieldNameTemplate = new PathTemplate('projects/{project}/locations/{location}/tagTemplates/{tag_template}/fields/{field}');
+ }
+
+ return self::$tagTemplateFieldNameTemplate;
+ }
+
+ private static function getTagTemplateFieldEnumValueNameTemplate()
+ {
+ if (self::$tagTemplateFieldEnumValueNameTemplate == null) {
+ self::$tagTemplateFieldEnumValueNameTemplate = new PathTemplate('projects/{project}/locations/{location}/tagTemplates/{tag_template}/fields/{tag_template_field_id}/enumValues/{enum_value_display_name}');
+ }
+
+ return self::$tagTemplateFieldEnumValueNameTemplate;
+ }
+
+ private static function getPathTemplateMap()
+ {
+ if (self::$pathTemplateMap == null) {
+ self::$pathTemplateMap = [
+ 'entry' => self::getEntryNameTemplate(),
+ 'entryGroup' => self::getEntryGroupNameTemplate(),
+ 'location' => self::getLocationNameTemplate(),
+ 'tag' => self::getTagNameTemplate(),
+ 'tagTemplate' => self::getTagTemplateNameTemplate(),
+ 'tagTemplateField' => self::getTagTemplateFieldNameTemplate(),
+ 'tagTemplateFieldEnumValue' => self::getTagTemplateFieldEnumValueNameTemplate(),
+ ];
+ }
+
+ return self::$pathTemplateMap;
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a entry
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $entryGroup
+ * @param string $entry
+ *
+ * @return string The formatted entry resource.
+ */
+ public static function entryName($project, $location, $entryGroup, $entry)
+ {
+ return self::getEntryNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'entry_group' => $entryGroup,
+ 'entry' => $entry,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a entry_group
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $entryGroup
+ *
+ * @return string The formatted entry_group resource.
+ */
+ public static function entryGroupName($project, $location, $entryGroup)
+ {
+ return self::getEntryGroupNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'entry_group' => $entryGroup,
+ ]);
+ }
+
+ /**
+ * 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 tag
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $entryGroup
+ * @param string $entry
+ * @param string $tag
+ *
+ * @return string The formatted tag resource.
+ */
+ public static function tagName($project, $location, $entryGroup, $entry, $tag)
+ {
+ return self::getTagNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'entry_group' => $entryGroup,
+ 'entry' => $entry,
+ 'tag' => $tag,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a tag_template
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $tagTemplate
+ *
+ * @return string The formatted tag_template resource.
+ */
+ public static function tagTemplateName($project, $location, $tagTemplate)
+ {
+ return self::getTagTemplateNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'tag_template' => $tagTemplate,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * tag_template_field resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $tagTemplate
+ * @param string $field
+ *
+ * @return string The formatted tag_template_field resource.
+ */
+ public static function tagTemplateFieldName($project, $location, $tagTemplate, $field)
+ {
+ return self::getTagTemplateFieldNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'tag_template' => $tagTemplate,
+ 'field' => $field,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * tag_template_field_enum_value resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $tagTemplate
+ * @param string $tagTemplateFieldId
+ * @param string $enumValueDisplayName
+ *
+ * @return string The formatted tag_template_field_enum_value resource.
+ */
+ public static function tagTemplateFieldEnumValueName($project, $location, $tagTemplate, $tagTemplateFieldId, $enumValueDisplayName)
+ {
+ return self::getTagTemplateFieldEnumValueNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'tag_template' => $tagTemplate,
+ 'tag_template_field_id' => $tagTemplateFieldId,
+ 'enum_value_display_name' => $enumValueDisplayName,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - entry: projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}
+ * - entryGroup: projects/{project}/locations/{location}/entryGroups/{entry_group}
+ * - location: projects/{project}/locations/{location}
+ * - tag: projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}/tags/{tag}
+ * - tagTemplate: projects/{project}/locations/{location}/tagTemplates/{tag_template}
+ * - tagTemplateField: projects/{project}/locations/{location}/tagTemplates/{tag_template}/fields/{field}
+ * - tagTemplateFieldEnumValue: projects/{project}/locations/{location}/tagTemplates/{tag_template}/fields/{tag_template_field_id}/enumValues/{enum_value_display_name}
+ *
+ * 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 'datacatalog.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 an entry.
+ *
+ * You can create entries only with 'FILESET', 'CLUSTER', 'DATA_STREAM',
+ * or custom types. Data Catalog automatically creates entries with other
+ * types during metadata ingestion from integrated systems.
+ *
+ * You must enable the Data Catalog API in the project identified by
+ * the `parent` parameter. For more information, see [Data Catalog resource
+ * project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
+ *
+ * An entry group can have a maximum of 100,000 entries.
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $formattedParent = $dataCatalogClient->entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ * $entryId = 'entry_id';
+ * $entry = new Entry();
+ * $response = $dataCatalogClient->createEntry($formattedParent, $entryId, $entry);
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The name of the entry group this entry belongs to.
+ *
+ * Note: The entry itself and its child resources might not be stored in
+ * the location specified in its name.
+ * @param string $entryId Required. The ID of the entry to create.
+ *
+ * The ID must contain only letters (a-z, A-Z), numbers (0-9),
+ * and underscores (_).
+ * The maximum size is 64 bytes when encoded in UTF-8.
+ * @param Entry $entry Required. The entry 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\DataCatalog\V1\Entry
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function createEntry($parent, $entryId, $entry, array $optionalArgs = [])
+ {
+ $request = new CreateEntryRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setEntryId($entryId);
+ $request->setEntry($entry);
+ $requestParamHeaders['parent'] = $parent;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('CreateEntry', Entry::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Creates an entry group.
+ *
+ * An entry group contains logically related entries together with [Cloud
+ * Identity and Access Management](/data-catalog/docs/concepts/iam) policies.
+ * These policies specify users who can create, edit, and view entries
+ * within entry groups.
+ *
+ * Data Catalog automatically creates entry groups with names that start with
+ * the `@` symbol for the following resources:
+ *
+ * * BigQuery entries (`@bigquery`)
+ * * Pub/Sub topics (`@pubsub`)
+ * * Dataproc Metastore services (`@dataproc_metastore_{SERVICE_NAME_HASH}`)
+ *
+ * You can create your own entry groups for Cloud Storage fileset entries
+ * and custom entries together with the corresponding IAM policies.
+ * User-created entry groups can't contain the `@` symbol, it is reserved
+ * for automatically created groups.
+ *
+ * Entry groups, like entries, can be searched.
+ *
+ * A maximum of 10,000 entry groups may be created per organization across all
+ * locations.
+ *
+ * You must enable the Data Catalog API in the project identified by
+ * the `parent` parameter. For more information, see [Data Catalog resource
+ * project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $formattedParent = $dataCatalogClient->locationName('[PROJECT]', '[LOCATION]');
+ * $entryGroupId = 'entry_group_id';
+ * $response = $dataCatalogClient->createEntryGroup($formattedParent, $entryGroupId);
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The names of the project and location that the new entry group
+ * belongs to.
+ *
+ * Note: The entry group itself and its child resources might not be
+ * stored in the location specified in its name.
+ * @param string $entryGroupId Required. The ID of the entry group to create.
+ *
+ * The ID must contain only letters (a-z, A-Z), numbers (0-9),
+ * underscores (_), and must start with a letter or underscore.
+ * The maximum size is 64 bytes when encoded in UTF-8.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type EntryGroup $entryGroup
+ * The entry group to create. Defaults to empty.
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. 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\DataCatalog\V1\EntryGroup
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function createEntryGroup($parent, $entryGroupId, array $optionalArgs = [])
+ {
+ $request = new CreateEntryGroupRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setEntryGroupId($entryGroupId);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['entryGroup'])) {
+ $request->setEntryGroup($optionalArgs['entryGroup']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('CreateEntryGroup', EntryGroup::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Creates a tag and assigns it to:
+ *
+ * * An [Entry][google.cloud.datacatalog.v1.Entry] if the method name is
+ * `projects.locations.entryGroups.entries.tags.create`.
+ * * Or [EntryGroup][google.cloud.datacatalog.v1.EntryGroup]if the method
+ * name is `projects.locations.entryGroups.tags.create`.
+ *
+ * Note: The project identified by the `parent` parameter for the [tag]
+ * (https://cloud.google.com/data-catalog/docs/reference/rest/v1/projects.locations.entryGroups.entries.tags/create#path-parameters)
+ * and the [tag template]
+ * (https://cloud.google.com/data-catalog/docs/reference/rest/v1/projects.locations.tagTemplates/create#path-parameters)
+ * used to create the tag must be in the same organization.
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $formattedParent = $dataCatalogClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ * $tag = new Tag();
+ * $response = $dataCatalogClient->createTag($formattedParent, $tag);
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The name of the resource to attach this tag to.
+ *
+ * Tags can be attached to entries or entry groups. An entry can have up to
+ * 1000 attached tags.
+ *
+ * Note: The tag and its child resources might not be stored in
+ * the location specified in its name.
+ * @param Tag $tag Required. The tag 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\DataCatalog\V1\Tag
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function createTag($parent, $tag, array $optionalArgs = [])
+ {
+ $request = new CreateTagRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setTag($tag);
+ $requestParamHeaders['parent'] = $parent;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('CreateTag', Tag::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Creates a tag template.
+ *
+ * You must enable the Data Catalog API in the project identified by the
+ * `parent` parameter.
+ * For more information, see [Data Catalog resource project]
+ * (https://cloud.google.com/data-catalog/docs/concepts/resource-project).
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $formattedParent = $dataCatalogClient->locationName('[PROJECT]', '[LOCATION]');
+ * $tagTemplateId = 'tag_template_id';
+ * $tagTemplate = new TagTemplate();
+ * $response = $dataCatalogClient->createTagTemplate($formattedParent, $tagTemplateId, $tagTemplate);
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The name of the project and the template location
+ * [region](https://cloud.google.com/data-catalog/docs/concepts/regions).
+ * @param string $tagTemplateId Required. The ID of the tag template to create.
+ *
+ * The ID must contain only lowercase letters (a-z), numbers (0-9),
+ * or underscores (_), and must start with a letter or underscore.
+ * The maximum size is 64 bytes when encoded in UTF-8.
+ * @param TagTemplate $tagTemplate Required. The tag template 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\DataCatalog\V1\TagTemplate
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function createTagTemplate($parent, $tagTemplateId, $tagTemplate, array $optionalArgs = [])
+ {
+ $request = new CreateTagTemplateRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setTagTemplateId($tagTemplateId);
+ $request->setTagTemplate($tagTemplate);
+ $requestParamHeaders['parent'] = $parent;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('CreateTagTemplate', TagTemplate::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Creates a field in a tag template.
+ *
+ * You must enable the Data Catalog API in the project identified by
+ * the `parent` parameter. For more information, see [Data Catalog resource
+ * project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $formattedParent = $dataCatalogClient->tagTemplateName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]');
+ * $tagTemplateFieldId = 'tag_template_field_id';
+ * $tagTemplateField = new TagTemplateField();
+ * $response = $dataCatalogClient->createTagTemplateField($formattedParent, $tagTemplateFieldId, $tagTemplateField);
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The name of the project and the template location
+ * [region](https://cloud.google.com/data-catalog/docs/concepts/regions).
+ * @param string $tagTemplateFieldId Required. The ID of the tag template field to create.
+ *
+ * Note: Adding a required field to an existing template is *not* allowed.
+ *
+ * Field IDs can contain letters (both uppercase and lowercase), numbers
+ * (0-9), underscores (_) and dashes (-). Field IDs must be at least 1
+ * character long and at most 128 characters long. Field IDs must also be
+ * unique within their template.
+ * @param TagTemplateField $tagTemplateField Required. The tag template field 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\DataCatalog\V1\TagTemplateField
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function createTagTemplateField($parent, $tagTemplateFieldId, $tagTemplateField, array $optionalArgs = [])
+ {
+ $request = new CreateTagTemplateFieldRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setTagTemplateFieldId($tagTemplateFieldId);
+ $request->setTagTemplateField($tagTemplateField);
+ $requestParamHeaders['parent'] = $parent;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('CreateTagTemplateField', TagTemplateField::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Deletes an existing entry.
+ *
+ * You can delete only the entries created by the
+ * [CreateEntry][google.cloud.datacatalog.v1.DataCatalog.CreateEntry]
+ * method.
+ *
+ * You must enable the Data Catalog API in the project identified by
+ * the `name` parameter. For more information, see [Data Catalog
+ * resource
+ * project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $formattedName = $dataCatalogClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ * $dataCatalogClient->deleteEntry($formattedName);
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The name of the entry to delete.
+ * @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 deleteEntry($name, array $optionalArgs = [])
+ {
+ $request = new DeleteEntryRequest();
+ $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('DeleteEntry', GPBEmpty::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Deletes an entry group.
+ *
+ * You must enable the Data Catalog API in the project
+ * identified by the `name` parameter. For more information, see [Data Catalog
+ * resource
+ * project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $formattedName = $dataCatalogClient->entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ * $dataCatalogClient->deleteEntryGroup($formattedName);
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The name of the entry group to delete.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type bool $force
+ * Optional. If true, deletes all entries in the entry group.
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this 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 deleteEntryGroup($name, array $optionalArgs = [])
+ {
+ $request = new DeleteEntryGroupRequest();
+ $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('DeleteEntryGroup', GPBEmpty::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Deletes a tag.
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $formattedName = $dataCatalogClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ * $dataCatalogClient->deleteTag($formattedName);
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The name of the tag to delete.
+ * @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 deleteTag($name, array $optionalArgs = [])
+ {
+ $request = new DeleteTagRequest();
+ $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('DeleteTag', GPBEmpty::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Deletes a tag template and all tags that use it.
+ *
+ * You must enable the Data Catalog API in the project identified by
+ * the `name` parameter. For more information, see [Data Catalog resource
+ * project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $formattedName = $dataCatalogClient->tagTemplateName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]');
+ * $force = false;
+ * $dataCatalogClient->deleteTagTemplate($formattedName, $force);
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The name of the tag template to delete.
+ * @param bool $force Required. If true, deletes all tags that use this template.
+ *
+ * Currently, `true` is the only supported value.
+ * @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 deleteTagTemplate($name, $force, array $optionalArgs = [])
+ {
+ $request = new DeleteTagTemplateRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $request->setForce($force);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('DeleteTagTemplate', GPBEmpty::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Deletes a field in a tag template and all uses of this field from the tags
+ * based on this template.
+ *
+ * You must enable the Data Catalog API in the project identified by
+ * the `name` parameter. For more information, see [Data Catalog resource
+ * project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $formattedName = $dataCatalogClient->tagTemplateFieldName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]', '[FIELD]');
+ * $force = false;
+ * $dataCatalogClient->deleteTagTemplateField($formattedName, $force);
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The name of the tag template field to delete.
+ * @param bool $force Required. If true, deletes this field from any tags that use it.
+ *
+ * Currently, `true` is the only supported value.
+ * @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 deleteTagTemplateField($name, $force, array $optionalArgs = [])
+ {
+ $request = new DeleteTagTemplateFieldRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $request->setForce($force);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('DeleteTagTemplateField', GPBEmpty::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Gets an entry.
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $formattedName = $dataCatalogClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ * $response = $dataCatalogClient->getEntry($formattedName);
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The name of the entry to get.
+ * @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\DataCatalog\V1\Entry
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getEntry($name, array $optionalArgs = [])
+ {
+ $request = new GetEntryRequest();
+ $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('GetEntry', Entry::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Gets an entry group.
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $formattedName = $dataCatalogClient->entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ * $response = $dataCatalogClient->getEntryGroup($formattedName);
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The name of the entry group to get.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type FieldMask $readMask
+ * The fields to return. If empty or omitted, all fields are returned.
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. 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\DataCatalog\V1\EntryGroup
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getEntryGroup($name, array $optionalArgs = [])
+ {
+ $request = new GetEntryGroupRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $requestParamHeaders['name'] = $name;
+ if (isset($optionalArgs['readMask'])) {
+ $request->setReadMask($optionalArgs['readMask']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('GetEntryGroup', EntryGroup::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Gets the access control policy for a resource.
+ *
+ * May return:
+ *
+ * * A`NOT_FOUND` error if the resource doesn't exist or you don't have the
+ * permission to view it.
+ * * An empty policy if the resource exists but doesn't have a set policy.
+ *
+ * Supported resources are:
+ *
+ * - Tag templates
+ * - Entry groups
+ *
+ * Note: This method doesn't get policies from Google Cloud Platform
+ * resources ingested into Data Catalog.
+ *
+ * To call this method, you must have the following Google IAM permissions:
+ *
+ * - `datacatalog.tagTemplates.getIamPolicy` to get policies on tag
+ * templates.
+ * - `datacatalog.entryGroups.getIamPolicy` to get policies on entry groups.
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $resource = 'resource';
+ * $response = $dataCatalogClient->getIamPolicy($resource);
+ * } finally {
+ * $dataCatalogClient->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)->wait();
+ }
+
+ /**
+ * Gets a tag template.
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $formattedName = $dataCatalogClient->tagTemplateName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]');
+ * $response = $dataCatalogClient->getTagTemplate($formattedName);
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The name of the tag template to get.
+ * @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\DataCatalog\V1\TagTemplate
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getTagTemplate($name, array $optionalArgs = [])
+ {
+ $request = new GetTagTemplateRequest();
+ $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('GetTagTemplate', TagTemplate::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Imports entries from a source, such as data previously dumped into a
+ * Cloud Storage bucket, into Data Catalog. Import of entries
+ * is a sync operation that reconciles the state of the third-party system
+ * with the Data Catalog.
+ *
+ * `ImportEntries` accepts source data snapshots of a third-party system.
+ * Snapshot should be delivered as a .wire or base65-encoded .txt file
+ * containing a sequence of Protocol Buffer messages of
+ * [DumpItem][google.cloud.datacatalog.v1.DumpItem] type.
+ *
+ * `ImportEntries` returns a [long-running operation]
+ * [google.longrunning.Operation] resource that can be queried with
+ * [Operations.GetOperation][google.longrunning.Operations.GetOperation]
+ * to return
+ * [ImportEntriesMetadata][google.cloud.datacatalog.v1.ImportEntriesMetadata]
+ * and an
+ * [ImportEntriesResponse][google.cloud.datacatalog.v1.ImportEntriesResponse]
+ * message.
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $formattedParent = $dataCatalogClient->entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ * $operationResponse = $dataCatalogClient->importEntries($formattedParent);
+ * $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 = $dataCatalogClient->importEntries($formattedParent);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataCatalogClient->resumeOperation($operationName, 'importEntries');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. Target entry group for ingested entries.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $gcsBucketPath
+ * Path to a Cloud Storage bucket that contains a dump ready for ingestion.
+ * @type string $jobId
+ * Optional. (Optional) Dataplex task job id, if specified will be used as
+ * part of ImportEntries LRO ID
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. 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 importEntries($parent, array $optionalArgs = [])
+ {
+ $request = new ImportEntriesRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['gcsBucketPath'])) {
+ $request->setGcsBucketPath($optionalArgs['gcsBucketPath']);
+ }
+
+ if (isset($optionalArgs['jobId'])) {
+ $request->setJobId($optionalArgs['jobId']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('ImportEntries', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Lists entries.
+ *
+ * Note: Currently, this method can list only custom entries.
+ * To get a list of both custom and automatically created entries, use
+ * [SearchCatalog][google.cloud.datacatalog.v1.DataCatalog.SearchCatalog].
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $formattedParent = $dataCatalogClient->entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataCatalogClient->listEntries($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataCatalogClient->listEntries($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The name of the entry group that contains the entries to list.
+ *
+ * Can be provided in URL format.
+ * @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 FieldMask $readMask
+ * The fields to return for each entry. If empty or omitted, all
+ * fields are returned.
+ *
+ * For example, to return a list of entries with only the `name` field,
+ * set `read_mask` to only one path with the `name` value.
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. 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 listEntries($parent, array $optionalArgs = [])
+ {
+ $request = new ListEntriesRequest();
+ $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['readMask'])) {
+ $request->setReadMask($optionalArgs['readMask']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListEntries', $optionalArgs, ListEntriesResponse::class, $request);
+ }
+
+ /**
+ * Lists entry groups.
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $formattedParent = $dataCatalogClient->locationName('[PROJECT]', '[LOCATION]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataCatalogClient->listEntryGroups($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataCatalogClient->listEntryGroups($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The name of the location that contains the entry groups to list.
+ *
+ * Can be provided as a URL.
+ * @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 listEntryGroups($parent, array $optionalArgs = [])
+ {
+ $request = new ListEntryGroupsRequest();
+ $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('ListEntryGroups', $optionalArgs, ListEntryGroupsResponse::class, $request);
+ }
+
+ /**
+ * Lists tags assigned to an [Entry][google.cloud.datacatalog.v1.Entry].
+ * The [columns][google.cloud.datacatalog.v1.Tag.column] in the response are
+ * lowercased.
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $formattedParent = $dataCatalogClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataCatalogClient->listTags($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataCatalogClient->listTags($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. The name of the Data Catalog resource to list the tags of.
+ *
+ * The resource can be an [Entry][google.cloud.datacatalog.v1.Entry]
+ * or an [EntryGroup][google.cloud.datacatalog.v1.EntryGroup]
+ * (without `/entries/{entries}` at the end).
+ * @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 listTags($parent, array $optionalArgs = [])
+ {
+ $request = new ListTagsRequest();
+ $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('ListTags', $optionalArgs, ListTagsResponse::class, $request);
+ }
+
+ /**
+ * Gets an entry by its target resource name.
+ *
+ * The resource name comes from the source Google Cloud Platform service.
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $response = $dataCatalogClient->lookupEntry();
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type string $linkedResource
+ * The full name of the Google Cloud Platform resource the Data Catalog
+ * entry represents. For more information, see [Full Resource Name]
+ * (https://cloud.google.com/apis/design/resource_names#full_resource_name).
+ *
+ * Full names are case-sensitive. For example:
+ *
+ * * `//bigquery.googleapis.com/projects/{PROJECT_ID}/datasets/{DATASET_ID}/tables/{TABLE_ID}`
+ * * `//pubsub.googleapis.com/projects/{PROJECT_ID}/topics/{TOPIC_ID}`
+ * @type string $sqlResource
+ * The SQL name of the entry. SQL names are case-sensitive.
+ *
+ * Examples:
+ *
+ * * `pubsub.topic.{PROJECT_ID}.{TOPIC_ID}`
+ * * `pubsub.topic.{PROJECT_ID}.`\``{TOPIC.ID.SEPARATED.WITH.DOTS}`\`
+ * * `bigquery.table.{PROJECT_ID}.{DATASET_ID}.{TABLE_ID}`
+ * * `bigquery.dataset.{PROJECT_ID}.{DATASET_ID}`
+ * * `datacatalog.entry.{PROJECT_ID}.{LOCATION_ID}.{ENTRY_GROUP_ID}.{ENTRY_ID}`
+ *
+ * Identifiers (`*_ID`) should comply with the
+ * [Lexical structure in Standard SQL]
+ * (https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical).
+ * @type string $fullyQualifiedName
+ * [Fully Qualified Name
+ * (FQN)](https://cloud.google.com//data-catalog/docs/fully-qualified-names)
+ * of the resource.
+ *
+ * FQNs take two forms:
+ *
+ * * For non-regionalized resources:
+ *
+ * `{SYSTEM}:{PROJECT}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}`
+ *
+ * * For regionalized resources:
+ *
+ * `{SYSTEM}:{PROJECT}.{LOCATION_ID}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}`
+ *
+ * Example for a DPMS table:
+ *
+ * `dataproc_metastore:{PROJECT_ID}.{LOCATION_ID}.{INSTANCE_ID}.{DATABASE_ID}.{TABLE_ID}`
+ * @type string $project
+ * Project where the lookup should be performed. Required to lookup
+ * entry that is not a part of `DPMS` or `DATAPLEX` `integrated_system`
+ * using its `fully_qualified_name`. Ignored in other cases.
+ * @type string $location
+ * Location where the lookup should be performed. Required to lookup
+ * entry that is not a part of `DPMS` or `DATAPLEX` `integrated_system`
+ * using its `fully_qualified_name`. Ignored in other cases.
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. 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\DataCatalog\V1\Entry
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function lookupEntry(array $optionalArgs = [])
+ {
+ $request = new LookupEntryRequest();
+ if (isset($optionalArgs['linkedResource'])) {
+ $request->setLinkedResource($optionalArgs['linkedResource']);
+ }
+
+ if (isset($optionalArgs['sqlResource'])) {
+ $request->setSqlResource($optionalArgs['sqlResource']);
+ }
+
+ if (isset($optionalArgs['fullyQualifiedName'])) {
+ $request->setFullyQualifiedName($optionalArgs['fullyQualifiedName']);
+ }
+
+ if (isset($optionalArgs['project'])) {
+ $request->setProject($optionalArgs['project']);
+ }
+
+ if (isset($optionalArgs['location'])) {
+ $request->setLocation($optionalArgs['location']);
+ }
+
+ return $this->startCall('LookupEntry', Entry::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Modifies contacts, part of the business context of an
+ * [Entry][google.cloud.datacatalog.v1.Entry].
+ *
+ * To call this method, you must have the `datacatalog.entries.updateContacts`
+ * IAM permission on the corresponding project.
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $formattedName = $dataCatalogClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ * $contacts = new Contacts();
+ * $response = $dataCatalogClient->modifyEntryContacts($formattedName, $contacts);
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The full resource name of the entry.
+ * @param Contacts $contacts Required. The new value for the Contacts.
+ * @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\DataCatalog\V1\Contacts
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function modifyEntryContacts($name, $contacts, array $optionalArgs = [])
+ {
+ $request = new ModifyEntryContactsRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $request->setContacts($contacts);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('ModifyEntryContacts', Contacts::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Modifies entry overview, part of the business context of an
+ * [Entry][google.cloud.datacatalog.v1.Entry].
+ *
+ * To call this method, you must have the `datacatalog.entries.updateOverview`
+ * IAM permission on the corresponding project.
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $formattedName = $dataCatalogClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ * $entryOverview = new EntryOverview();
+ * $response = $dataCatalogClient->modifyEntryOverview($formattedName, $entryOverview);
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The full resource name of the entry.
+ * @param EntryOverview $entryOverview Required. The new value for the Entry Overview.
+ * @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\DataCatalog\V1\EntryOverview
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function modifyEntryOverview($name, $entryOverview, array $optionalArgs = [])
+ {
+ $request = new ModifyEntryOverviewRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $request->setEntryOverview($entryOverview);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('ModifyEntryOverview', EntryOverview::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * `ReconcileTags` creates or updates a list of tags on the entry.
+ * If the
+ * [ReconcileTagsRequest.force_delete_missing][google.cloud.datacatalog.v1.ReconcileTagsRequest.force_delete_missing]
+ * parameter is set, the operation deletes tags not included in the input tag
+ * list.
+ *
+ * `ReconcileTags` returns a [long-running operation]
+ * [google.longrunning.Operation] resource that can be queried with
+ * [Operations.GetOperation][google.longrunning.Operations.GetOperation]
+ * to return [ReconcileTagsMetadata]
+ * [google.cloud.datacatalog.v1.ReconcileTagsMetadata] and
+ * a [ReconcileTagsResponse]
+ * [google.cloud.datacatalog.v1.ReconcileTagsResponse] message.
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $formattedParent = $dataCatalogClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ * $formattedTagTemplate = $dataCatalogClient->tagTemplateName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]');
+ * $operationResponse = $dataCatalogClient->reconcileTags($formattedParent, $formattedTagTemplate);
+ * $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 = $dataCatalogClient->reconcileTags($formattedParent, $formattedTagTemplate);
+ * $operationName = $operationResponse->getName();
+ * // ... do other work
+ * $newOperationResponse = $dataCatalogClient->resumeOperation($operationName, 'reconcileTags');
+ * while (!$newOperationResponse->isDone()) {
+ * // ... do other work
+ * $newOperationResponse->reload();
+ * }
+ * if ($newOperationResponse->operationSucceeded()) {
+ * $result = $newOperationResponse->getResult();
+ * // doSomethingWith($result)
+ * } else {
+ * $error = $newOperationResponse->getError();
+ * // handleError($error)
+ * }
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. Name of [Entry][google.cloud.datacatalog.v1.Entry] to be tagged.
+ * @param string $tagTemplate Required. The name of the tag template, which is used for reconciliation.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type bool $forceDeleteMissing
+ * If set to `true`, deletes entry tags related to a tag template
+ * not listed in the tags source from an entry. If set to `false`,
+ * unlisted tags are retained.
+ * @type Tag[] $tags
+ * A list of tags to apply to an entry. A tag can specify a
+ * tag template, which must be the template specified in the
+ * `ReconcileTagsRequest`.
+ * The sole entry and each of its columns must be mentioned at most once.
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. 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 reconcileTags($parent, $tagTemplate, array $optionalArgs = [])
+ {
+ $request = new ReconcileTagsRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setTagTemplate($tagTemplate);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['forceDeleteMissing'])) {
+ $request->setForceDeleteMissing($optionalArgs['forceDeleteMissing']);
+ }
+
+ if (isset($optionalArgs['tags'])) {
+ $request->setTags($optionalArgs['tags']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startOperationsCall('ReconcileTags', $optionalArgs, $request, $this->getOperationsClient())->wait();
+ }
+
+ /**
+ * Renames a field in a tag template.
+ *
+ * You must enable the Data Catalog API in the project identified by the
+ * `name` parameter. For more information, see [Data Catalog resource project]
+ * (https://cloud.google.com/data-catalog/docs/concepts/resource-project).
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $formattedName = $dataCatalogClient->tagTemplateFieldName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]', '[FIELD]');
+ * $newTagTemplateFieldId = 'new_tag_template_field_id';
+ * $response = $dataCatalogClient->renameTagTemplateField($formattedName, $newTagTemplateFieldId);
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The name of the tag template field.
+ * @param string $newTagTemplateFieldId Required. The new ID of this tag template field. For example,
+ * `my_new_field`.
+ * @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\DataCatalog\V1\TagTemplateField
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function renameTagTemplateField($name, $newTagTemplateFieldId, array $optionalArgs = [])
+ {
+ $request = new RenameTagTemplateFieldRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $request->setNewTagTemplateFieldId($newTagTemplateFieldId);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('RenameTagTemplateField', TagTemplateField::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Renames an enum value in a tag template.
+ *
+ * Within a single enum field, enum values must be unique.
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $formattedName = $dataCatalogClient->tagTemplateFieldEnumValueName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]', '[TAG_TEMPLATE_FIELD_ID]', '[ENUM_VALUE_DISPLAY_NAME]');
+ * $newEnumValueDisplayName = 'new_enum_value_display_name';
+ * $response = $dataCatalogClient->renameTagTemplateFieldEnumValue($formattedName, $newEnumValueDisplayName);
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The name of the enum field value.
+ * @param string $newEnumValueDisplayName Required. The new display name of the enum value. For example,
+ * `my_new_enum_value`.
+ * @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\DataCatalog\V1\TagTemplateField
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function renameTagTemplateFieldEnumValue($name, $newEnumValueDisplayName, array $optionalArgs = [])
+ {
+ $request = new RenameTagTemplateFieldEnumValueRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $request->setNewEnumValueDisplayName($newEnumValueDisplayName);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('RenameTagTemplateFieldEnumValue', TagTemplateField::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Searches Data Catalog for multiple resources like entries and tags that
+ * match a query.
+ *
+ * This is a [Custom Method]
+ * (https://cloud.google.com/apis/design/custom_methods) that doesn't return
+ * all information on a resource, only its ID and high level fields. To get
+ * more information, you can subsequently call specific get methods.
+ *
+ * Note: Data Catalog search queries don't guarantee full recall. Results
+ * that match your query might not be returned, even in subsequent
+ * result pages. Additionally, returned (and not returned) results can vary
+ * if you repeat search queries.
+ *
+ * For more information, see [Data Catalog search syntax]
+ * (https://cloud.google.com/data-catalog/docs/how-to/search-reference).
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $scope = new Scope();
+ * $query = 'query';
+ * // Iterate over pages of elements
+ * $pagedResponse = $dataCatalogClient->searchCatalog($scope, $query);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $dataCatalogClient->searchCatalog($scope, $query);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param Scope $scope Required. The scope of this search request.
+ *
+ * The `scope` is invalid if `include_org_ids`, `include_project_ids` are
+ * empty AND `include_gcp_public_datasets` is set to `false`. In this case,
+ * the request returns an error.
+ * @param string $query Optional. The query string with a minimum of 3 characters and specific
+ * syntax. For more information, see [Data Catalog search
+ * syntax](https://cloud.google.com/data-catalog/docs/how-to/search-reference).
+ *
+ * An empty query string returns all data assets (in the specified scope)
+ * that you have access to.
+ *
+ * A query string can be a simple `xyz` or qualified by predicates:
+ *
+ * * `name:x`
+ * * `column:y`
+ * * `description:z`
+ * @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
+ * Specifies the order of results.
+ *
+ * Currently supported case-sensitive values are:
+ *
+ * * `relevance` that can only be descending
+ * * `last_modified_timestamp [asc|desc]` with descending (`desc`) as default
+ * * `default` that can only be descending
+ *
+ * Search queries don't guarantee full recall. Results that match your query
+ * might not be returned, even in subsequent result pages. Additionally,
+ * returned (and not returned) results can vary if you repeat search queries.
+ * If you are experiencing recall issues and you don't have to fetch the
+ * results in any specific order, consider setting this parameter to
+ * `default`.
+ *
+ * If this parameter is omitted, it defaults to the descending `relevance`.
+ * @type bool $adminSearch
+ * Optional. If set, use searchAll permission granted on organizations from
+ * `include_org_ids` and projects from `include_project_ids` instead of the
+ * fine grained per resource permissions when filtering the search results.
+ * The only allowed `order_by` criteria for admin_search mode is `default`.
+ * Using this flags guarantees a full recall of the search results.
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. 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 searchCatalog($scope, $query, array $optionalArgs = [])
+ {
+ $request = new SearchCatalogRequest();
+ $request->setScope($scope);
+ $request->setQuery($query);
+ 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['adminSearch'])) {
+ $request->setAdminSearch($optionalArgs['adminSearch']);
+ }
+
+ return $this->getPagedListResponse('SearchCatalog', $optionalArgs, SearchCatalogResponse::class, $request);
+ }
+
+ /**
+ * Sets an access control policy for a resource. Replaces any existing
+ * policy.
+ *
+ * Supported resources are:
+ *
+ * - Tag templates
+ * - Entry groups
+ *
+ * Note: This method sets policies only within Data Catalog and can't be
+ * used to manage policies in BigQuery, Pub/Sub, Dataproc Metastore, and any
+ * external Google Cloud Platform resources synced with the Data Catalog.
+ *
+ * To call this method, you must have the following Google IAM permissions:
+ *
+ * - `datacatalog.tagTemplates.setIamPolicy` to set policies on tag
+ * templates.
+ * - `datacatalog.entryGroups.setIamPolicy` to set policies on entry groups.
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $resource = 'resource';
+ * $policy = new Policy();
+ * $response = $dataCatalogClient->setIamPolicy($resource, $policy);
+ * } finally {
+ * $dataCatalogClient->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)->wait();
+ }
+
+ /**
+ * Marks an [Entry][google.cloud.datacatalog.v1.Entry] as starred by
+ * the current user. Starring information is private to each user.
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $formattedName = $dataCatalogClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ * $response = $dataCatalogClient->starEntry($formattedName);
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The name of the entry to mark as starred.
+ * @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\DataCatalog\V1\StarEntryResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function starEntry($name, array $optionalArgs = [])
+ {
+ $request = new StarEntryRequest();
+ $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('StarEntry', StarEntryResponse::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Gets your permissions on a resource.
+ *
+ * Returns an empty set of permissions if the resource doesn't exist.
+ *
+ * Supported resources are:
+ *
+ * - Tag templates
+ * - Entry groups
+ *
+ * Note: This method gets policies only within Data Catalog and can't be
+ * used to get policies from BigQuery, Pub/Sub, Dataproc Metastore, and any
+ * external Google Cloud Platform resources ingested into Data Catalog.
+ *
+ * No Google IAM permissions are required to call this method.
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $resource = 'resource';
+ * $permissions = [];
+ * $response = $dataCatalogClient->testIamPermissions($resource, $permissions);
+ * } finally {
+ * $dataCatalogClient->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)->wait();
+ }
+
+ /**
+ * Marks an [Entry][google.cloud.datacatalog.v1.Entry] as NOT starred by
+ * the current user. Starring information is private to each user.
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $formattedName = $dataCatalogClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ * $response = $dataCatalogClient->unstarEntry($formattedName);
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The name of the entry to mark as **not** starred.
+ * @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\DataCatalog\V1\UnstarEntryResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function unstarEntry($name, array $optionalArgs = [])
+ {
+ $request = new UnstarEntryRequest();
+ $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('UnstarEntry', UnstarEntryResponse::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Updates an existing entry.
+ *
+ * You must enable the Data Catalog API in the project identified by
+ * the `entry.name` parameter. For more information, see [Data Catalog
+ * resource
+ * project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $entry = new Entry();
+ * $response = $dataCatalogClient->updateEntry($entry);
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param Entry $entry Required. Updates for the entry. The `name` field must be set.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type FieldMask $updateMask
+ * Names of fields whose values to overwrite on an entry.
+ *
+ * If this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the
+ * request body, their values are emptied.
+ *
+ * You can modify only the fields listed below.
+ *
+ * For entries with type `DATA_STREAM`:
+ *
+ * * `schema`
+ *
+ * For entries with type `FILESET`:
+ *
+ * * `schema`
+ * * `display_name`
+ * * `description`
+ * * `gcs_fileset_spec`
+ * * `gcs_fileset_spec.file_patterns`
+ *
+ * For entries with `user_specified_type`:
+ *
+ * * `schema`
+ * * `display_name`
+ * * `description`
+ * * `user_specified_type`
+ * * `user_specified_system`
+ * * `linked_resource`
+ * * `source_system_timestamps`
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. 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\DataCatalog\V1\Entry
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function updateEntry($entry, array $optionalArgs = [])
+ {
+ $request = new UpdateEntryRequest();
+ $requestParamHeaders = [];
+ $request->setEntry($entry);
+ $requestParamHeaders['entry.name'] = $entry->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('UpdateEntry', Entry::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Updates an entry group.
+ *
+ * You must enable the Data Catalog API in the project identified by
+ * the `entry_group.name` parameter. For more information, see [Data Catalog
+ * resource
+ * project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $entryGroup = new EntryGroup();
+ * $response = $dataCatalogClient->updateEntryGroup($entryGroup);
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param EntryGroup $entryGroup Required. Updates for the entry group. The `name` field must be set.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type FieldMask $updateMask
+ * Names of fields whose values to overwrite on an entry group.
+ *
+ * If this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the
+ * request body, their values are emptied.
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. 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\DataCatalog\V1\EntryGroup
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function updateEntryGroup($entryGroup, array $optionalArgs = [])
+ {
+ $request = new UpdateEntryGroupRequest();
+ $requestParamHeaders = [];
+ $request->setEntryGroup($entryGroup);
+ $requestParamHeaders['entry_group.name'] = $entryGroup->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('UpdateEntryGroup', EntryGroup::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Updates an existing tag.
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $tag = new Tag();
+ * $response = $dataCatalogClient->updateTag($tag);
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param Tag $tag Required. The updated tag. The "name" field must be set.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type FieldMask $updateMask
+ * Names of fields whose values to overwrite on a tag. Currently, a tag has
+ * the only modifiable field with the name `fields`.
+ *
+ * In general, if this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the
+ * request body, their values are emptied.
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. 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\DataCatalog\V1\Tag
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function updateTag($tag, array $optionalArgs = [])
+ {
+ $request = new UpdateTagRequest();
+ $requestParamHeaders = [];
+ $request->setTag($tag);
+ $requestParamHeaders['tag.name'] = $tag->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('UpdateTag', Tag::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Updates a tag template.
+ *
+ * You can't update template fields with this method. These fields are
+ * separate resources with their own create, update, and delete methods.
+ *
+ * You must enable the Data Catalog API in the project identified by
+ * the `tag_template.name` parameter. For more information, see [Data Catalog
+ * resource
+ * project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $tagTemplate = new TagTemplate();
+ * $response = $dataCatalogClient->updateTagTemplate($tagTemplate);
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param TagTemplate $tagTemplate Required. The template to update. The `name` field must be set.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type FieldMask $updateMask
+ * Names of fields whose values to overwrite on a tag template. Currently,
+ * only `display_name` and `is_publicly_readable` can be overwritten.
+ *
+ * If this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the
+ * request body, their values are emptied.
+ *
+ * Note: Updating the `is_publicly_readable` field may require up to 12
+ * hours to take effect in search results.
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. 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\DataCatalog\V1\TagTemplate
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function updateTagTemplate($tagTemplate, array $optionalArgs = [])
+ {
+ $request = new UpdateTagTemplateRequest();
+ $requestParamHeaders = [];
+ $request->setTagTemplate($tagTemplate);
+ $requestParamHeaders['tag_template.name'] = $tagTemplate->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('UpdateTagTemplate', TagTemplate::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Updates a field in a tag template.
+ *
+ * You can't update the field type with this method.
+ *
+ * You must enable the Data Catalog API in the project
+ * identified by the `name` parameter. For more information, see [Data Catalog
+ * resource
+ * project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
+ *
+ * Sample code:
+ * ```
+ * $dataCatalogClient = new DataCatalogClient();
+ * try {
+ * $formattedName = $dataCatalogClient->tagTemplateFieldName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]', '[FIELD]');
+ * $tagTemplateField = new TagTemplateField();
+ * $response = $dataCatalogClient->updateTagTemplateField($formattedName, $tagTemplateField);
+ * } finally {
+ * $dataCatalogClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. The name of the tag template field.
+ * @param TagTemplateField $tagTemplateField Required. The template to update.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type FieldMask $updateMask
+ * Optional. Names of fields whose values to overwrite on an individual field
+ * of a tag template. The following fields are modifiable:
+ *
+ * * `display_name`
+ * * `type.enum_type`
+ * * `is_required`
+ *
+ * If this parameter is absent or empty, all modifiable fields
+ * are overwritten. If such fields are non-required and omitted in the request
+ * body, their values are emptied with one exception: when updating an enum
+ * type, the provided values are merged with the existing values. Therefore,
+ * enum values can only be added, existing enum values cannot be deleted or
+ * renamed.
+ *
+ * Additionally, updating a template field from optional to required is
+ * *not* allowed.
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. 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\DataCatalog\V1\TagTemplateField
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function updateTagTemplateField($name, $tagTemplateField, array $optionalArgs = [])
+ {
+ $request = new UpdateTagTemplateFieldRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $request->setTagTemplateField($tagTemplateField);
+ $requestParamHeaders['name'] = $name;
+ 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('UpdateTagTemplateField', TagTemplateField::class, $optionalArgs, $request)->wait();
+ }
+}
diff --git a/owl-bot-staging/DataCatalog/v1/src/V1/Gapic/PolicyTagManagerGapicClient.php b/owl-bot-staging/DataCatalog/v1/src/V1/Gapic/PolicyTagManagerGapicClient.php
new file mode 100644
index 000000000000..dd11bb8caab6
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/src/V1/Gapic/PolicyTagManagerGapicClient.php
@@ -0,0 +1,997 @@
+taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ * $response = $policyTagManagerClient->createPolicyTag($formattedParent);
+ * } finally {
+ * $policyTagManagerClient->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.
+ *
+ * @deprecated Please use the new service client {@see \Google\Cloud\DataCatalog\V1\Client\PolicyTagManagerClient}.
+ */
+class PolicyTagManagerGapicClient
+{
+ use GapicClientTrait;
+
+ /** The name of the service. */
+ const SERVICE_NAME = 'google.cloud.datacatalog.v1.PolicyTagManager';
+
+ /**
+ * The default address of the service.
+ *
+ * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead.
+ */
+ const SERVICE_ADDRESS = 'datacatalog.googleapis.com';
+
+ /** The address template of the service. */
+ private const SERVICE_ADDRESS_TEMPLATE = 'datacatalog.UNIVERSE_DOMAIN';
+
+ /** The default port of the service. */
+ const DEFAULT_SERVICE_PORT = 443;
+
+ /** The name of the code generator, to be included in the agent header. */
+ const CODEGEN_NAME = 'gapic';
+
+ /** The default scopes required by the service. */
+ public static $serviceScopes = [
+ 'https://www.googleapis.com/auth/cloud-platform',
+ ];
+
+ private static $locationNameTemplate;
+
+ private static $policyTagNameTemplate;
+
+ private static $taxonomyNameTemplate;
+
+ private static $pathTemplateMap;
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/policy_tag_manager_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/policy_tag_manager_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/policy_tag_manager_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/policy_tag_manager_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ private static function getLocationNameTemplate()
+ {
+ if (self::$locationNameTemplate == null) {
+ self::$locationNameTemplate = new PathTemplate('projects/{project}/locations/{location}');
+ }
+
+ return self::$locationNameTemplate;
+ }
+
+ private static function getPolicyTagNameTemplate()
+ {
+ if (self::$policyTagNameTemplate == null) {
+ self::$policyTagNameTemplate = new PathTemplate('projects/{project}/locations/{location}/taxonomies/{taxonomy}/policyTags/{policy_tag}');
+ }
+
+ return self::$policyTagNameTemplate;
+ }
+
+ private static function getTaxonomyNameTemplate()
+ {
+ if (self::$taxonomyNameTemplate == null) {
+ self::$taxonomyNameTemplate = new PathTemplate('projects/{project}/locations/{location}/taxonomies/{taxonomy}');
+ }
+
+ return self::$taxonomyNameTemplate;
+ }
+
+ private static function getPathTemplateMap()
+ {
+ if (self::$pathTemplateMap == null) {
+ self::$pathTemplateMap = [
+ 'location' => self::getLocationNameTemplate(),
+ 'policyTag' => self::getPolicyTagNameTemplate(),
+ 'taxonomy' => self::getTaxonomyNameTemplate(),
+ ];
+ }
+
+ return self::$pathTemplateMap;
+ }
+
+ /**
+ * 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 policy_tag
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $taxonomy
+ * @param string $policyTag
+ *
+ * @return string The formatted policy_tag resource.
+ */
+ public static function policyTagName($project, $location, $taxonomy, $policyTag)
+ {
+ return self::getPolicyTagNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'taxonomy' => $taxonomy,
+ 'policy_tag' => $policyTag,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a taxonomy
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $taxonomy
+ *
+ * @return string The formatted taxonomy resource.
+ */
+ public static function taxonomyName($project, $location, $taxonomy)
+ {
+ return self::getTaxonomyNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'taxonomy' => $taxonomy,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - location: projects/{project}/locations/{location}
+ * - policyTag: projects/{project}/locations/{location}/taxonomies/{taxonomy}/policyTags/{policy_tag}
+ * - taxonomy: projects/{project}/locations/{location}/taxonomies/{taxonomy}
+ *
+ * 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 'datacatalog.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);
+ }
+
+ /**
+ * Creates a policy tag in a taxonomy.
+ *
+ * Sample code:
+ * ```
+ * $policyTagManagerClient = new PolicyTagManagerClient();
+ * try {
+ * $formattedParent = $policyTagManagerClient->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ * $response = $policyTagManagerClient->createPolicyTag($formattedParent);
+ * } finally {
+ * $policyTagManagerClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. Resource name of the taxonomy that the policy tag will belong to.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type PolicyTag $policyTag
+ * The policy tag to create.
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. 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\DataCatalog\V1\PolicyTag
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function createPolicyTag($parent, array $optionalArgs = [])
+ {
+ $request = new CreatePolicyTagRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['policyTag'])) {
+ $request->setPolicyTag($optionalArgs['policyTag']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('CreatePolicyTag', PolicyTag::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Creates a taxonomy in a specified project.
+ *
+ * The taxonomy is initially empty, that is, it doesn't contain policy tags.
+ *
+ * Sample code:
+ * ```
+ * $policyTagManagerClient = new PolicyTagManagerClient();
+ * try {
+ * $formattedParent = $policyTagManagerClient->locationName('[PROJECT]', '[LOCATION]');
+ * $response = $policyTagManagerClient->createTaxonomy($formattedParent);
+ * } finally {
+ * $policyTagManagerClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. Resource name of the project that the taxonomy will belong to.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type Taxonomy $taxonomy
+ * The taxonomy to create.
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. 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\DataCatalog\V1\Taxonomy
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function createTaxonomy($parent, array $optionalArgs = [])
+ {
+ $request = new CreateTaxonomyRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['taxonomy'])) {
+ $request->setTaxonomy($optionalArgs['taxonomy']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('CreateTaxonomy', Taxonomy::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Deletes a policy tag together with the following:
+ *
+ * * All of its descendant policy tags, if any
+ * * Policies associated with the policy tag and its descendants
+ * * References from BigQuery table schema of the policy tag and its
+ * descendants
+ *
+ * Sample code:
+ * ```
+ * $policyTagManagerClient = new PolicyTagManagerClient();
+ * try {
+ * $formattedName = $policyTagManagerClient->policyTagName('[PROJECT]', '[LOCATION]', '[TAXONOMY]', '[POLICY_TAG]');
+ * $policyTagManagerClient->deletePolicyTag($formattedName);
+ * } finally {
+ * $policyTagManagerClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. Resource name of the policy tag to delete.
+ *
+ * Note: All of its descendant policy tags are also deleted.
+ * @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 deletePolicyTag($name, array $optionalArgs = [])
+ {
+ $request = new DeletePolicyTagRequest();
+ $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('DeletePolicyTag', GPBEmpty::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Deletes a taxonomy, including all policy tags in this
+ * taxonomy, their associated policies, and the policy tags references from
+ * BigQuery columns.
+ *
+ * Sample code:
+ * ```
+ * $policyTagManagerClient = new PolicyTagManagerClient();
+ * try {
+ * $formattedName = $policyTagManagerClient->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ * $policyTagManagerClient->deleteTaxonomy($formattedName);
+ * } finally {
+ * $policyTagManagerClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. Resource name of the taxonomy to delete.
+ *
+ * Note: All policy tags in this taxonomy are also deleted.
+ * @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 deleteTaxonomy($name, array $optionalArgs = [])
+ {
+ $request = new DeleteTaxonomyRequest();
+ $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('DeleteTaxonomy', GPBEmpty::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Gets the IAM policy for a policy tag or a taxonomy.
+ *
+ * Sample code:
+ * ```
+ * $policyTagManagerClient = new PolicyTagManagerClient();
+ * try {
+ * $resource = 'resource';
+ * $response = $policyTagManagerClient->getIamPolicy($resource);
+ * } finally {
+ * $policyTagManagerClient->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)->wait();
+ }
+
+ /**
+ * Gets a policy tag.
+ *
+ * Sample code:
+ * ```
+ * $policyTagManagerClient = new PolicyTagManagerClient();
+ * try {
+ * $formattedName = $policyTagManagerClient->policyTagName('[PROJECT]', '[LOCATION]', '[TAXONOMY]', '[POLICY_TAG]');
+ * $response = $policyTagManagerClient->getPolicyTag($formattedName);
+ * } finally {
+ * $policyTagManagerClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. Resource name of the policy 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\DataCatalog\V1\PolicyTag
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getPolicyTag($name, array $optionalArgs = [])
+ {
+ $request = new GetPolicyTagRequest();
+ $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('GetPolicyTag', PolicyTag::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Gets a taxonomy.
+ *
+ * Sample code:
+ * ```
+ * $policyTagManagerClient = new PolicyTagManagerClient();
+ * try {
+ * $formattedName = $policyTagManagerClient->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ * $response = $policyTagManagerClient->getTaxonomy($formattedName);
+ * } finally {
+ * $policyTagManagerClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. Resource name of the taxonomy to get.
+ * @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\DataCatalog\V1\Taxonomy
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function getTaxonomy($name, array $optionalArgs = [])
+ {
+ $request = new GetTaxonomyRequest();
+ $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('GetTaxonomy', Taxonomy::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Lists all policy tags in a taxonomy.
+ *
+ * Sample code:
+ * ```
+ * $policyTagManagerClient = new PolicyTagManagerClient();
+ * try {
+ * $formattedParent = $policyTagManagerClient->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $policyTagManagerClient->listPolicyTags($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $policyTagManagerClient->listPolicyTags($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $policyTagManagerClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. Resource name of the taxonomy to list the policy tags of.
+ * @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 listPolicyTags($parent, array $optionalArgs = [])
+ {
+ $request = new ListPolicyTagsRequest();
+ $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('ListPolicyTags', $optionalArgs, ListPolicyTagsResponse::class, $request);
+ }
+
+ /**
+ * Lists all taxonomies in a project in a particular location that you
+ * have a permission to view.
+ *
+ * Sample code:
+ * ```
+ * $policyTagManagerClient = new PolicyTagManagerClient();
+ * try {
+ * $formattedParent = $policyTagManagerClient->locationName('[PROJECT]', '[LOCATION]');
+ * // Iterate over pages of elements
+ * $pagedResponse = $policyTagManagerClient->listTaxonomies($formattedParent);
+ * foreach ($pagedResponse->iteratePages() as $page) {
+ * foreach ($page as $element) {
+ * // doSomethingWith($element);
+ * }
+ * }
+ * // Alternatively:
+ * // Iterate through all elements
+ * $pagedResponse = $policyTagManagerClient->listTaxonomies($formattedParent);
+ * foreach ($pagedResponse->iterateAllElements() as $element) {
+ * // doSomethingWith($element);
+ * }
+ * } finally {
+ * $policyTagManagerClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. Resource name of the project to list the taxonomies of.
+ * @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
+ * Supported field for filter is 'service' and value is 'dataplex'.
+ * Eg: service=dataplex.
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. 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 listTaxonomies($parent, array $optionalArgs = [])
+ {
+ $request = new ListTaxonomiesRequest();
+ $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']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->getPagedListResponse('ListTaxonomies', $optionalArgs, ListTaxonomiesResponse::class, $request);
+ }
+
+ /**
+ * Sets the IAM policy for a policy tag or a taxonomy.
+ *
+ * Sample code:
+ * ```
+ * $policyTagManagerClient = new PolicyTagManagerClient();
+ * try {
+ * $resource = 'resource';
+ * $policy = new Policy();
+ * $response = $policyTagManagerClient->setIamPolicy($resource, $policy);
+ * } finally {
+ * $policyTagManagerClient->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)->wait();
+ }
+
+ /**
+ * Returns your permissions on a specified policy tag or
+ * taxonomy.
+ *
+ * Sample code:
+ * ```
+ * $policyTagManagerClient = new PolicyTagManagerClient();
+ * try {
+ * $resource = 'resource';
+ * $permissions = [];
+ * $response = $policyTagManagerClient->testIamPermissions($resource, $permissions);
+ * } finally {
+ * $policyTagManagerClient->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)->wait();
+ }
+
+ /**
+ * Updates a policy tag, including its display
+ * name, description, and parent policy tag.
+ *
+ * Sample code:
+ * ```
+ * $policyTagManagerClient = new PolicyTagManagerClient();
+ * try {
+ * $response = $policyTagManagerClient->updatePolicyTag();
+ * } finally {
+ * $policyTagManagerClient->close();
+ * }
+ * ```
+ *
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type PolicyTag $policyTag
+ * The policy tag to update. You can update only its description, display
+ * name, and parent policy tag fields.
+ * @type FieldMask $updateMask
+ * Specifies the fields to update.
+ *
+ * You can update only display name, description, and parent policy tag.
+ * If not set, defaults to all updatable fields.
+ * For more information, see [FieldMask]
+ * (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\DataCatalog\V1\PolicyTag
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function updatePolicyTag(array $optionalArgs = [])
+ {
+ $request = new UpdatePolicyTagRequest();
+ $requestParamHeaders = [];
+ if (isset($optionalArgs['policyTag'])) {
+ $request->setPolicyTag($optionalArgs['policyTag']);
+ }
+
+ 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('UpdatePolicyTag', PolicyTag::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Updates a taxonomy, including its display name,
+ * description, and activated policy types.
+ *
+ * Sample code:
+ * ```
+ * $policyTagManagerClient = new PolicyTagManagerClient();
+ * try {
+ * $response = $policyTagManagerClient->updateTaxonomy();
+ * } finally {
+ * $policyTagManagerClient->close();
+ * }
+ * ```
+ *
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type Taxonomy $taxonomy
+ * The taxonomy to update. You can update only its description, display name,
+ * and activated policy types.
+ * @type FieldMask $updateMask
+ * Specifies fields to update. If not set, defaults to all fields you can
+ * update.
+ *
+ * For more information, see [FieldMask]
+ * (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\DataCatalog\V1\Taxonomy
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function updateTaxonomy(array $optionalArgs = [])
+ {
+ $request = new UpdateTaxonomyRequest();
+ $requestParamHeaders = [];
+ if (isset($optionalArgs['taxonomy'])) {
+ $request->setTaxonomy($optionalArgs['taxonomy']);
+ }
+
+ 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('UpdateTaxonomy', Taxonomy::class, $optionalArgs, $request)->wait();
+ }
+}
diff --git a/owl-bot-staging/DataCatalog/v1/src/V1/Gapic/PolicyTagManagerSerializationGapicClient.php b/owl-bot-staging/DataCatalog/v1/src/V1/Gapic/PolicyTagManagerSerializationGapicClient.php
new file mode 100644
index 000000000000..acc5e02a1ea5
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/src/V1/Gapic/PolicyTagManagerSerializationGapicClient.php
@@ -0,0 +1,465 @@
+locationName('[PROJECT]', '[LOCATION]');
+ * $formattedTaxonomies = [
+ * $policyTagManagerSerializationClient->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]'),
+ * ];
+ * $response = $policyTagManagerSerializationClient->exportTaxonomies($formattedParent, $formattedTaxonomies);
+ * } finally {
+ * $policyTagManagerSerializationClient->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.
+ *
+ * @deprecated Please use the new service client {@see \Google\Cloud\DataCatalog\V1\Client\PolicyTagManagerSerializationClient}.
+ */
+class PolicyTagManagerSerializationGapicClient
+{
+ use GapicClientTrait;
+
+ /** The name of the service. */
+ const SERVICE_NAME = 'google.cloud.datacatalog.v1.PolicyTagManagerSerialization';
+
+ /**
+ * The default address of the service.
+ *
+ * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead.
+ */
+ const SERVICE_ADDRESS = 'datacatalog.googleapis.com';
+
+ /** The address template of the service. */
+ private const SERVICE_ADDRESS_TEMPLATE = 'datacatalog.UNIVERSE_DOMAIN';
+
+ /** The default port of the service. */
+ const DEFAULT_SERVICE_PORT = 443;
+
+ /** The name of the code generator, to be included in the agent header. */
+ const CODEGEN_NAME = 'gapic';
+
+ /** The default scopes required by the service. */
+ public static $serviceScopes = [
+ 'https://www.googleapis.com/auth/cloud-platform',
+ ];
+
+ private static $locationNameTemplate;
+
+ private static $taxonomyNameTemplate;
+
+ private static $pathTemplateMap;
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/policy_tag_manager_serialization_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/policy_tag_manager_serialization_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/policy_tag_manager_serialization_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/policy_tag_manager_serialization_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ private static function getLocationNameTemplate()
+ {
+ if (self::$locationNameTemplate == null) {
+ self::$locationNameTemplate = new PathTemplate('projects/{project}/locations/{location}');
+ }
+
+ return self::$locationNameTemplate;
+ }
+
+ private static function getTaxonomyNameTemplate()
+ {
+ if (self::$taxonomyNameTemplate == null) {
+ self::$taxonomyNameTemplate = new PathTemplate('projects/{project}/locations/{location}/taxonomies/{taxonomy}');
+ }
+
+ return self::$taxonomyNameTemplate;
+ }
+
+ private static function getPathTemplateMap()
+ {
+ if (self::$pathTemplateMap == null) {
+ self::$pathTemplateMap = [
+ 'location' => self::getLocationNameTemplate(),
+ 'taxonomy' => self::getTaxonomyNameTemplate(),
+ ];
+ }
+
+ return self::$pathTemplateMap;
+ }
+
+ /**
+ * 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 taxonomy
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $taxonomy
+ *
+ * @return string The formatted taxonomy resource.
+ */
+ public static function taxonomyName($project, $location, $taxonomy)
+ {
+ return self::getTaxonomyNameTemplate()->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'taxonomy' => $taxonomy,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - location: projects/{project}/locations/{location}
+ * - taxonomy: projects/{project}/locations/{location}/taxonomies/{taxonomy}
+ *
+ * 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 'datacatalog.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);
+ }
+
+ /**
+ * Exports taxonomies in the requested type and returns them,
+ * including their policy tags. The requested taxonomies must belong to the
+ * same project.
+ *
+ * This method generates `SerializedTaxonomy` protocol buffers with nested
+ * policy tags that can be used as input for `ImportTaxonomies` calls.
+ *
+ * Sample code:
+ * ```
+ * $policyTagManagerSerializationClient = new PolicyTagManagerSerializationClient();
+ * try {
+ * $formattedParent = $policyTagManagerSerializationClient->locationName('[PROJECT]', '[LOCATION]');
+ * $formattedTaxonomies = [
+ * $policyTagManagerSerializationClient->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]'),
+ * ];
+ * $response = $policyTagManagerSerializationClient->exportTaxonomies($formattedParent, $formattedTaxonomies);
+ * } finally {
+ * $policyTagManagerSerializationClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. Resource name of the project that the exported taxonomies belong
+ * to.
+ * @param string[] $taxonomies Required. Resource names of the taxonomies to export.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type bool $serializedTaxonomies
+ * Serialized export taxonomies that contain all the policy
+ * tags as nested protocol buffers.
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. 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\DataCatalog\V1\ExportTaxonomiesResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function exportTaxonomies($parent, $taxonomies, array $optionalArgs = [])
+ {
+ $request = new ExportTaxonomiesRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $request->setTaxonomies($taxonomies);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['serializedTaxonomies'])) {
+ $request->setSerializedTaxonomies($optionalArgs['serializedTaxonomies']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('ExportTaxonomies', ExportTaxonomiesResponse::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Creates new taxonomies (including their policy tags) in a given project
+ * by importing from inlined or cross-regional sources.
+ *
+ * For a cross-regional source, new taxonomies are created by copying
+ * from a source in another region.
+ *
+ * For an inlined source, taxonomies and policy tags are created in bulk using
+ * nested protocol buffer structures.
+ *
+ * Sample code:
+ * ```
+ * $policyTagManagerSerializationClient = new PolicyTagManagerSerializationClient();
+ * try {
+ * $formattedParent = $policyTagManagerSerializationClient->locationName('[PROJECT]', '[LOCATION]');
+ * $response = $policyTagManagerSerializationClient->importTaxonomies($formattedParent);
+ * } finally {
+ * $policyTagManagerSerializationClient->close();
+ * }
+ * ```
+ *
+ * @param string $parent Required. Resource name of project that the imported taxonomies will belong
+ * to.
+ * @param array $optionalArgs {
+ * Optional.
+ *
+ * @type InlineSource $inlineSource
+ * Inline source taxonomy to import.
+ * @type CrossRegionalSource $crossRegionalSource
+ * Cross-regional source taxonomy to import.
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. 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\DataCatalog\V1\ImportTaxonomiesResponse
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function importTaxonomies($parent, array $optionalArgs = [])
+ {
+ $request = new ImportTaxonomiesRequest();
+ $requestParamHeaders = [];
+ $request->setParent($parent);
+ $requestParamHeaders['parent'] = $parent;
+ if (isset($optionalArgs['inlineSource'])) {
+ $request->setInlineSource($optionalArgs['inlineSource']);
+ }
+
+ if (isset($optionalArgs['crossRegionalSource'])) {
+ $request->setCrossRegionalSource($optionalArgs['crossRegionalSource']);
+ }
+
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('ImportTaxonomies', ImportTaxonomiesResponse::class, $optionalArgs, $request)->wait();
+ }
+
+ /**
+ * Replaces (updates) a taxonomy and all its policy tags.
+ *
+ * The taxonomy and its entire hierarchy of policy tags must be
+ * represented literally by `SerializedTaxonomy` and the nested
+ * `SerializedPolicyTag` messages.
+ *
+ * This operation automatically does the following:
+ *
+ * - Deletes the existing policy tags that are missing from the
+ * `SerializedPolicyTag`.
+ * - Creates policy tags that don't have resource names. They are considered
+ * new.
+ * - Updates policy tags with valid resources names accordingly.
+ *
+ * Sample code:
+ * ```
+ * $policyTagManagerSerializationClient = new PolicyTagManagerSerializationClient();
+ * try {
+ * $formattedName = $policyTagManagerSerializationClient->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ * $serializedTaxonomy = new SerializedTaxonomy();
+ * $response = $policyTagManagerSerializationClient->replaceTaxonomy($formattedName, $serializedTaxonomy);
+ * } finally {
+ * $policyTagManagerSerializationClient->close();
+ * }
+ * ```
+ *
+ * @param string $name Required. Resource name of the taxonomy to update.
+ * @param SerializedTaxonomy $serializedTaxonomy Required. Taxonomy to update along with its child policy tags.
+ * @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\DataCatalog\V1\Taxonomy
+ *
+ * @throws ApiException if the remote call fails
+ */
+ public function replaceTaxonomy($name, $serializedTaxonomy, array $optionalArgs = [])
+ {
+ $request = new ReplaceTaxonomyRequest();
+ $requestParamHeaders = [];
+ $request->setName($name);
+ $request->setSerializedTaxonomy($serializedTaxonomy);
+ $requestParamHeaders['name'] = $name;
+ $requestParams = new RequestParamsHeaderDescriptor($requestParamHeaders);
+ $optionalArgs['headers'] = isset($optionalArgs['headers']) ? array_merge($requestParams->getHeader(), $optionalArgs['headers']) : $requestParams->getHeader();
+ return $this->startCall('ReplaceTaxonomy', Taxonomy::class, $optionalArgs, $request)->wait();
+ }
+}
diff --git a/owl-bot-staging/DataCatalog/v1/src/V1/PolicyTagManagerClient.php b/owl-bot-staging/DataCatalog/v1/src/V1/PolicyTagManagerClient.php
new file mode 100644
index 000000000000..e3258acb00a2
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/src/V1/PolicyTagManagerClient.php
@@ -0,0 +1,34 @@
+ [
+ 'google.cloud.datacatalog.v1.DataCatalog' => [
+ 'ImportEntries' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\DataCatalog\V1\ImportEntriesResponse',
+ 'metadataReturnType' => '\Google\Cloud\DataCatalog\V1\ImportEntriesMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ReconcileTags' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\DataCatalog\V1\ReconcileTagsResponse',
+ 'metadataReturnType' => '\Google\Cloud\DataCatalog\V1\ReconcileTagsMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateEntry' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\Entry',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateEntryGroup' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\EntryGroup',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateTag' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\Tag',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateTagTemplate' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\TagTemplate',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateTagTemplateField' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\TagTemplateField',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteEntry' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Protobuf\GPBEmpty',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteEntryGroup' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Protobuf\GPBEmpty',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteTag' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Protobuf\GPBEmpty',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteTagTemplate' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Protobuf\GPBEmpty',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteTagTemplateField' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Protobuf\GPBEmpty',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetEntry' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\Entry',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetEntryGroup' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\EntryGroup',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetIamPolicy' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Iam\V1\Policy',
+ 'headerParams' => [
+ [
+ 'keyName' => 'resource',
+ 'fieldAccessors' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'GetTagTemplate' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\TagTemplate',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListEntries' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getEntries',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\ListEntriesResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListEntryGroups' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getEntryGroups',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\ListEntryGroupsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListTags' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getTags',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\ListTagsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'LookupEntry' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\Entry',
+ ],
+ 'ModifyEntryContacts' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\Contacts',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ModifyEntryOverview' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\EntryOverview',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'RenameTagTemplateField' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\TagTemplateField',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'RenameTagTemplateFieldEnumValue' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\TagTemplateField',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'SearchCatalog' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getResults',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\SearchCatalogResponse',
+ ],
+ 'SetIamPolicy' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Iam\V1\Policy',
+ 'headerParams' => [
+ [
+ 'keyName' => 'resource',
+ 'fieldAccessors' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'StarEntry' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\StarEntryResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'TestIamPermissions' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Iam\V1\TestIamPermissionsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'resource',
+ 'fieldAccessors' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'UnstarEntry' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\UnstarEntryResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateEntry' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\Entry',
+ 'headerParams' => [
+ [
+ 'keyName' => 'entry.name',
+ 'fieldAccessors' => [
+ 'getEntry',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateEntryGroup' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\EntryGroup',
+ 'headerParams' => [
+ [
+ 'keyName' => 'entry_group.name',
+ 'fieldAccessors' => [
+ 'getEntryGroup',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateTag' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\Tag',
+ 'headerParams' => [
+ [
+ 'keyName' => 'tag.name',
+ 'fieldAccessors' => [
+ 'getTag',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateTagTemplate' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\TagTemplate',
+ 'headerParams' => [
+ [
+ 'keyName' => 'tag_template.name',
+ 'fieldAccessors' => [
+ 'getTagTemplate',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateTagTemplateField' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\TagTemplateField',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'templateMap' => [
+ 'entry' => 'projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}',
+ 'entryGroup' => 'projects/{project}/locations/{location}/entryGroups/{entry_group}',
+ 'location' => 'projects/{project}/locations/{location}',
+ 'tag' => 'projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}/tags/{tag}',
+ 'tagTemplate' => 'projects/{project}/locations/{location}/tagTemplates/{tag_template}',
+ 'tagTemplateField' => 'projects/{project}/locations/{location}/tagTemplates/{tag_template}/fields/{field}',
+ 'tagTemplateFieldEnumValue' => 'projects/{project}/locations/{location}/tagTemplates/{tag_template}/fields/{tag_template_field_id}/enumValues/{enum_value_display_name}',
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/DataCatalog/v1/src/V1/resources/data_catalog_rest_client_config.php b/owl-bot-staging/DataCatalog/v1/src/V1/resources/data_catalog_rest_client_config.php
new file mode 100644
index 000000000000..e88d57fa1ed3
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/src/V1/resources/data_catalog_rest_client_config.php
@@ -0,0 +1,515 @@
+ [
+ 'google.cloud.datacatalog.v1.DataCatalog' => [
+ 'CreateEntry' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/entryGroups/*}/entries',
+ 'body' => 'entry',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'entry_id',
+ ],
+ ],
+ 'CreateEntryGroup' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/entryGroups',
+ 'body' => 'entry_group',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'entry_group_id',
+ ],
+ ],
+ 'CreateTag' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags',
+ 'body' => 'tag',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/entryGroups/*}/tags',
+ 'body' => 'tag',
+ ],
+ ],
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateTagTemplate' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/tagTemplates',
+ 'body' => 'tag_template',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'tag_template_id',
+ ],
+ ],
+ 'CreateTagTemplateField' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/tagTemplates/*}/fields',
+ 'body' => 'tag_template_field',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'tag_template_field_id',
+ ],
+ ],
+ 'DeleteEntry' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteEntryGroup' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/entryGroups/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteTag' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}',
+ 'additionalBindings' => [
+ [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/entryGroups/*/tags/*}',
+ ],
+ ],
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteTagTemplate' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/tagTemplates/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'force',
+ ],
+ ],
+ 'DeleteTagTemplateField' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/tagTemplates/*/fields/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'force',
+ ],
+ ],
+ 'GetEntry' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetEntryGroup' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/entryGroups/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetIamPolicy' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/tagTemplates/*}:getIamPolicy',
+ 'body' => '*',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/entryGroups/*}:getIamPolicy',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:getIamPolicy',
+ 'body' => '*',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'GetTagTemplate' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/tagTemplates/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ImportEntries' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/entryGroups/*}/entries:import',
+ 'body' => '*',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListEntries' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/entryGroups/*}/entries',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListEntryGroups' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/entryGroups',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListTags' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags',
+ 'additionalBindings' => [
+ [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/entryGroups/*}/tags',
+ ],
+ ],
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'LookupEntry' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/entries:lookup',
+ ],
+ 'ModifyEntryContacts' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}:modifyEntryContacts',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ModifyEntryOverview' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}:modifyEntryOverview',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ReconcileTags' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags:reconcile',
+ 'body' => '*',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'RenameTagTemplateField' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/tagTemplates/*/fields/*}:rename',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'RenameTagTemplateFieldEnumValue' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/tagTemplates/*/fields/*/enumValues/*}:rename',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'SearchCatalog' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/catalog:search',
+ 'body' => '*',
+ ],
+ 'SetIamPolicy' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/tagTemplates/*}:setIamPolicy',
+ 'body' => '*',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/entryGroups/*}:setIamPolicy',
+ 'body' => '*',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'StarEntry' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}:star',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'TestIamPermissions' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/tagTemplates/*}:testIamPermissions',
+ 'body' => '*',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/entryGroups/*}:testIamPermissions',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:testIamPermissions',
+ 'body' => '*',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'UnstarEntry' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}:unstar',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateEntry' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{entry.name=projects/*/locations/*/entryGroups/*/entries/*}',
+ 'body' => 'entry',
+ 'placeholders' => [
+ 'entry.name' => [
+ 'getters' => [
+ 'getEntry',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateEntryGroup' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{entry_group.name=projects/*/locations/*/entryGroups/*}',
+ 'body' => 'entry_group',
+ 'placeholders' => [
+ 'entry_group.name' => [
+ 'getters' => [
+ 'getEntryGroup',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateTag' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{tag.name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}',
+ 'body' => 'tag',
+ 'additionalBindings' => [
+ [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{tag.name=projects/*/locations/*/entryGroups/*/tags/*}',
+ 'body' => 'tag',
+ ],
+ ],
+ 'placeholders' => [
+ 'tag.name' => [
+ 'getters' => [
+ 'getTag',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateTagTemplate' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{tag_template.name=projects/*/locations/*/tagTemplates/*}',
+ 'body' => 'tag_template',
+ 'placeholders' => [
+ 'tag_template.name' => [
+ 'getters' => [
+ 'getTagTemplate',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateTagTemplateField' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/tagTemplates/*/fields/*}',
+ 'body' => 'tag_template_field',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.longrunning.Operations' => [
+ 'CancelOperation' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/operations/*}:cancel',
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/DataCatalog/v1/src/V1/resources/policy_tag_manager_client_config.json b/owl-bot-staging/DataCatalog/v1/src/V1/resources/policy_tag_manager_client_config.json
new file mode 100644
index 000000000000..748b34c429bd
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/src/V1/resources/policy_tag_manager_client_config.json
@@ -0,0 +1,107 @@
+{
+ "interfaces": {
+ "google.cloud.datacatalog.v1.PolicyTagManager": {
+ "retry_codes": {
+ "no_retry_codes": [],
+ "no_retry_1_codes": [],
+ "no_retry_2_codes": []
+ },
+ "retry_params": {
+ "no_retry_params": {
+ "initial_retry_delay_millis": 0,
+ "retry_delay_multiplier": 0.0,
+ "max_retry_delay_millis": 0,
+ "initial_rpc_timeout_millis": 0,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 0,
+ "total_timeout_millis": 0
+ },
+ "no_retry_1_params": {
+ "initial_retry_delay_millis": 0,
+ "retry_delay_multiplier": 0.0,
+ "max_retry_delay_millis": 0,
+ "initial_rpc_timeout_millis": 60000,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 60000,
+ "total_timeout_millis": 60000
+ },
+ "no_retry_2_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": {
+ "CreatePolicyTag": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateTaxonomy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeletePolicyTag": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteTaxonomy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetIamPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetPolicyTag": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetTaxonomy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListPolicyTags": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListTaxonomies": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "SetIamPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "TestIamPermissions": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdatePolicyTag": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateTaxonomy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ }
+ }
+ }
+ }
+}
diff --git a/owl-bot-staging/DataCatalog/v1/src/V1/resources/policy_tag_manager_descriptor_config.php b/owl-bot-staging/DataCatalog/v1/src/V1/resources/policy_tag_manager_descriptor_config.php
new file mode 100644
index 000000000000..9c3137a11bbb
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/src/V1/resources/policy_tag_manager_descriptor_config.php
@@ -0,0 +1,187 @@
+ [
+ 'google.cloud.datacatalog.v1.PolicyTagManager' => [
+ 'CreatePolicyTag' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\PolicyTag',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateTaxonomy' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\Taxonomy',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'DeletePolicyTag' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Protobuf\GPBEmpty',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteTaxonomy' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Protobuf\GPBEmpty',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetIamPolicy' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Iam\V1\Policy',
+ 'headerParams' => [
+ [
+ 'keyName' => 'resource',
+ 'fieldAccessors' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'GetPolicyTag' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\PolicyTag',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetTaxonomy' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\Taxonomy',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListPolicyTags' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getPolicyTags',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\ListPolicyTagsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListTaxonomies' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getTaxonomies',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\ListTaxonomiesResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'SetIamPolicy' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Iam\V1\Policy',
+ 'headerParams' => [
+ [
+ 'keyName' => 'resource',
+ 'fieldAccessors' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'TestIamPermissions' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Iam\V1\TestIamPermissionsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'resource',
+ 'fieldAccessors' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'UpdatePolicyTag' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\PolicyTag',
+ 'headerParams' => [
+ [
+ 'keyName' => 'policy_tag.name',
+ 'fieldAccessors' => [
+ 'getPolicyTag',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateTaxonomy' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\Taxonomy',
+ 'headerParams' => [
+ [
+ 'keyName' => 'taxonomy.name',
+ 'fieldAccessors' => [
+ 'getTaxonomy',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'templateMap' => [
+ 'location' => 'projects/{project}/locations/{location}',
+ 'policyTag' => 'projects/{project}/locations/{location}/taxonomies/{taxonomy}/policyTags/{policy_tag}',
+ 'taxonomy' => 'projects/{project}/locations/{location}/taxonomies/{taxonomy}',
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/DataCatalog/v1/src/V1/resources/policy_tag_manager_rest_client_config.php b/owl-bot-staging/DataCatalog/v1/src/V1/resources/policy_tag_manager_rest_client_config.php
new file mode 100644
index 000000000000..994ba95e96aa
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/src/V1/resources/policy_tag_manager_rest_client_config.php
@@ -0,0 +1,227 @@
+ [
+ 'google.cloud.datacatalog.v1.PolicyTagManager' => [
+ 'CreatePolicyTag' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/taxonomies/*}/policyTags',
+ 'body' => 'policy_tag',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateTaxonomy' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/taxonomies',
+ 'body' => 'taxonomy',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'DeletePolicyTag' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/taxonomies/*/policyTags/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteTaxonomy' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/taxonomies/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetIamPolicy' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/taxonomies/*}:getIamPolicy',
+ 'body' => '*',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/taxonomies/*/policyTags/*}:getIamPolicy',
+ 'body' => '*',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'GetPolicyTag' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/taxonomies/*/policyTags/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetTaxonomy' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/taxonomies/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListPolicyTags' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/taxonomies/*}/policyTags',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListTaxonomies' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/taxonomies',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'SetIamPolicy' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/taxonomies/*}:setIamPolicy',
+ 'body' => '*',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/taxonomies/*/policyTags/*}:setIamPolicy',
+ 'body' => '*',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'TestIamPermissions' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/taxonomies/*}:testIamPermissions',
+ 'body' => '*',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/taxonomies/*/policyTags/*}:testIamPermissions',
+ 'body' => '*',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'UpdatePolicyTag' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{policy_tag.name=projects/*/locations/*/taxonomies/*/policyTags/*}',
+ 'body' => 'policy_tag',
+ 'placeholders' => [
+ 'policy_tag.name' => [
+ 'getters' => [
+ 'getPolicyTag',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateTaxonomy' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{taxonomy.name=projects/*/locations/*/taxonomies/*}',
+ 'body' => 'taxonomy',
+ 'placeholders' => [
+ 'taxonomy.name' => [
+ 'getters' => [
+ 'getTaxonomy',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.longrunning.Operations' => [
+ 'CancelOperation' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/operations/*}:cancel',
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/DataCatalog/v1/src/V1/resources/policy_tag_manager_serialization_client_config.json b/owl-bot-staging/DataCatalog/v1/src/V1/resources/policy_tag_manager_serialization_client_config.json
new file mode 100644
index 000000000000..0777dd90f04d
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/src/V1/resources/policy_tag_manager_serialization_client_config.json
@@ -0,0 +1,47 @@
+{
+ "interfaces": {
+ "google.cloud.datacatalog.v1.PolicyTagManagerSerialization": {
+ "retry_codes": {
+ "no_retry_codes": [],
+ "no_retry_2_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_2_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": {
+ "ExportTaxonomies": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_2_codes",
+ "retry_params_name": "no_retry_2_params"
+ },
+ "ImportTaxonomies": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_2_codes",
+ "retry_params_name": "no_retry_2_params"
+ },
+ "ReplaceTaxonomy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_2_codes",
+ "retry_params_name": "no_retry_2_params"
+ }
+ }
+ }
+ }
+}
diff --git a/owl-bot-staging/DataCatalog/v1/src/V1/resources/policy_tag_manager_serialization_descriptor_config.php b/owl-bot-staging/DataCatalog/v1/src/V1/resources/policy_tag_manager_serialization_descriptor_config.php
new file mode 100644
index 000000000000..6ba1c5da19f6
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/src/V1/resources/policy_tag_manager_serialization_descriptor_config.php
@@ -0,0 +1,48 @@
+ [
+ 'google.cloud.datacatalog.v1.PolicyTagManagerSerialization' => [
+ 'ExportTaxonomies' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\ExportTaxonomiesResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ImportTaxonomies' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\ImportTaxonomiesResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ReplaceTaxonomy' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\DataCatalog\V1\Taxonomy',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'templateMap' => [
+ 'location' => 'projects/{project}/locations/{location}',
+ 'taxonomy' => 'projects/{project}/locations/{location}/taxonomies/{taxonomy}',
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/DataCatalog/v1/src/V1/resources/policy_tag_manager_serialization_rest_client_config.php b/owl-bot-staging/DataCatalog/v1/src/V1/resources/policy_tag_manager_serialization_rest_client_config.php
new file mode 100644
index 000000000000..ec08adc7e22f
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/src/V1/resources/policy_tag_manager_serialization_rest_client_config.php
@@ -0,0 +1,89 @@
+ [
+ 'google.cloud.datacatalog.v1.PolicyTagManagerSerialization' => [
+ 'ExportTaxonomies' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/taxonomies:export',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ImportTaxonomies' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/taxonomies:import',
+ 'body' => '*',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ReplaceTaxonomy' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/taxonomies/*}:replace',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.longrunning.Operations' => [
+ 'CancelOperation' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/operations/*}:cancel',
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/DataCatalog/v1/tests/Unit/V1/Client/DataCatalogClientTest.php b/owl-bot-staging/DataCatalog/v1/tests/Unit/V1/Client/DataCatalogClientTest.php
new file mode 100644
index 000000000000..4babe6806e32
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/tests/Unit/V1/Client/DataCatalogClientTest.php
@@ -0,0 +1,2770 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return DataCatalogClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new DataCatalogClient($options);
+ }
+
+ /** @test */
+ public function createEntryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $linkedResource = 'linkedResource1544625012';
+ $fullyQualifiedName = 'fullyQualifiedName338146659';
+ $userSpecifiedType = 'userSpecifiedType-940364963';
+ $userSpecifiedSystem = 'userSpecifiedSystem-1776119406';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $expectedResponse = new Entry();
+ $expectedResponse->setName($name);
+ $expectedResponse->setLinkedResource($linkedResource);
+ $expectedResponse->setFullyQualifiedName($fullyQualifiedName);
+ $expectedResponse->setUserSpecifiedType($userSpecifiedType);
+ $expectedResponse->setUserSpecifiedSystem($userSpecifiedSystem);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ $entryId = 'entryId-2093663224';
+ $entry = new Entry();
+ $request = (new CreateEntryRequest())
+ ->setParent($formattedParent)
+ ->setEntryId($entryId)
+ ->setEntry($entry);
+ $response = $gapicClient->createEntry($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.datacatalog.v1.DataCatalog/CreateEntry', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getEntryId();
+ $this->assertProtobufEquals($entryId, $actualValue);
+ $actualValue = $actualRequestObject->getEntry();
+ $this->assertProtobufEquals($entry, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createEntryExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ $entryId = 'entryId-2093663224';
+ $entry = new Entry();
+ $request = (new CreateEntryRequest())
+ ->setParent($formattedParent)
+ ->setEntryId($entryId)
+ ->setEntry($entry);
+ try {
+ $gapicClient->createEntry($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 createEntryGroupTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $expectedResponse = new EntryGroup();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $entryGroupId = 'entryGroupId-43122680';
+ $request = (new CreateEntryGroupRequest())
+ ->setParent($formattedParent)
+ ->setEntryGroupId($entryGroupId);
+ $response = $gapicClient->createEntryGroup($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.datacatalog.v1.DataCatalog/CreateEntryGroup', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getEntryGroupId();
+ $this->assertProtobufEquals($entryGroupId, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createEntryGroupExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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]');
+ $entryGroupId = 'entryGroupId-43122680';
+ $request = (new CreateEntryGroupRequest())
+ ->setParent($formattedParent)
+ ->setEntryGroupId($entryGroupId);
+ try {
+ $gapicClient->createEntryGroup($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 createTagTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $template = 'template-1321546630';
+ $templateDisplayName = 'templateDisplayName-532252787';
+ $column = 'column-1354837162';
+ $expectedResponse = new Tag();
+ $expectedResponse->setName($name);
+ $expectedResponse->setTemplate($template);
+ $expectedResponse->setTemplateDisplayName($templateDisplayName);
+ $expectedResponse->setColumn($column);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $tag = new Tag();
+ $tagTemplate = 'tagTemplate1678947892';
+ $tag->setTemplate($tagTemplate);
+ $fieldsValue = new TagField();
+ $tagFields = [
+ 'fieldsKey' => $fieldsValue,
+ ];
+ $tag->setFields($tagFields);
+ $request = (new CreateTagRequest())
+ ->setParent($formattedParent)
+ ->setTag($tag);
+ $response = $gapicClient->createTag($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.datacatalog.v1.DataCatalog/CreateTag', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getTag();
+ $this->assertProtobufEquals($tag, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createTagExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $tag = new Tag();
+ $tagTemplate = 'tagTemplate1678947892';
+ $tag->setTemplate($tagTemplate);
+ $fieldsValue = new TagField();
+ $tagFields = [
+ 'fieldsKey' => $fieldsValue,
+ ];
+ $tag->setFields($tagFields);
+ $request = (new CreateTagRequest())
+ ->setParent($formattedParent)
+ ->setTag($tag);
+ try {
+ $gapicClient->createTag($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 createTagTemplateTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $displayName = 'displayName1615086568';
+ $isPubliclyReadable = true;
+ $expectedResponse = new TagTemplate();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setIsPubliclyReadable($isPubliclyReadable);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $tagTemplateId = 'tagTemplateId-2020335141';
+ $tagTemplate = new TagTemplate();
+ $fieldsValue = new TagTemplateField();
+ $valueType = new FieldType();
+ $fieldsValue->setType($valueType);
+ $tagTemplateFields = [
+ 'fieldsKey' => $fieldsValue,
+ ];
+ $tagTemplate->setFields($tagTemplateFields);
+ $request = (new CreateTagTemplateRequest())
+ ->setParent($formattedParent)
+ ->setTagTemplateId($tagTemplateId)
+ ->setTagTemplate($tagTemplate);
+ $response = $gapicClient->createTagTemplate($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.datacatalog.v1.DataCatalog/CreateTagTemplate', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getTagTemplateId();
+ $this->assertProtobufEquals($tagTemplateId, $actualValue);
+ $actualValue = $actualRequestObject->getTagTemplate();
+ $this->assertProtobufEquals($tagTemplate, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createTagTemplateExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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]');
+ $tagTemplateId = 'tagTemplateId-2020335141';
+ $tagTemplate = new TagTemplate();
+ $fieldsValue = new TagTemplateField();
+ $valueType = new FieldType();
+ $fieldsValue->setType($valueType);
+ $tagTemplateFields = [
+ 'fieldsKey' => $fieldsValue,
+ ];
+ $tagTemplate->setFields($tagTemplateFields);
+ $request = (new CreateTagTemplateRequest())
+ ->setParent($formattedParent)
+ ->setTagTemplateId($tagTemplateId)
+ ->setTagTemplate($tagTemplate);
+ try {
+ $gapicClient->createTagTemplate($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 createTagTemplateFieldTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $displayName = 'displayName1615086568';
+ $isRequired = true;
+ $description = 'description-1724546052';
+ $order = 106006350;
+ $expectedResponse = new TagTemplateField();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setIsRequired($isRequired);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setOrder($order);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->tagTemplateName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]');
+ $tagTemplateFieldId = 'tagTemplateFieldId-92144832';
+ $tagTemplateField = new TagTemplateField();
+ $tagTemplateFieldType = new FieldType();
+ $tagTemplateField->setType($tagTemplateFieldType);
+ $request = (new CreateTagTemplateFieldRequest())
+ ->setParent($formattedParent)
+ ->setTagTemplateFieldId($tagTemplateFieldId)
+ ->setTagTemplateField($tagTemplateField);
+ $response = $gapicClient->createTagTemplateField($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.datacatalog.v1.DataCatalog/CreateTagTemplateField', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getTagTemplateFieldId();
+ $this->assertProtobufEquals($tagTemplateFieldId, $actualValue);
+ $actualValue = $actualRequestObject->getTagTemplateField();
+ $this->assertProtobufEquals($tagTemplateField, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createTagTemplateFieldExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->tagTemplateName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]');
+ $tagTemplateFieldId = 'tagTemplateFieldId-92144832';
+ $tagTemplateField = new TagTemplateField();
+ $tagTemplateFieldType = new FieldType();
+ $tagTemplateField->setType($tagTemplateFieldType);
+ $request = (new CreateTagTemplateFieldRequest())
+ ->setParent($formattedParent)
+ ->setTagTemplateFieldId($tagTemplateFieldId)
+ ->setTagTemplateField($tagTemplateField);
+ try {
+ $gapicClient->createTagTemplateField($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 deleteEntryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $request = (new DeleteEntryRequest())
+ ->setName($formattedName);
+ $gapicClient->deleteEntry($request);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/DeleteEntry', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteEntryExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $request = (new DeleteEntryRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->deleteEntry($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 deleteEntryGroupTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ $request = (new DeleteEntryGroupRequest())
+ ->setName($formattedName);
+ $gapicClient->deleteEntryGroup($request);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/DeleteEntryGroup', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteEntryGroupExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ $request = (new DeleteEntryGroupRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->deleteEntryGroup($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 deleteTagTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $request = (new DeleteTagRequest())
+ ->setName($formattedName);
+ $gapicClient->deleteTag($request);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/DeleteTag', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteTagExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $request = (new DeleteTagRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->deleteTag($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 deleteTagTemplateTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->tagTemplateName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]');
+ $force = false;
+ $request = (new DeleteTagTemplateRequest())
+ ->setName($formattedName)
+ ->setForce($force);
+ $gapicClient->deleteTagTemplate($request);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/DeleteTagTemplate', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualRequestObject->getForce();
+ $this->assertProtobufEquals($force, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteTagTemplateExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->tagTemplateName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]');
+ $force = false;
+ $request = (new DeleteTagTemplateRequest())
+ ->setName($formattedName)
+ ->setForce($force);
+ try {
+ $gapicClient->deleteTagTemplate($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 deleteTagTemplateFieldTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->tagTemplateFieldName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]', '[FIELD]');
+ $force = false;
+ $request = (new DeleteTagTemplateFieldRequest())
+ ->setName($formattedName)
+ ->setForce($force);
+ $gapicClient->deleteTagTemplateField($request);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/DeleteTagTemplateField', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualRequestObject->getForce();
+ $this->assertProtobufEquals($force, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteTagTemplateFieldExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->tagTemplateFieldName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]', '[FIELD]');
+ $force = false;
+ $request = (new DeleteTagTemplateFieldRequest())
+ ->setName($formattedName)
+ ->setForce($force);
+ try {
+ $gapicClient->deleteTagTemplateField($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 getEntryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $linkedResource = 'linkedResource1544625012';
+ $fullyQualifiedName = 'fullyQualifiedName338146659';
+ $userSpecifiedType = 'userSpecifiedType-940364963';
+ $userSpecifiedSystem = 'userSpecifiedSystem-1776119406';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $expectedResponse = new Entry();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setLinkedResource($linkedResource);
+ $expectedResponse->setFullyQualifiedName($fullyQualifiedName);
+ $expectedResponse->setUserSpecifiedType($userSpecifiedType);
+ $expectedResponse->setUserSpecifiedSystem($userSpecifiedSystem);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $request = (new GetEntryRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getEntry($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.datacatalog.v1.DataCatalog/GetEntry', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getEntryExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $request = (new GetEntryRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getEntry($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 getEntryGroupTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $expectedResponse = new EntryGroup();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ $request = (new GetEntryGroupRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getEntryGroup($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.datacatalog.v1.DataCatalog/GetEntryGroup', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getEntryGroupExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ $request = (new GetEntryGroupRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getEntryGroup($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.cloud.datacatalog.v1.DataCatalog/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 getTagTemplateTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $displayName = 'displayName1615086568';
+ $isPubliclyReadable = true;
+ $expectedResponse = new TagTemplate();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setIsPubliclyReadable($isPubliclyReadable);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->tagTemplateName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]');
+ $request = (new GetTagTemplateRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getTagTemplate($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.datacatalog.v1.DataCatalog/GetTagTemplate', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getTagTemplateExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->tagTemplateName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]');
+ $request = (new GetTagTemplateRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getTagTemplate($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 importEntriesTest()
+ {
+ $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/importEntriesTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $upsertedEntriesCount = 250168367;
+ $deletedEntriesCount = 167383302;
+ $expectedResponse = new ImportEntriesResponse();
+ $expectedResponse->setUpsertedEntriesCount($upsertedEntriesCount);
+ $expectedResponse->setDeletedEntriesCount($deletedEntriesCount);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/importEntriesTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ $request = (new ImportEntriesRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->importEntries($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.datacatalog.v1.DataCatalog/ImportEntries', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/importEntriesTest');
+ $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 importEntriesExceptionTest()
+ {
+ $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/importEntriesTest');
+ $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->entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ $request = (new ImportEntriesRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->importEntries($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/importEntriesTest');
+ 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 listEntriesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $entriesElement = new Entry();
+ $entries = [
+ $entriesElement,
+ ];
+ $expectedResponse = new ListEntriesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setEntries($entries);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ $request = (new ListEntriesRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listEntries($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getEntries()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/ListEntries', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listEntriesExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ $request = (new ListEntriesRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listEntries($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 listEntryGroupsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $entryGroupsElement = new EntryGroup();
+ $entryGroups = [
+ $entryGroupsElement,
+ ];
+ $expectedResponse = new ListEntryGroupsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setEntryGroups($entryGroups);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListEntryGroupsRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listEntryGroups($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getEntryGroups()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/ListEntryGroups', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listEntryGroupsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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 ListEntryGroupsRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listEntryGroups($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 listTagsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $tagsElement = new Tag();
+ $tags = [
+ $tagsElement,
+ ];
+ $expectedResponse = new ListTagsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setTags($tags);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $request = (new ListTagsRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listTags($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getTags()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/ListTags', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listTagsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $request = (new ListTagsRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listTags($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 lookupEntryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $linkedResource2 = 'linkedResource2-1674044889';
+ $fullyQualifiedName = 'fullyQualifiedName338146659';
+ $userSpecifiedType = 'userSpecifiedType-940364963';
+ $userSpecifiedSystem = 'userSpecifiedSystem-1776119406';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $expectedResponse = new Entry();
+ $expectedResponse->setName($name);
+ $expectedResponse->setLinkedResource($linkedResource2);
+ $expectedResponse->setFullyQualifiedName($fullyQualifiedName);
+ $expectedResponse->setUserSpecifiedType($userSpecifiedType);
+ $expectedResponse->setUserSpecifiedSystem($userSpecifiedSystem);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ $request = new LookupEntryRequest();
+ $response = $gapicClient->lookupEntry($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.datacatalog.v1.DataCatalog/LookupEntry', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function lookupEntryExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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 LookupEntryRequest();
+ try {
+ $gapicClient->lookupEntry($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 modifyEntryContactsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new Contacts();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $contacts = new Contacts();
+ $request = (new ModifyEntryContactsRequest())
+ ->setName($formattedName)
+ ->setContacts($contacts);
+ $response = $gapicClient->modifyEntryContacts($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.datacatalog.v1.DataCatalog/ModifyEntryContacts', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualRequestObject->getContacts();
+ $this->assertProtobufEquals($contacts, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function modifyEntryContactsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $contacts = new Contacts();
+ $request = (new ModifyEntryContactsRequest())
+ ->setName($formattedName)
+ ->setContacts($contacts);
+ try {
+ $gapicClient->modifyEntryContacts($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 modifyEntryOverviewTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $overview = 'overview530115961';
+ $expectedResponse = new EntryOverview();
+ $expectedResponse->setOverview($overview);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $entryOverview = new EntryOverview();
+ $request = (new ModifyEntryOverviewRequest())
+ ->setName($formattedName)
+ ->setEntryOverview($entryOverview);
+ $response = $gapicClient->modifyEntryOverview($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.datacatalog.v1.DataCatalog/ModifyEntryOverview', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualRequestObject->getEntryOverview();
+ $this->assertProtobufEquals($entryOverview, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function modifyEntryOverviewExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $entryOverview = new EntryOverview();
+ $request = (new ModifyEntryOverviewRequest())
+ ->setName($formattedName)
+ ->setEntryOverview($entryOverview);
+ try {
+ $gapicClient->modifyEntryOverview($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 reconcileTagsTest()
+ {
+ $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/reconcileTagsTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $createdTagsCount = 986601696;
+ $updatedTagsCount = 344847213;
+ $deletedTagsCount = 59637071;
+ $expectedResponse = new ReconcileTagsResponse();
+ $expectedResponse->setCreatedTagsCount($createdTagsCount);
+ $expectedResponse->setUpdatedTagsCount($updatedTagsCount);
+ $expectedResponse->setDeletedTagsCount($deletedTagsCount);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/reconcileTagsTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $formattedTagTemplate = $gapicClient->tagTemplateName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]');
+ $request = (new ReconcileTagsRequest())
+ ->setParent($formattedParent)
+ ->setTagTemplate($formattedTagTemplate);
+ $response = $gapicClient->reconcileTags($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.datacatalog.v1.DataCatalog/ReconcileTags', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getTagTemplate();
+ $this->assertProtobufEquals($formattedTagTemplate, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/reconcileTagsTest');
+ $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 reconcileTagsExceptionTest()
+ {
+ $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/reconcileTagsTest');
+ $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->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $formattedTagTemplate = $gapicClient->tagTemplateName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]');
+ $request = (new ReconcileTagsRequest())
+ ->setParent($formattedParent)
+ ->setTagTemplate($formattedTagTemplate);
+ $response = $gapicClient->reconcileTags($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/reconcileTagsTest');
+ 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 renameTagTemplateFieldTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $displayName = 'displayName1615086568';
+ $isRequired = true;
+ $description = 'description-1724546052';
+ $order = 106006350;
+ $expectedResponse = new TagTemplateField();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setIsRequired($isRequired);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setOrder($order);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->tagTemplateFieldName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]', '[FIELD]');
+ $newTagTemplateFieldId = 'newTagTemplateFieldId-1668354591';
+ $request = (new RenameTagTemplateFieldRequest())
+ ->setName($formattedName)
+ ->setNewTagTemplateFieldId($newTagTemplateFieldId);
+ $response = $gapicClient->renameTagTemplateField($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.datacatalog.v1.DataCatalog/RenameTagTemplateField', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualRequestObject->getNewTagTemplateFieldId();
+ $this->assertProtobufEquals($newTagTemplateFieldId, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function renameTagTemplateFieldExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->tagTemplateFieldName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]', '[FIELD]');
+ $newTagTemplateFieldId = 'newTagTemplateFieldId-1668354591';
+ $request = (new RenameTagTemplateFieldRequest())
+ ->setName($formattedName)
+ ->setNewTagTemplateFieldId($newTagTemplateFieldId);
+ try {
+ $gapicClient->renameTagTemplateField($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 renameTagTemplateFieldEnumValueTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $displayName = 'displayName1615086568';
+ $isRequired = true;
+ $description = 'description-1724546052';
+ $order = 106006350;
+ $expectedResponse = new TagTemplateField();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setIsRequired($isRequired);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setOrder($order);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->tagTemplateFieldEnumValueName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]', '[TAG_TEMPLATE_FIELD_ID]', '[ENUM_VALUE_DISPLAY_NAME]');
+ $newEnumValueDisplayName = 'newEnumValueDisplayName2138960469';
+ $request = (new RenameTagTemplateFieldEnumValueRequest())
+ ->setName($formattedName)
+ ->setNewEnumValueDisplayName($newEnumValueDisplayName);
+ $response = $gapicClient->renameTagTemplateFieldEnumValue($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.datacatalog.v1.DataCatalog/RenameTagTemplateFieldEnumValue', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualRequestObject->getNewEnumValueDisplayName();
+ $this->assertProtobufEquals($newEnumValueDisplayName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function renameTagTemplateFieldEnumValueExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->tagTemplateFieldEnumValueName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]', '[TAG_TEMPLATE_FIELD_ID]', '[ENUM_VALUE_DISPLAY_NAME]');
+ $newEnumValueDisplayName = 'newEnumValueDisplayName2138960469';
+ $request = (new RenameTagTemplateFieldEnumValueRequest())
+ ->setName($formattedName)
+ ->setNewEnumValueDisplayName($newEnumValueDisplayName);
+ try {
+ $gapicClient->renameTagTemplateFieldEnumValue($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 searchCatalogTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $totalSize = 705419236;
+ $nextPageToken = '';
+ $resultsElement = new SearchCatalogResult();
+ $results = [
+ $resultsElement,
+ ];
+ $expectedResponse = new SearchCatalogResponse();
+ $expectedResponse->setTotalSize($totalSize);
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setResults($results);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $scope = new Scope();
+ $query = 'query107944136';
+ $request = (new SearchCatalogRequest())
+ ->setScope($scope)
+ ->setQuery($query);
+ $response = $gapicClient->searchCatalog($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getResults()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/SearchCatalog', $actualFuncCall);
+ $actualValue = $actualRequestObject->getScope();
+ $this->assertProtobufEquals($scope, $actualValue);
+ $actualValue = $actualRequestObject->getQuery();
+ $this->assertProtobufEquals($query, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function searchCatalogExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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
+ $scope = new Scope();
+ $query = 'query107944136';
+ $request = (new SearchCatalogRequest())
+ ->setScope($scope)
+ ->setQuery($query);
+ try {
+ $gapicClient->searchCatalog($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.cloud.datacatalog.v1.DataCatalog/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 starEntryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new StarEntryResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $request = (new StarEntryRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->starEntry($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.datacatalog.v1.DataCatalog/StarEntry', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function starEntryExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $request = (new StarEntryRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->starEntry($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.cloud.datacatalog.v1.DataCatalog/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 unstarEntryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new UnstarEntryResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $request = (new UnstarEntryRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->unstarEntry($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.datacatalog.v1.DataCatalog/UnstarEntry', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function unstarEntryExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $request = (new UnstarEntryRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->unstarEntry($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 updateEntryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $linkedResource = 'linkedResource1544625012';
+ $fullyQualifiedName = 'fullyQualifiedName338146659';
+ $userSpecifiedType = 'userSpecifiedType-940364963';
+ $userSpecifiedSystem = 'userSpecifiedSystem-1776119406';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $expectedResponse = new Entry();
+ $expectedResponse->setName($name);
+ $expectedResponse->setLinkedResource($linkedResource);
+ $expectedResponse->setFullyQualifiedName($fullyQualifiedName);
+ $expectedResponse->setUserSpecifiedType($userSpecifiedType);
+ $expectedResponse->setUserSpecifiedSystem($userSpecifiedSystem);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $entry = new Entry();
+ $request = (new UpdateEntryRequest())
+ ->setEntry($entry);
+ $response = $gapicClient->updateEntry($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.datacatalog.v1.DataCatalog/UpdateEntry', $actualFuncCall);
+ $actualValue = $actualRequestObject->getEntry();
+ $this->assertProtobufEquals($entry, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateEntryExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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
+ $entry = new Entry();
+ $request = (new UpdateEntryRequest())
+ ->setEntry($entry);
+ try {
+ $gapicClient->updateEntry($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 updateEntryGroupTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $expectedResponse = new EntryGroup();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $entryGroup = new EntryGroup();
+ $request = (new UpdateEntryGroupRequest())
+ ->setEntryGroup($entryGroup);
+ $response = $gapicClient->updateEntryGroup($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.datacatalog.v1.DataCatalog/UpdateEntryGroup', $actualFuncCall);
+ $actualValue = $actualRequestObject->getEntryGroup();
+ $this->assertProtobufEquals($entryGroup, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateEntryGroupExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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
+ $entryGroup = new EntryGroup();
+ $request = (new UpdateEntryGroupRequest())
+ ->setEntryGroup($entryGroup);
+ try {
+ $gapicClient->updateEntryGroup($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 updateTagTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $template = 'template-1321546630';
+ $templateDisplayName = 'templateDisplayName-532252787';
+ $column = 'column-1354837162';
+ $expectedResponse = new Tag();
+ $expectedResponse->setName($name);
+ $expectedResponse->setTemplate($template);
+ $expectedResponse->setTemplateDisplayName($templateDisplayName);
+ $expectedResponse->setColumn($column);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $tag = new Tag();
+ $tagTemplate = 'tagTemplate1678947892';
+ $tag->setTemplate($tagTemplate);
+ $fieldsValue = new TagField();
+ $tagFields = [
+ 'fieldsKey' => $fieldsValue,
+ ];
+ $tag->setFields($tagFields);
+ $request = (new UpdateTagRequest())
+ ->setTag($tag);
+ $response = $gapicClient->updateTag($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.datacatalog.v1.DataCatalog/UpdateTag', $actualFuncCall);
+ $actualValue = $actualRequestObject->getTag();
+ $this->assertProtobufEquals($tag, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateTagExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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
+ $tag = new Tag();
+ $tagTemplate = 'tagTemplate1678947892';
+ $tag->setTemplate($tagTemplate);
+ $fieldsValue = new TagField();
+ $tagFields = [
+ 'fieldsKey' => $fieldsValue,
+ ];
+ $tag->setFields($tagFields);
+ $request = (new UpdateTagRequest())
+ ->setTag($tag);
+ try {
+ $gapicClient->updateTag($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 updateTagTemplateTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $displayName = 'displayName1615086568';
+ $isPubliclyReadable = true;
+ $expectedResponse = new TagTemplate();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setIsPubliclyReadable($isPubliclyReadable);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $tagTemplate = new TagTemplate();
+ $fieldsValue = new TagTemplateField();
+ $valueType = new FieldType();
+ $fieldsValue->setType($valueType);
+ $tagTemplateFields = [
+ 'fieldsKey' => $fieldsValue,
+ ];
+ $tagTemplate->setFields($tagTemplateFields);
+ $request = (new UpdateTagTemplateRequest())
+ ->setTagTemplate($tagTemplate);
+ $response = $gapicClient->updateTagTemplate($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.datacatalog.v1.DataCatalog/UpdateTagTemplate', $actualFuncCall);
+ $actualValue = $actualRequestObject->getTagTemplate();
+ $this->assertProtobufEquals($tagTemplate, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateTagTemplateExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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
+ $tagTemplate = new TagTemplate();
+ $fieldsValue = new TagTemplateField();
+ $valueType = new FieldType();
+ $fieldsValue->setType($valueType);
+ $tagTemplateFields = [
+ 'fieldsKey' => $fieldsValue,
+ ];
+ $tagTemplate->setFields($tagTemplateFields);
+ $request = (new UpdateTagTemplateRequest())
+ ->setTagTemplate($tagTemplate);
+ try {
+ $gapicClient->updateTagTemplate($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 updateTagTemplateFieldTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $displayName = 'displayName1615086568';
+ $isRequired = true;
+ $description = 'description-1724546052';
+ $order = 106006350;
+ $expectedResponse = new TagTemplateField();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setIsRequired($isRequired);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setOrder($order);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->tagTemplateFieldName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]', '[FIELD]');
+ $tagTemplateField = new TagTemplateField();
+ $tagTemplateFieldType = new FieldType();
+ $tagTemplateField->setType($tagTemplateFieldType);
+ $request = (new UpdateTagTemplateFieldRequest())
+ ->setName($formattedName)
+ ->setTagTemplateField($tagTemplateField);
+ $response = $gapicClient->updateTagTemplateField($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.datacatalog.v1.DataCatalog/UpdateTagTemplateField', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualRequestObject->getTagTemplateField();
+ $this->assertProtobufEquals($tagTemplateField, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateTagTemplateFieldExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->tagTemplateFieldName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]', '[FIELD]');
+ $tagTemplateField = new TagTemplateField();
+ $tagTemplateFieldType = new FieldType();
+ $tagTemplateField->setType($tagTemplateFieldType);
+ $request = (new UpdateTagTemplateFieldRequest())
+ ->setName($formattedName)
+ ->setTagTemplateField($tagTemplateField);
+ try {
+ $gapicClient->updateTagTemplateField($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 createEntryAsyncTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $linkedResource = 'linkedResource1544625012';
+ $fullyQualifiedName = 'fullyQualifiedName338146659';
+ $userSpecifiedType = 'userSpecifiedType-940364963';
+ $userSpecifiedSystem = 'userSpecifiedSystem-1776119406';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $expectedResponse = new Entry();
+ $expectedResponse->setName($name);
+ $expectedResponse->setLinkedResource($linkedResource);
+ $expectedResponse->setFullyQualifiedName($fullyQualifiedName);
+ $expectedResponse->setUserSpecifiedType($userSpecifiedType);
+ $expectedResponse->setUserSpecifiedSystem($userSpecifiedSystem);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ $entryId = 'entryId-2093663224';
+ $entry = new Entry();
+ $request = (new CreateEntryRequest())
+ ->setParent($formattedParent)
+ ->setEntryId($entryId)
+ ->setEntry($entry);
+ $response = $gapicClient->createEntryAsync($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.datacatalog.v1.DataCatalog/CreateEntry', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getEntryId();
+ $this->assertProtobufEquals($entryId, $actualValue);
+ $actualValue = $actualRequestObject->getEntry();
+ $this->assertProtobufEquals($entry, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+}
diff --git a/owl-bot-staging/DataCatalog/v1/tests/Unit/V1/Client/PolicyTagManagerClientTest.php b/owl-bot-staging/DataCatalog/v1/tests/Unit/V1/Client/PolicyTagManagerClientTest.php
new file mode 100644
index 000000000000..4f5a67a85321
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/tests/Unit/V1/Client/PolicyTagManagerClientTest.php
@@ -0,0 +1,991 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return PolicyTagManagerClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new PolicyTagManagerClient($options);
+ }
+
+ /** @test */
+ public function createPolicyTagTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $parentPolicyTag = 'parentPolicyTag2071382466';
+ $expectedResponse = new PolicyTag();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setParentPolicyTag($parentPolicyTag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ $request = (new CreatePolicyTagRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->createPolicyTag($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.datacatalog.v1.PolicyTagManager/CreatePolicyTag', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createPolicyTagExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ $request = (new CreatePolicyTagRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->createPolicyTag($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 createTaxonomyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $policyTagCount = 1074340189;
+ $expectedResponse = new Taxonomy();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setPolicyTagCount($policyTagCount);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new CreateTaxonomyRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->createTaxonomy($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.datacatalog.v1.PolicyTagManager/CreateTaxonomy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createTaxonomyExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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 CreateTaxonomyRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->createTaxonomy($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 deletePolicyTagTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->policyTagName('[PROJECT]', '[LOCATION]', '[TAXONOMY]', '[POLICY_TAG]');
+ $request = (new DeletePolicyTagRequest())
+ ->setName($formattedName);
+ $gapicClient->deletePolicyTag($request);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.PolicyTagManager/DeletePolicyTag', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deletePolicyTagExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->policyTagName('[PROJECT]', '[LOCATION]', '[TAXONOMY]', '[POLICY_TAG]');
+ $request = (new DeletePolicyTagRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->deletePolicyTag($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 deleteTaxonomyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ $request = (new DeleteTaxonomyRequest())
+ ->setName($formattedName);
+ $gapicClient->deleteTaxonomy($request);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.PolicyTagManager/DeleteTaxonomy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteTaxonomyExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ $request = (new DeleteTaxonomyRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->deleteTaxonomy($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.cloud.datacatalog.v1.PolicyTagManager/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 getPolicyTagTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $parentPolicyTag = 'parentPolicyTag2071382466';
+ $expectedResponse = new PolicyTag();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setParentPolicyTag($parentPolicyTag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->policyTagName('[PROJECT]', '[LOCATION]', '[TAXONOMY]', '[POLICY_TAG]');
+ $request = (new GetPolicyTagRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getPolicyTag($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.datacatalog.v1.PolicyTagManager/GetPolicyTag', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getPolicyTagExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->policyTagName('[PROJECT]', '[LOCATION]', '[TAXONOMY]', '[POLICY_TAG]');
+ $request = (new GetPolicyTagRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getPolicyTag($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 getTaxonomyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $policyTagCount = 1074340189;
+ $expectedResponse = new Taxonomy();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setPolicyTagCount($policyTagCount);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ $request = (new GetTaxonomyRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getTaxonomy($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.datacatalog.v1.PolicyTagManager/GetTaxonomy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getTaxonomyExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ $request = (new GetTaxonomyRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getTaxonomy($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 listPolicyTagsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $policyTagsElement = new PolicyTag();
+ $policyTags = [
+ $policyTagsElement,
+ ];
+ $expectedResponse = new ListPolicyTagsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setPolicyTags($policyTags);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ $request = (new ListPolicyTagsRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listPolicyTags($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getPolicyTags()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.PolicyTagManager/ListPolicyTags', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listPolicyTagsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ $request = (new ListPolicyTagsRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listPolicyTags($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 listTaxonomiesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $taxonomiesElement = new Taxonomy();
+ $taxonomies = [
+ $taxonomiesElement,
+ ];
+ $expectedResponse = new ListTaxonomiesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setTaxonomies($taxonomies);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListTaxonomiesRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listTaxonomies($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getTaxonomies()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.PolicyTagManager/ListTaxonomies', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listTaxonomiesExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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 ListTaxonomiesRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listTaxonomies($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.cloud.datacatalog.v1.PolicyTagManager/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.cloud.datacatalog.v1.PolicyTagManager/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 updatePolicyTagTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $parentPolicyTag = 'parentPolicyTag2071382466';
+ $expectedResponse = new PolicyTag();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setParentPolicyTag($parentPolicyTag);
+ $transport->addResponse($expectedResponse);
+ $request = new UpdatePolicyTagRequest();
+ $response = $gapicClient->updatePolicyTag($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.datacatalog.v1.PolicyTagManager/UpdatePolicyTag', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updatePolicyTagExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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 UpdatePolicyTagRequest();
+ try {
+ $gapicClient->updatePolicyTag($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 updateTaxonomyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $policyTagCount = 1074340189;
+ $expectedResponse = new Taxonomy();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setPolicyTagCount($policyTagCount);
+ $transport->addResponse($expectedResponse);
+ $request = new UpdateTaxonomyRequest();
+ $response = $gapicClient->updateTaxonomy($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.datacatalog.v1.PolicyTagManager/UpdateTaxonomy', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateTaxonomyExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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 UpdateTaxonomyRequest();
+ try {
+ $gapicClient->updateTaxonomy($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 createPolicyTagAsyncTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $parentPolicyTag = 'parentPolicyTag2071382466';
+ $expectedResponse = new PolicyTag();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setParentPolicyTag($parentPolicyTag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ $request = (new CreatePolicyTagRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->createPolicyTagAsync($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.datacatalog.v1.PolicyTagManager/CreatePolicyTag', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+}
diff --git a/owl-bot-staging/DataCatalog/v1/tests/Unit/V1/Client/PolicyTagManagerSerializationClientTest.php b/owl-bot-staging/DataCatalog/v1/tests/Unit/V1/Client/PolicyTagManagerSerializationClientTest.php
new file mode 100644
index 000000000000..57d4bf4ec714
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/tests/Unit/V1/Client/PolicyTagManagerSerializationClientTest.php
@@ -0,0 +1,314 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return PolicyTagManagerSerializationClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new PolicyTagManagerSerializationClient($options);
+ }
+
+ /** @test */
+ public function exportTaxonomiesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new ExportTaxonomiesResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $formattedTaxonomies = [
+ $gapicClient->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]'),
+ ];
+ $request = (new ExportTaxonomiesRequest())
+ ->setParent($formattedParent)
+ ->setTaxonomies($formattedTaxonomies);
+ $response = $gapicClient->exportTaxonomies($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.datacatalog.v1.PolicyTagManagerSerialization/ExportTaxonomies', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getTaxonomies();
+ $this->assertProtobufEquals($formattedTaxonomies, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function exportTaxonomiesExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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]');
+ $formattedTaxonomies = [
+ $gapicClient->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]'),
+ ];
+ $request = (new ExportTaxonomiesRequest())
+ ->setParent($formattedParent)
+ ->setTaxonomies($formattedTaxonomies);
+ try {
+ $gapicClient->exportTaxonomies($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 importTaxonomiesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new ImportTaxonomiesResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ImportTaxonomiesRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->importTaxonomies($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.datacatalog.v1.PolicyTagManagerSerialization/ImportTaxonomies', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function importTaxonomiesExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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 ImportTaxonomiesRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->importTaxonomies($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 replaceTaxonomyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $policyTagCount = 1074340189;
+ $expectedResponse = new Taxonomy();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setPolicyTagCount($policyTagCount);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ $serializedTaxonomy = new SerializedTaxonomy();
+ $serializedTaxonomyDisplayName = 'serializedTaxonomyDisplayName1493662264';
+ $serializedTaxonomy->setDisplayName($serializedTaxonomyDisplayName);
+ $request = (new ReplaceTaxonomyRequest())
+ ->setName($formattedName)
+ ->setSerializedTaxonomy($serializedTaxonomy);
+ $response = $gapicClient->replaceTaxonomy($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.datacatalog.v1.PolicyTagManagerSerialization/ReplaceTaxonomy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualRequestObject->getSerializedTaxonomy();
+ $this->assertProtobufEquals($serializedTaxonomy, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function replaceTaxonomyExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ $serializedTaxonomy = new SerializedTaxonomy();
+ $serializedTaxonomyDisplayName = 'serializedTaxonomyDisplayName1493662264';
+ $serializedTaxonomy->setDisplayName($serializedTaxonomyDisplayName);
+ $request = (new ReplaceTaxonomyRequest())
+ ->setName($formattedName)
+ ->setSerializedTaxonomy($serializedTaxonomy);
+ try {
+ $gapicClient->replaceTaxonomy($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 exportTaxonomiesAsyncTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new ExportTaxonomiesResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $formattedTaxonomies = [
+ $gapicClient->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]'),
+ ];
+ $request = (new ExportTaxonomiesRequest())
+ ->setParent($formattedParent)
+ ->setTaxonomies($formattedTaxonomies);
+ $response = $gapicClient->exportTaxonomiesAsync($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.datacatalog.v1.PolicyTagManagerSerialization/ExportTaxonomies', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getTaxonomies();
+ $this->assertProtobufEquals($formattedTaxonomies, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+}
diff --git a/owl-bot-staging/DataCatalog/v1/tests/Unit/V1/DataCatalogClientTest.php b/owl-bot-staging/DataCatalog/v1/tests/Unit/V1/DataCatalogClientTest.php
new file mode 100644
index 000000000000..f99ecbfe547f
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/tests/Unit/V1/DataCatalogClientTest.php
@@ -0,0 +1,2515 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return DataCatalogClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new DataCatalogClient($options);
+ }
+
+ /** @test */
+ public function createEntryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $linkedResource = 'linkedResource1544625012';
+ $fullyQualifiedName = 'fullyQualifiedName338146659';
+ $userSpecifiedType = 'userSpecifiedType-940364963';
+ $userSpecifiedSystem = 'userSpecifiedSystem-1776119406';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $expectedResponse = new Entry();
+ $expectedResponse->setName($name);
+ $expectedResponse->setLinkedResource($linkedResource);
+ $expectedResponse->setFullyQualifiedName($fullyQualifiedName);
+ $expectedResponse->setUserSpecifiedType($userSpecifiedType);
+ $expectedResponse->setUserSpecifiedSystem($userSpecifiedSystem);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ $entryId = 'entryId-2093663224';
+ $entry = new Entry();
+ $response = $gapicClient->createEntry($formattedParent, $entryId, $entry);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/CreateEntry', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getEntryId();
+ $this->assertProtobufEquals($entryId, $actualValue);
+ $actualValue = $actualRequestObject->getEntry();
+ $this->assertProtobufEquals($entry, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createEntryExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ $entryId = 'entryId-2093663224';
+ $entry = new Entry();
+ try {
+ $gapicClient->createEntry($formattedParent, $entryId, $entry);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->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 createEntryGroupTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $expectedResponse = new EntryGroup();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $entryGroupId = 'entryGroupId-43122680';
+ $response = $gapicClient->createEntryGroup($formattedParent, $entryGroupId);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/CreateEntryGroup', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getEntryGroupId();
+ $this->assertProtobufEquals($entryGroupId, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createEntryGroupExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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]');
+ $entryGroupId = 'entryGroupId-43122680';
+ try {
+ $gapicClient->createEntryGroup($formattedParent, $entryGroupId);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->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 createTagTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $template = 'template-1321546630';
+ $templateDisplayName = 'templateDisplayName-532252787';
+ $column = 'column-1354837162';
+ $expectedResponse = new Tag();
+ $expectedResponse->setName($name);
+ $expectedResponse->setTemplate($template);
+ $expectedResponse->setTemplateDisplayName($templateDisplayName);
+ $expectedResponse->setColumn($column);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $tag = new Tag();
+ $tagTemplate = 'tagTemplate1678947892';
+ $tag->setTemplate($tagTemplate);
+ $fieldsValue = new TagField();
+ $tagFields = [
+ 'fieldsKey' => $fieldsValue,
+ ];
+ $tag->setFields($tagFields);
+ $response = $gapicClient->createTag($formattedParent, $tag);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/CreateTag', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getTag();
+ $this->assertProtobufEquals($tag, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createTagExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $tag = new Tag();
+ $tagTemplate = 'tagTemplate1678947892';
+ $tag->setTemplate($tagTemplate);
+ $fieldsValue = new TagField();
+ $tagFields = [
+ 'fieldsKey' => $fieldsValue,
+ ];
+ $tag->setFields($tagFields);
+ try {
+ $gapicClient->createTag($formattedParent, $tag);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->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 createTagTemplateTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $displayName = 'displayName1615086568';
+ $isPubliclyReadable = true;
+ $expectedResponse = new TagTemplate();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setIsPubliclyReadable($isPubliclyReadable);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $tagTemplateId = 'tagTemplateId-2020335141';
+ $tagTemplate = new TagTemplate();
+ $fieldsValue = new TagTemplateField();
+ $valueType = new FieldType();
+ $fieldsValue->setType($valueType);
+ $tagTemplateFields = [
+ 'fieldsKey' => $fieldsValue,
+ ];
+ $tagTemplate->setFields($tagTemplateFields);
+ $response = $gapicClient->createTagTemplate($formattedParent, $tagTemplateId, $tagTemplate);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/CreateTagTemplate', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getTagTemplateId();
+ $this->assertProtobufEquals($tagTemplateId, $actualValue);
+ $actualValue = $actualRequestObject->getTagTemplate();
+ $this->assertProtobufEquals($tagTemplate, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createTagTemplateExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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]');
+ $tagTemplateId = 'tagTemplateId-2020335141';
+ $tagTemplate = new TagTemplate();
+ $fieldsValue = new TagTemplateField();
+ $valueType = new FieldType();
+ $fieldsValue->setType($valueType);
+ $tagTemplateFields = [
+ 'fieldsKey' => $fieldsValue,
+ ];
+ $tagTemplate->setFields($tagTemplateFields);
+ try {
+ $gapicClient->createTagTemplate($formattedParent, $tagTemplateId, $tagTemplate);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->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 createTagTemplateFieldTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $displayName = 'displayName1615086568';
+ $isRequired = true;
+ $description = 'description-1724546052';
+ $order = 106006350;
+ $expectedResponse = new TagTemplateField();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setIsRequired($isRequired);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setOrder($order);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->tagTemplateName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]');
+ $tagTemplateFieldId = 'tagTemplateFieldId-92144832';
+ $tagTemplateField = new TagTemplateField();
+ $tagTemplateFieldType = new FieldType();
+ $tagTemplateField->setType($tagTemplateFieldType);
+ $response = $gapicClient->createTagTemplateField($formattedParent, $tagTemplateFieldId, $tagTemplateField);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/CreateTagTemplateField', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getTagTemplateFieldId();
+ $this->assertProtobufEquals($tagTemplateFieldId, $actualValue);
+ $actualValue = $actualRequestObject->getTagTemplateField();
+ $this->assertProtobufEquals($tagTemplateField, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createTagTemplateFieldExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->tagTemplateName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]');
+ $tagTemplateFieldId = 'tagTemplateFieldId-92144832';
+ $tagTemplateField = new TagTemplateField();
+ $tagTemplateFieldType = new FieldType();
+ $tagTemplateField->setType($tagTemplateFieldType);
+ try {
+ $gapicClient->createTagTemplateField($formattedParent, $tagTemplateFieldId, $tagTemplateField);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->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 deleteEntryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $gapicClient->deleteEntry($formattedName);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/DeleteEntry', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteEntryExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ try {
+ $gapicClient->deleteEntry($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 deleteEntryGroupTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ $gapicClient->deleteEntryGroup($formattedName);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/DeleteEntryGroup', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteEntryGroupExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ try {
+ $gapicClient->deleteEntryGroup($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 deleteTagTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $gapicClient->deleteTag($formattedName);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/DeleteTag', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteTagExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ try {
+ $gapicClient->deleteTag($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 deleteTagTemplateTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->tagTemplateName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]');
+ $force = false;
+ $gapicClient->deleteTagTemplate($formattedName, $force);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/DeleteTagTemplate', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualRequestObject->getForce();
+ $this->assertProtobufEquals($force, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteTagTemplateExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->tagTemplateName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]');
+ $force = false;
+ try {
+ $gapicClient->deleteTagTemplate($formattedName, $force);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->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 deleteTagTemplateFieldTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->tagTemplateFieldName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]', '[FIELD]');
+ $force = false;
+ $gapicClient->deleteTagTemplateField($formattedName, $force);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/DeleteTagTemplateField', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualRequestObject->getForce();
+ $this->assertProtobufEquals($force, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteTagTemplateFieldExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->tagTemplateFieldName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]', '[FIELD]');
+ $force = false;
+ try {
+ $gapicClient->deleteTagTemplateField($formattedName, $force);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->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 getEntryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $linkedResource = 'linkedResource1544625012';
+ $fullyQualifiedName = 'fullyQualifiedName338146659';
+ $userSpecifiedType = 'userSpecifiedType-940364963';
+ $userSpecifiedSystem = 'userSpecifiedSystem-1776119406';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $expectedResponse = new Entry();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setLinkedResource($linkedResource);
+ $expectedResponse->setFullyQualifiedName($fullyQualifiedName);
+ $expectedResponse->setUserSpecifiedType($userSpecifiedType);
+ $expectedResponse->setUserSpecifiedSystem($userSpecifiedSystem);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $response = $gapicClient->getEntry($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.datacatalog.v1.DataCatalog/GetEntry', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getEntryExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ try {
+ $gapicClient->getEntry($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 getEntryGroupTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $expectedResponse = new EntryGroup();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ $response = $gapicClient->getEntryGroup($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.datacatalog.v1.DataCatalog/GetEntryGroup', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getEntryGroupExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ try {
+ $gapicClient->getEntryGroup($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 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.cloud.datacatalog.v1.DataCatalog/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 getTagTemplateTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $displayName = 'displayName1615086568';
+ $isPubliclyReadable = true;
+ $expectedResponse = new TagTemplate();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setIsPubliclyReadable($isPubliclyReadable);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->tagTemplateName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]');
+ $response = $gapicClient->getTagTemplate($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.datacatalog.v1.DataCatalog/GetTagTemplate', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getTagTemplateExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->tagTemplateName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]');
+ try {
+ $gapicClient->getTagTemplate($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 importEntriesTest()
+ {
+ $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/importEntriesTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $upsertedEntriesCount = 250168367;
+ $deletedEntriesCount = 167383302;
+ $expectedResponse = new ImportEntriesResponse();
+ $expectedResponse->setUpsertedEntriesCount($upsertedEntriesCount);
+ $expectedResponse->setDeletedEntriesCount($deletedEntriesCount);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/importEntriesTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ $response = $gapicClient->importEntries($formattedParent);
+ $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.datacatalog.v1.DataCatalog/ImportEntries', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/importEntriesTest');
+ $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 importEntriesExceptionTest()
+ {
+ $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/importEntriesTest');
+ $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->entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ $response = $gapicClient->importEntries($formattedParent);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/importEntriesTest');
+ 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 listEntriesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $entriesElement = new Entry();
+ $entries = [
+ $entriesElement,
+ ];
+ $expectedResponse = new ListEntriesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setEntries($entries);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ $response = $gapicClient->listEntries($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getEntries()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/ListEntries', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listEntriesExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->entryGroupName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]');
+ try {
+ $gapicClient->listEntries($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 listEntryGroupsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $entryGroupsElement = new EntryGroup();
+ $entryGroups = [
+ $entryGroupsElement,
+ ];
+ $expectedResponse = new ListEntryGroupsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setEntryGroups($entryGroups);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $response = $gapicClient->listEntryGroups($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getEntryGroups()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/ListEntryGroups', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listEntryGroupsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->listEntryGroups($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 listTagsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $tagsElement = new Tag();
+ $tags = [
+ $tagsElement,
+ ];
+ $expectedResponse = new ListTagsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setTags($tags);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $response = $gapicClient->listTags($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getTags()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/ListTags', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listTagsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ try {
+ $gapicClient->listTags($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 lookupEntryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $linkedResource2 = 'linkedResource2-1674044889';
+ $fullyQualifiedName = 'fullyQualifiedName338146659';
+ $userSpecifiedType = 'userSpecifiedType-940364963';
+ $userSpecifiedSystem = 'userSpecifiedSystem-1776119406';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $expectedResponse = new Entry();
+ $expectedResponse->setName($name);
+ $expectedResponse->setLinkedResource($linkedResource2);
+ $expectedResponse->setFullyQualifiedName($fullyQualifiedName);
+ $expectedResponse->setUserSpecifiedType($userSpecifiedType);
+ $expectedResponse->setUserSpecifiedSystem($userSpecifiedSystem);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ $response = $gapicClient->lookupEntry();
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/LookupEntry', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function lookupEntryExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->lookupEntry();
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->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 modifyEntryContactsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new Contacts();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $contacts = new Contacts();
+ $response = $gapicClient->modifyEntryContacts($formattedName, $contacts);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/ModifyEntryContacts', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualRequestObject->getContacts();
+ $this->assertProtobufEquals($contacts, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function modifyEntryContactsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $contacts = new Contacts();
+ try {
+ $gapicClient->modifyEntryContacts($formattedName, $contacts);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->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 modifyEntryOverviewTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $overview = 'overview530115961';
+ $expectedResponse = new EntryOverview();
+ $expectedResponse->setOverview($overview);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $entryOverview = new EntryOverview();
+ $response = $gapicClient->modifyEntryOverview($formattedName, $entryOverview);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/ModifyEntryOverview', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualRequestObject->getEntryOverview();
+ $this->assertProtobufEquals($entryOverview, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function modifyEntryOverviewExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $entryOverview = new EntryOverview();
+ try {
+ $gapicClient->modifyEntryOverview($formattedName, $entryOverview);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->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 reconcileTagsTest()
+ {
+ $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/reconcileTagsTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $createdTagsCount = 986601696;
+ $updatedTagsCount = 344847213;
+ $deletedTagsCount = 59637071;
+ $expectedResponse = new ReconcileTagsResponse();
+ $expectedResponse->setCreatedTagsCount($createdTagsCount);
+ $expectedResponse->setUpdatedTagsCount($updatedTagsCount);
+ $expectedResponse->setDeletedTagsCount($deletedTagsCount);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/reconcileTagsTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $formattedTagTemplate = $gapicClient->tagTemplateName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]');
+ $response = $gapicClient->reconcileTags($formattedParent, $formattedTagTemplate);
+ $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.datacatalog.v1.DataCatalog/ReconcileTags', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getTagTemplate();
+ $this->assertProtobufEquals($formattedTagTemplate, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/reconcileTagsTest');
+ $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 reconcileTagsExceptionTest()
+ {
+ $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/reconcileTagsTest');
+ $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->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $formattedTagTemplate = $gapicClient->tagTemplateName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]');
+ $response = $gapicClient->reconcileTags($formattedParent, $formattedTagTemplate);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/reconcileTagsTest');
+ 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 renameTagTemplateFieldTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $displayName = 'displayName1615086568';
+ $isRequired = true;
+ $description = 'description-1724546052';
+ $order = 106006350;
+ $expectedResponse = new TagTemplateField();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setIsRequired($isRequired);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setOrder($order);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->tagTemplateFieldName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]', '[FIELD]');
+ $newTagTemplateFieldId = 'newTagTemplateFieldId-1668354591';
+ $response = $gapicClient->renameTagTemplateField($formattedName, $newTagTemplateFieldId);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/RenameTagTemplateField', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualRequestObject->getNewTagTemplateFieldId();
+ $this->assertProtobufEquals($newTagTemplateFieldId, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function renameTagTemplateFieldExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->tagTemplateFieldName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]', '[FIELD]');
+ $newTagTemplateFieldId = 'newTagTemplateFieldId-1668354591';
+ try {
+ $gapicClient->renameTagTemplateField($formattedName, $newTagTemplateFieldId);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->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 renameTagTemplateFieldEnumValueTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $displayName = 'displayName1615086568';
+ $isRequired = true;
+ $description = 'description-1724546052';
+ $order = 106006350;
+ $expectedResponse = new TagTemplateField();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setIsRequired($isRequired);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setOrder($order);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->tagTemplateFieldEnumValueName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]', '[TAG_TEMPLATE_FIELD_ID]', '[ENUM_VALUE_DISPLAY_NAME]');
+ $newEnumValueDisplayName = 'newEnumValueDisplayName2138960469';
+ $response = $gapicClient->renameTagTemplateFieldEnumValue($formattedName, $newEnumValueDisplayName);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/RenameTagTemplateFieldEnumValue', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualRequestObject->getNewEnumValueDisplayName();
+ $this->assertProtobufEquals($newEnumValueDisplayName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function renameTagTemplateFieldEnumValueExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->tagTemplateFieldEnumValueName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]', '[TAG_TEMPLATE_FIELD_ID]', '[ENUM_VALUE_DISPLAY_NAME]');
+ $newEnumValueDisplayName = 'newEnumValueDisplayName2138960469';
+ try {
+ $gapicClient->renameTagTemplateFieldEnumValue($formattedName, $newEnumValueDisplayName);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->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 searchCatalogTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $totalSize = 705419236;
+ $nextPageToken = '';
+ $resultsElement = new SearchCatalogResult();
+ $results = [
+ $resultsElement,
+ ];
+ $expectedResponse = new SearchCatalogResponse();
+ $expectedResponse->setTotalSize($totalSize);
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setResults($results);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $scope = new Scope();
+ $query = 'query107944136';
+ $response = $gapicClient->searchCatalog($scope, $query);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getResults()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/SearchCatalog', $actualFuncCall);
+ $actualValue = $actualRequestObject->getScope();
+ $this->assertProtobufEquals($scope, $actualValue);
+ $actualValue = $actualRequestObject->getQuery();
+ $this->assertProtobufEquals($query, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function searchCatalogExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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
+ $scope = new Scope();
+ $query = 'query107944136';
+ try {
+ $gapicClient->searchCatalog($scope, $query);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->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.cloud.datacatalog.v1.DataCatalog/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 starEntryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new StarEntryResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $response = $gapicClient->starEntry($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.datacatalog.v1.DataCatalog/StarEntry', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function starEntryExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ try {
+ $gapicClient->starEntry($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 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.cloud.datacatalog.v1.DataCatalog/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());
+ }
+
+ /** @test */
+ public function unstarEntryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new UnstarEntryResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ $response = $gapicClient->unstarEntry($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.datacatalog.v1.DataCatalog/UnstarEntry', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function unstarEntryExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->entryName('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]');
+ try {
+ $gapicClient->unstarEntry($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 updateEntryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $linkedResource = 'linkedResource1544625012';
+ $fullyQualifiedName = 'fullyQualifiedName338146659';
+ $userSpecifiedType = 'userSpecifiedType-940364963';
+ $userSpecifiedSystem = 'userSpecifiedSystem-1776119406';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $expectedResponse = new Entry();
+ $expectedResponse->setName($name);
+ $expectedResponse->setLinkedResource($linkedResource);
+ $expectedResponse->setFullyQualifiedName($fullyQualifiedName);
+ $expectedResponse->setUserSpecifiedType($userSpecifiedType);
+ $expectedResponse->setUserSpecifiedSystem($userSpecifiedSystem);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $entry = new Entry();
+ $response = $gapicClient->updateEntry($entry);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/UpdateEntry', $actualFuncCall);
+ $actualValue = $actualRequestObject->getEntry();
+ $this->assertProtobufEquals($entry, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateEntryExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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
+ $entry = new Entry();
+ try {
+ $gapicClient->updateEntry($entry);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->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 updateEntryGroupTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $expectedResponse = new EntryGroup();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $entryGroup = new EntryGroup();
+ $response = $gapicClient->updateEntryGroup($entryGroup);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/UpdateEntryGroup', $actualFuncCall);
+ $actualValue = $actualRequestObject->getEntryGroup();
+ $this->assertProtobufEquals($entryGroup, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateEntryGroupExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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
+ $entryGroup = new EntryGroup();
+ try {
+ $gapicClient->updateEntryGroup($entryGroup);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->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 updateTagTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $template = 'template-1321546630';
+ $templateDisplayName = 'templateDisplayName-532252787';
+ $column = 'column-1354837162';
+ $expectedResponse = new Tag();
+ $expectedResponse->setName($name);
+ $expectedResponse->setTemplate($template);
+ $expectedResponse->setTemplateDisplayName($templateDisplayName);
+ $expectedResponse->setColumn($column);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $tag = new Tag();
+ $tagTemplate = 'tagTemplate1678947892';
+ $tag->setTemplate($tagTemplate);
+ $fieldsValue = new TagField();
+ $tagFields = [
+ 'fieldsKey' => $fieldsValue,
+ ];
+ $tag->setFields($tagFields);
+ $response = $gapicClient->updateTag($tag);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/UpdateTag', $actualFuncCall);
+ $actualValue = $actualRequestObject->getTag();
+ $this->assertProtobufEquals($tag, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateTagExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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
+ $tag = new Tag();
+ $tagTemplate = 'tagTemplate1678947892';
+ $tag->setTemplate($tagTemplate);
+ $fieldsValue = new TagField();
+ $tagFields = [
+ 'fieldsKey' => $fieldsValue,
+ ];
+ $tag->setFields($tagFields);
+ try {
+ $gapicClient->updateTag($tag);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->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 updateTagTemplateTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $displayName = 'displayName1615086568';
+ $isPubliclyReadable = true;
+ $expectedResponse = new TagTemplate();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setIsPubliclyReadable($isPubliclyReadable);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $tagTemplate = new TagTemplate();
+ $fieldsValue = new TagTemplateField();
+ $valueType = new FieldType();
+ $fieldsValue->setType($valueType);
+ $tagTemplateFields = [
+ 'fieldsKey' => $fieldsValue,
+ ];
+ $tagTemplate->setFields($tagTemplateFields);
+ $response = $gapicClient->updateTagTemplate($tagTemplate);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/UpdateTagTemplate', $actualFuncCall);
+ $actualValue = $actualRequestObject->getTagTemplate();
+ $this->assertProtobufEquals($tagTemplate, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateTagTemplateExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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
+ $tagTemplate = new TagTemplate();
+ $fieldsValue = new TagTemplateField();
+ $valueType = new FieldType();
+ $fieldsValue->setType($valueType);
+ $tagTemplateFields = [
+ 'fieldsKey' => $fieldsValue,
+ ];
+ $tagTemplate->setFields($tagTemplateFields);
+ try {
+ $gapicClient->updateTagTemplate($tagTemplate);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->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 updateTagTemplateFieldTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $displayName = 'displayName1615086568';
+ $isRequired = true;
+ $description = 'description-1724546052';
+ $order = 106006350;
+ $expectedResponse = new TagTemplateField();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setIsRequired($isRequired);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setOrder($order);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->tagTemplateFieldName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]', '[FIELD]');
+ $tagTemplateField = new TagTemplateField();
+ $tagTemplateFieldType = new FieldType();
+ $tagTemplateField->setType($tagTemplateFieldType);
+ $response = $gapicClient->updateTagTemplateField($formattedName, $tagTemplateField);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.DataCatalog/UpdateTagTemplateField', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualRequestObject->getTagTemplateField();
+ $this->assertProtobufEquals($tagTemplateField, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateTagTemplateFieldExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->tagTemplateFieldName('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]', '[FIELD]');
+ $tagTemplateField = new TagTemplateField();
+ $tagTemplateFieldType = new FieldType();
+ $tagTemplateField->setType($tagTemplateFieldType);
+ try {
+ $gapicClient->updateTagTemplateField($formattedName, $tagTemplateField);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->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/DataCatalog/v1/tests/Unit/V1/PolicyTagManagerClientTest.php b/owl-bot-staging/DataCatalog/v1/tests/Unit/V1/PolicyTagManagerClientTest.php
new file mode 100644
index 000000000000..b023b3eb5752
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/tests/Unit/V1/PolicyTagManagerClientTest.php
@@ -0,0 +1,891 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return PolicyTagManagerClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new PolicyTagManagerClient($options);
+ }
+
+ /** @test */
+ public function createPolicyTagTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $parentPolicyTag = 'parentPolicyTag2071382466';
+ $expectedResponse = new PolicyTag();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setParentPolicyTag($parentPolicyTag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ $response = $gapicClient->createPolicyTag($formattedParent);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.PolicyTagManager/CreatePolicyTag', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createPolicyTagExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ try {
+ $gapicClient->createPolicyTag($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 createTaxonomyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $policyTagCount = 1074340189;
+ $expectedResponse = new Taxonomy();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setPolicyTagCount($policyTagCount);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $response = $gapicClient->createTaxonomy($formattedParent);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.PolicyTagManager/CreateTaxonomy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createTaxonomyExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->createTaxonomy($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 deletePolicyTagTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->policyTagName('[PROJECT]', '[LOCATION]', '[TAXONOMY]', '[POLICY_TAG]');
+ $gapicClient->deletePolicyTag($formattedName);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.PolicyTagManager/DeletePolicyTag', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deletePolicyTagExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->policyTagName('[PROJECT]', '[LOCATION]', '[TAXONOMY]', '[POLICY_TAG]');
+ try {
+ $gapicClient->deletePolicyTag($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 deleteTaxonomyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ $gapicClient->deleteTaxonomy($formattedName);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.PolicyTagManager/DeleteTaxonomy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteTaxonomyExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ try {
+ $gapicClient->deleteTaxonomy($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 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.cloud.datacatalog.v1.PolicyTagManager/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 getPolicyTagTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $parentPolicyTag = 'parentPolicyTag2071382466';
+ $expectedResponse = new PolicyTag();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setParentPolicyTag($parentPolicyTag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->policyTagName('[PROJECT]', '[LOCATION]', '[TAXONOMY]', '[POLICY_TAG]');
+ $response = $gapicClient->getPolicyTag($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.datacatalog.v1.PolicyTagManager/GetPolicyTag', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getPolicyTagExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->policyTagName('[PROJECT]', '[LOCATION]', '[TAXONOMY]', '[POLICY_TAG]');
+ try {
+ $gapicClient->getPolicyTag($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 getTaxonomyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $policyTagCount = 1074340189;
+ $expectedResponse = new Taxonomy();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setPolicyTagCount($policyTagCount);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ $response = $gapicClient->getTaxonomy($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.datacatalog.v1.PolicyTagManager/GetTaxonomy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getTaxonomyExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ try {
+ $gapicClient->getTaxonomy($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 listPolicyTagsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $policyTagsElement = new PolicyTag();
+ $policyTags = [
+ $policyTagsElement,
+ ];
+ $expectedResponse = new ListPolicyTagsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setPolicyTags($policyTags);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ $response = $gapicClient->listPolicyTags($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getPolicyTags()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.PolicyTagManager/ListPolicyTags', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listPolicyTagsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ try {
+ $gapicClient->listPolicyTags($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 listTaxonomiesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $taxonomiesElement = new Taxonomy();
+ $taxonomies = [
+ $taxonomiesElement,
+ ];
+ $expectedResponse = new ListTaxonomiesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setTaxonomies($taxonomies);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $response = $gapicClient->listTaxonomies($formattedParent);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getTaxonomies()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.PolicyTagManager/ListTaxonomies', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listTaxonomiesExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->listTaxonomies($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 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.cloud.datacatalog.v1.PolicyTagManager/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.cloud.datacatalog.v1.PolicyTagManager/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());
+ }
+
+ /** @test */
+ public function updatePolicyTagTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $parentPolicyTag = 'parentPolicyTag2071382466';
+ $expectedResponse = new PolicyTag();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setParentPolicyTag($parentPolicyTag);
+ $transport->addResponse($expectedResponse);
+ $response = $gapicClient->updatePolicyTag();
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.PolicyTagManager/UpdatePolicyTag', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updatePolicyTagExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->updatePolicyTag();
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->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 updateTaxonomyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $policyTagCount = 1074340189;
+ $expectedResponse = new Taxonomy();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setPolicyTagCount($policyTagCount);
+ $transport->addResponse($expectedResponse);
+ $response = $gapicClient->updateTaxonomy();
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.PolicyTagManager/UpdateTaxonomy', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateTaxonomyExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->updateTaxonomy();
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->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/DataCatalog/v1/tests/Unit/V1/PolicyTagManagerSerializationClientTest.php b/owl-bot-staging/DataCatalog/v1/tests/Unit/V1/PolicyTagManagerSerializationClientTest.php
new file mode 100644
index 000000000000..12cec91c4756
--- /dev/null
+++ b/owl-bot-staging/DataCatalog/v1/tests/Unit/V1/PolicyTagManagerSerializationClientTest.php
@@ -0,0 +1,262 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return PolicyTagManagerSerializationClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new PolicyTagManagerSerializationClient($options);
+ }
+
+ /** @test */
+ public function exportTaxonomiesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new ExportTaxonomiesResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $formattedTaxonomies = [
+ $gapicClient->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]'),
+ ];
+ $response = $gapicClient->exportTaxonomies($formattedParent, $formattedTaxonomies);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.PolicyTagManagerSerialization/ExportTaxonomies', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getTaxonomies();
+ $this->assertProtobufEquals($formattedTaxonomies, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function exportTaxonomiesExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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]');
+ $formattedTaxonomies = [
+ $gapicClient->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]'),
+ ];
+ try {
+ $gapicClient->exportTaxonomies($formattedParent, $formattedTaxonomies);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->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 importTaxonomiesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new ImportTaxonomiesResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $response = $gapicClient->importTaxonomies($formattedParent);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.PolicyTagManagerSerialization/ImportTaxonomies', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function importTaxonomiesExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->importTaxonomies($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 replaceTaxonomyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $displayName = 'displayName1615086568';
+ $description = 'description-1724546052';
+ $policyTagCount = 1074340189;
+ $expectedResponse = new Taxonomy();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDisplayName($displayName);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setPolicyTagCount($policyTagCount);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ $serializedTaxonomy = new SerializedTaxonomy();
+ $serializedTaxonomyDisplayName = 'serializedTaxonomyDisplayName1493662264';
+ $serializedTaxonomy->setDisplayName($serializedTaxonomyDisplayName);
+ $response = $gapicClient->replaceTaxonomy($formattedName, $serializedTaxonomy);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.datacatalog.v1.PolicyTagManagerSerialization/ReplaceTaxonomy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualRequestObject->getSerializedTaxonomy();
+ $this->assertProtobufEquals($serializedTaxonomy, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function replaceTaxonomyExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->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->taxonomyName('[PROJECT]', '[LOCATION]', '[TAXONOMY]');
+ $serializedTaxonomy = new SerializedTaxonomy();
+ $serializedTaxonomyDisplayName = 'serializedTaxonomyDisplayName1493662264';
+ $serializedTaxonomy->setDisplayName($serializedTaxonomyDisplayName);
+ try {
+ $gapicClient->replaceTaxonomy($formattedName, $serializedTaxonomy);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+}