diff --git a/.kokoro/publish-docs.sh b/.kokoro/publish-docs.sh index f911d3a0..5dc060d9 100755 --- a/.kokoro/publish-docs.sh +++ b/.kokoro/publish-docs.sh @@ -13,8 +13,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -#!/bin/bash - set -eo pipefail # Disable buffering, so that the logs stream through. diff --git a/docs/index.rst b/docs/index.rst index 92a7ab29..ad554342 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,6 +1,6 @@ .. include:: README.rst - +.. include:: multiprocessing.rst v1 ------------- diff --git a/docs/multiprocessing.rst b/docs/multiprocessing.rst new file mode 100644 index 00000000..1cb29d4c --- /dev/null +++ b/docs/multiprocessing.rst @@ -0,0 +1,7 @@ +.. note:: + + Because this client uses :mod:`grpcio` library, it is safe to + share instances across threads. In multiprocessing scenarios, the best + practice is to create client instances *after* the invocation of + :func:`os.fork` by :class:`multiprocessing.Pool` or + :class:`multiprocessing.Process`. diff --git a/google/cloud/datacatalog_v1/gapic/data_catalog_client.py b/google/cloud/datacatalog_v1/gapic/data_catalog_client.py index c1cbe39b..bcf39755 100644 --- a/google/cloud/datacatalog_v1/gapic/data_catalog_client.py +++ b/google/cloud/datacatalog_v1/gapic/data_catalog_client.py @@ -270,7 +270,22 @@ def search_catalog( metadata=None, ): """ - Request message for ``CreateEntry``. + Searches Data Catalog for multiple resources like entries, tags that + match a query. + + This is a custom method + (https://cloud.google.com/apis/design/custom_methods) and does not + return the complete resource, only the resource identifier and high + level fields. Clients can subsequentally call ``Get`` methods. + + Note that Data Catalog search queries do not guarantee full recall. + Query results that match your query may not be returned, even in + subsequent result pages. Also note that results returned (and not + returned) can vary across repeated search queries. + + See `Data Catalog Search + Syntax `__ + for more information. Example: >>> from google.cloud import datacatalog_v1 @@ -298,35 +313,39 @@ def search_catalog( ... pass Args: - scope (Union[dict, ~google.cloud.datacatalog_v1.types.Scope]): Creates a field in a tag template. The user should enable the Data - Catalog API in the project identified by the ``parent`` parameter (see - `Data Catalog Resource - Project `__ - for more information). + scope (Union[dict, ~google.cloud.datacatalog_v1.types.Scope]): Required. The scope of this search request. A ``scope`` that has + empty ``include_org_ids``, ``include_project_ids`` AND false + ``include_gcp_public_datasets`` is considered invalid. Data Catalog will + return an error in such a case. If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.datacatalog_v1.types.Scope` - query (str): A ``TagTemplate``. + query (str): Required. The query string in search query syntax. The query must be + non-empty. + + Query strings can be simple as "x" or more qualified as: + + - name:x + - column:x + - description:y + + Note: Query tokens need to have a minimum of 3 characters for substring + matching to work correctly. See `Data Catalog Search + Syntax `__ + for more information. page_size (int): The maximum number of resources contained in the underlying API response. If page streaming is performed per- resource, this parameter does not affect the return value. If page streaming is performed per-page, this determines the maximum number of resources in a page. - order_by (str): Set true to use the old proto1 MessageSet wire format for - extensions. This is provided for backwards-compatibility with the - MessageSet wire format. You should not use this for any other reason: - It's less efficient, has fewer features, and is more complicated. + order_by (str): Specifies the ordering of results, currently supported + case-sensitive choices are: - The message must be defined exactly as follows: message Foo { option - message_set_wire_format = true; extensions 4 to max; } Note that the - message cannot have any defined fields; MessageSets only have - extensions. + - ``relevance``, only supports descending + - ``last_modified_timestamp [asc|desc]``, defaults to descending if not + specified - All extensions of your type must be singular messages; e.g. they cannot - be int32s, enums, or repeated messages. - - Because this is an option, the above two restrictions are not enforced - by the protocol compiler. + If not specified, defaults to ``relevance`` descending. retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. @@ -388,12 +407,25 @@ def create_entry_group( metadata=None, ): """ - Required. The name of the entry group this entry is in. Example: + Creates an EntryGroup. + + An entry group contains logically related entries together with Cloud + Identity and Access Management policies that specify the users who can + create, edit, and view entries within the entry group. + + Data Catalog automatically creates an entry group for BigQuery entries + ("@bigquery") and Pub/Sub topics ("@pubsub"). Users create their own + entry group to contain Cloud Storage fileset entries or custom type + entries, and the IAM policies associated with those entries. Entry + groups, like entries, can be searched. - - projects/{project_id}/locations/{location}/entryGroups/{entry_group_id} + A maximum of 10,000 entry groups may be created per organization across + all locations. - Note that this Entry and its child resources may not actually be stored - in the location in this name. + Users should enable the Data Catalog API in the project identified by + the ``parent`` parameter (see [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Example: >>> from google.cloud import datacatalog_v1 @@ -408,7 +440,12 @@ def create_entry_group( >>> response = client.create_entry_group(parent, entry_group_id) Args: - parent (str): Request message for ``RenameTagTemplateField``. + parent (str): Required. The name of the project this entry group is in. Example: + + - projects/{project_id}/locations/{location} + + Note that this EntryGroup and its child resources may not actually be + stored in the location in this name. entry_group_id (str): Required. The id of the entry group to create. The id must begin with a letter or underscore, contain only English letters, numbers and underscores, and be at most 64 characters. @@ -487,7 +524,8 @@ def get_entry_group( >>> response = client.get_entry_group(name) Args: - name (str): Request message for ``DeleteEntry``. + name (str): Required. The name of the entry group. For example, + ``projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}``. read_mask (Union[dict, ~google.cloud.datacatalog_v1.types.FieldMask]): The fields to return. If not set or empty, all fields are returned. If a dict is provided, it must be of the same form as the protobuf @@ -549,11 +587,11 @@ def update_entry_group( metadata=None, ): """ - The full name of the cloud resource the entry belongs to. See: - https://cloud.google.com/apis/design/resource_names#full_resource_name. - Example: - - - ``//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId`` + Updates an EntryGroup. The user should enable the Data Catalog API + in the project identified by the ``entry_group.name`` parameter (see + [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Example: >>> from google.cloud import datacatalog_v1 @@ -634,10 +672,12 @@ def delete_entry_group( metadata=None, ): """ - JSON name of this field. The value is set by protocol compiler. If - the user has set a "json_name" option on this field, that option's value - will be used. Otherwise, it's deduced from the field's name by - converting it to camelCase. + Deletes an EntryGroup. Only entry groups that do not contain entries + can be deleted. Users should enable the Data Catalog API in the project + identified by the ``name`` parameter (see [Data Catalog Resource + Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Example: >>> from google.cloud import datacatalog_v1 @@ -649,22 +689,8 @@ def delete_entry_group( >>> client.delete_entry_group(name) Args: - name (str): Identifies which part of the FileDescriptorProto was defined at this - location. - - Each element is a field number or an index. They form a path from the - root FileDescriptorProto to the place where the definition. For example, - this path: [ 4, 3, 2, 7, 1 ] refers to: file.message_type(3) // 4, 3 - .field(7) // 2, 7 .name() // 1 This is because - FileDescriptorProto.message_type has field number 4: repeated - DescriptorProto message_type = 4; and DescriptorProto.field has field - number 2: repeated FieldDescriptorProto field = 2; and - FieldDescriptorProto.name has field number 1: optional string name = 1; - - Thus, the above path gives the location of a field name. If we removed - the last element: [ 4, 3, 2, 7 ] this path refers to the whole field - declaration (from the beginning of the label to the terminating - semicolon). + name (str): Required. The name of the entry group. For example, + ``projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}``. force (bool): Optional. If true, deletes all entries in the entry group. retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will @@ -744,17 +770,10 @@ def list_entry_groups( ... pass Args: - parent (str): The resource type that the annotated field references. - - Example: - - :: + parent (str): Required. The name of the location that contains the entry groups, + which can be provided in URL format. Example: - message Subscription { - string topic = 2 [(google.api.resource_reference) = { - type: "pubsub.googleapis.com/Topic" - }]; - } + - projects/{project_id}/locations/{location} page_size (int): The maximum number of resources contained in the underlying API response. If page streaming is performed per- resource, this parameter does not affect the return value. If page @@ -834,11 +853,15 @@ def create_entry( metadata=None, ): """ - The name of the uninterpreted option. Each string represents a - segment in a dot-separated name. is_extension is true iff a segment - represents an extension (denoted with parentheses in options specs in - .proto files). E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] - } represents "foo.(bar.baz).qux". + Creates an entry. Only entries of 'FILESET' type or user-specified + type can be created. + + Users should enable the Data Catalog API in the project identified by + the ``parent`` parameter (see [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). + + A maximum of 100,000 entries may be created per entry group. Example: >>> from google.cloud import datacatalog_v1 @@ -856,19 +879,12 @@ def create_entry( >>> response = client.create_entry(parent, entry_id, entry) Args: - parent (str): The resource type of a child collection that the annotated field - references. This is useful for annotating the ``parent`` field that - doesn't have a fixed resource type. - - Example: + parent (str): Required. The name of the entry group this entry is in. Example: - :: + - projects/{project_id}/locations/{location}/entryGroups/{entry_group_id} - message ListLogEntriesRequest { - string parent = 1 [(google.api.resource_reference) = { - child_type: "logging.googleapis.com/LogEntry" - }; - } + Note that this Entry and its child resources may not actually be stored + in the location in this name. entry_id (str): Required. The id of the entry to create. entry (Union[dict, ~google.cloud.datacatalog_v1.types.Entry]): Required. The entry to create. @@ -933,13 +949,11 @@ def update_entry( metadata=None, ): """ - Updates a tag template. This method cannot be used to update the - fields of a template. The tag template fields are represented as - separate resources and should be updated using their own - create/update/delete methods. Users should enable the Data Catalog API - in the project identified by the ``tag_template.name`` parameter (see - [Data Catalog Resource Project] - (/data-catalog/docs/concepts/resource-project) for more information). + Updates an existing entry. Users should enable the Data Catalog API + in the project identified by the ``entry.name`` parameter (see [Data + Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Example: >>> from google.cloud import datacatalog_v1 @@ -956,9 +970,32 @@ def update_entry( If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.datacatalog_v1.types.Entry` - update_mask (Union[dict, ~google.cloud.datacatalog_v1.types.FieldMask]): Required. The name of the entry. Example: + update_mask (Union[dict, ~google.cloud.datacatalog_v1.types.FieldMask]): The fields to update on the entry. If absent or empty, all + modifiable fields are updated. - - projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id} + The following fields are modifiable: + + - 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 If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.datacatalog_v1.types.FieldMask` @@ -1020,8 +1057,12 @@ def delete_entry( metadata=None, ): """ - The source system of the entry. Only applicable when - ``search_result_type`` is ENTRY. + Deletes an existing entry. Only entries created through + ``CreateEntry`` method can be deleted. Users should enable the Data + Catalog API in the project identified by the ``name`` parameter (see + [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Example: >>> from google.cloud import datacatalog_v1 @@ -1033,37 +1074,9 @@ def delete_entry( >>> client.delete_entry(name) Args: - name (str): Protocol Buffers - Google's data interchange format Copyright 2008 - Google Inc. All rights reserved. - https://developers.google.com/protocol-buffers/ - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - :: - - * Redistributions of source code must retain the above copyright - - notice, this list of conditions and the following disclaimer. \* - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. \* - Neither the name of Google Inc. nor the names of its contributors may be - used to endorse or promote products derived from this software without - specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER - OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + name (str): Required. The name of the entry. Example: + + - projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id} retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. @@ -1129,22 +1142,9 @@ def get_entry( >>> response = client.get_entry(name) Args: - name (str): Whether the message is an automatically generated map entry type for - the maps field. - - For maps fields: map map_field = 1; The parsed - descriptor looks like: message MapFieldEntry { option map_entry = true; - optional KeyType key = 1; optional ValueType value = 2; } repeated - MapFieldEntry map_field = 1; - - Implementations may choose not to generate the map_entry=true message, - but use a native map in the target language to hold the keys and values. - The reflection APIs in such implementations still need to work as if the - field is a repeated message field. - - NOTE: Do not set the option in .proto files. Always use the maps syntax - instead. The option should only be implicitly set by the proto compiler - parser. + name (str): Required. The name of the entry. Example: + + - projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id} retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. @@ -1214,14 +1214,27 @@ def lookup_entry( >>> response = client.lookup_entry() Args: - linked_resource (str): Request message for ``LookupEntry``. - sql_resource (str): Output only. The resource name of the tag template field in URL - format. Example: + linked_resource (str): The full name of the Google Cloud Platform resource the Data Catalog + entry represents. See: + https://cloud.google.com/apis/design/resource_names#full_resource_name. + Full names are case-sensitive. + + Examples: + + - //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId + - //pubsub.googleapis.com/projects/projectId/topics/topicId + sql_resource (str): The SQL name of the entry. SQL names are case-sensitive. + + Examples: - - projects/{project_id}/locations/{location}/tagTemplates/{tag_template}/fields/{field} + - ``pubsub.project_id.topic_id`` + - :literal:`pubsub.project_id.`topic.id.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`` - Note that this TagTemplateField may not actually be stored in the - location in this name. + ``*_id``\ s shoud satisfy the standard SQL rules for identifiers. + https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical. retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. @@ -1299,13 +1312,19 @@ def list_entries( ... pass Args: - parent (str): Request message for ``SearchCatalog``. + parent (str): Required. The name of the entry group that contains the entries, + which can be provided in URL format. Example: + + - projects/{project_id}/locations/{location}/entryGroups/{entry_group_id} page_size (int): The maximum number of resources contained in the underlying API response. If page streaming is performed per- resource, this parameter does not affect the return value. If page streaming is performed per-page, this determines the maximum number of resources in a page. - read_mask (Union[dict, ~google.cloud.datacatalog_v1.types.FieldMask]): Request message for ``UpdateEntryGroup``. + read_mask (Union[dict, ~google.cloud.datacatalog_v1.types.FieldMask]): The fields to return for each Entry. If not set or empty, all fields + are returned. For example, setting read_mask to contain only one path + "name" will cause ListEntries to return a list of Entries with only + "name" field. If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.datacatalog_v1.types.FieldMask` @@ -1383,9 +1402,11 @@ def create_tag_template( metadata=None, ): """ - The resource has one pattern, but the API owner expects to add more - later. (This is the inverse of ORIGINALLY_SINGLE_PATTERN, and prevents - that from being necessary once there are multiple patterns.) + Creates a tag template. The user should enable the Data Catalog API + in the project identified by the ``parent`` parameter (see `Data Catalog + Resource + Project `__ + for more information). Example: >>> from google.cloud import datacatalog_v1 @@ -1403,7 +1424,12 @@ def create_tag_template( >>> response = client.create_tag_template(parent, tag_template_id, tag_template) Args: - parent (str): Request message for ``GetEntry``. + parent (str): Required. The name of the project and the template location + `region `__. + + Example: + + - projects/{project_id}/locations/us-central1 tag_template_id (str): Required. The id of the tag template to create. tag_template (Union[dict, ~google.cloud.datacatalog_v1.types.TagTemplate]): Required. The tag template to create. @@ -1479,8 +1505,9 @@ def get_tag_template( >>> response = client.get_tag_template(name) Args: - name (str): Spec of a BigQuery table. This field should only be populated if - ``table_source_type`` is ``BIGQUERY_TABLE``. + name (str): Required. The name of the tag template. Example: + + - projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id} retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. @@ -1538,7 +1565,14 @@ def update_tag_template( metadata=None, ): """ - Request message for ``UpdateTagTemplateField``. + Updates a tag template. This method cannot be used to update the + fields of a template. The tag template fields are represented as + separate resources and should be updated using their own + create/update/delete methods. Users should enable the Data Catalog API + in the project identified by the ``tag_template.name`` parameter (see + [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Example: >>> from google.cloud import datacatalog_v1 @@ -1555,9 +1589,13 @@ def update_tag_template( If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.datacatalog_v1.types.TagTemplate` - update_mask (Union[dict, ~google.cloud.datacatalog_v1.types.FieldMask]): Number of results in the search page. If <=0 then defaults to 10. - Max limit for page_size is 1000. Throws an invalid argument for - page_size > 1000. + update_mask (Union[dict, ~google.cloud.datacatalog_v1.types.FieldMask]): The field mask specifies the parts of the template to overwrite. + + Allowed fields: + + - ``display_name`` + + If absent or empty, all of the allowed fields above will be updated. If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.datacatalog_v1.types.FieldMask` @@ -1620,16 +1658,11 @@ def delete_tag_template( metadata=None, ): """ - The resource type. It must be in the format of - {service_name}/{resource_type_kind}. The ``resource_type_kind`` must be - singular and must not include version numbers. - - Example: ``storage.googleapis.com/Bucket`` - - The value of the resource_type_kind must follow the regular expression - /[A-Za-z][a-zA-Z0-9]+/. It should start with an upper case character and - should use PascalCase (UpperCamelCase). The maximum number of characters - allowed for the ``resource_type_kind`` is 100. + Deletes a tag template and all tags using the template. Users should + enable the Data Catalog API in the project identified by the ``name`` + parameter (see [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Example: >>> from google.cloud import datacatalog_v1 @@ -1644,46 +1677,12 @@ def delete_tag_template( >>> client.delete_tag_template(name, force) Args: - name (str): If this SourceCodeInfo represents a complete declaration, these are - any comments appearing before and after the declaration which appear to - be attached to the declaration. - - A series of line comments appearing on consecutive lines, with no other - tokens appearing on those lines, will be treated as a single comment. - - leading_detached_comments will keep paragraphs of comments that appear - before (but not connected to) the current element. Each paragraph, - separated by empty lines, will be one comment element in the repeated - field. - - Only the comment content is provided; comment markers (e.g. //) are - stripped out. For block comments, leading whitespace and an asterisk - will be stripped from the beginning of each line other than the first. - Newlines are included in the output. - - Examples: - - optional int32 foo = 1; // Comment attached to foo. // Comment attached - to bar. optional int32 bar = 2; - - optional string baz = 3; // Comment attached to baz. // Another line - attached to baz. - - // Comment attached to qux. // // Another line attached to qux. optional - double qux = 4; - - // Detached comment for corge. This is not leading or trailing comments - // to qux or corge because there are blank lines separating it from // - both. - - // Detached comment for corge paragraph 2. + name (str): Required. The name of the tag template to delete. Example: - optional string corge = 5; /\* Block comment attached \* to corge. - Leading asterisks \* will be removed. */ /* Block comment attached to \* - grault. \*/ optional int32 grault = 6; - - // ignored detached comments. - force (bool): Response message for ``ListTags``. + - projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id} + force (bool): Required. Currently, this field must always be set to ``true``. This + confirms the deletion of any possible tags using this template. + ``force = false`` will be supported in the future. retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. @@ -1739,9 +1738,11 @@ def create_tag_template_field( metadata=None, ): """ - Required. The name of the tag template field. Example: - - - projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id} + Creates a field in a tag template. The user should enable the Data + Catalog API in the project identified by the ``parent`` parameter (see + `Data Catalog Resource + Project `__ + for more information). Example: >>> from google.cloud import datacatalog_v1 @@ -1759,15 +1760,17 @@ def create_tag_template_field( >>> response = client.create_tag_template_field(parent, tag_template_field_id, tag_template_field) Args: - parent (str): Required. The name of the entry group that contains the entries, - which can be provided in URL format. Example: + parent (str): Required. The name of the project and the template location + `region `__. - - projects/{project_id}/locations/{location}/entryGroups/{entry_group_id} - tag_template_field_id (str): Output only. If the table is a dated shard, i.e., with name pattern - ``[prefix]YYYYMMDD``, ``grouped_entry`` 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. + Example: + + - projects/{project_id}/locations/us-central1/tagTemplates/{tag_template_id} + tag_template_field_id (str): Required. The ID of the tag template field to create. 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. tag_template_field (Union[dict, ~google.cloud.datacatalog_v1.types.TagTemplateField]): Required. The tag template field to create. If a dict is provided, it must be of the same form as the protobuf @@ -1834,7 +1837,12 @@ def update_tag_template_field( metadata=None, ): """ - Request message for ``SetIamPolicy`` method. + Updates a field in a tag template. This method cannot be used to + update the field type. Users should enable the Data Catalog API in the + project identified by the ``name`` parameter (see [Data Catalog Resource + Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Example: >>> from google.cloud import datacatalog_v1 @@ -1849,18 +1857,27 @@ def update_tag_template_field( >>> response = client.update_tag_template_field(name, tag_template_field) Args: - name (str): This field indicates the entry's source system that Data Catalog - does not integrate with. ``user_specified_system`` strings must begin - with a letter or underscore and can only contain letters, numbers, and - underscores; are case insensitive; must be at least 1 character and at - most 64 characters long. + name (str): Required. The name of the tag template field. Example: + + - projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id} tag_template_field (Union[dict, ~google.cloud.datacatalog_v1.types.TagTemplateField]): Required. The template to update. If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.datacatalog_v1.types.TagTemplateField` - update_mask (Union[dict, ~google.cloud.datacatalog_v1.types.FieldMask]): Required. The name of the tag template. Example: + update_mask (Union[dict, ~google.cloud.datacatalog_v1.types.FieldMask]): Optional. The field mask specifies the parts of the template to be + updated. Allowed fields: - - projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id} + - ``display_name`` + - ``type.enum_type`` + - ``is_required`` + + If ``update_mask`` is not set or empty, all of the allowed fields above + will be updated. + + When updating an enum type, the provided values will be merged with the + existing values. Therefore, enum values can only be added, existing enum + values cannot be deleted nor renamed. Updating a template field from + optional to required is NOT allowed. If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.datacatalog_v1.types.FieldMask` @@ -1923,12 +1940,11 @@ def rename_tag_template_field( metadata=None, ): """ - The resource name of the tag in URL format. Example: - - - projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id} - - where ``tag_id`` is a system-generated identifier. Note that this Tag - may not actually be stored in the location in this name. + Renames a field in a tag template. The user should enable the Data + Catalog API in the project identified by the ``name`` parameter (see + `Data Catalog Resource + Project `__ + for more information). Example: >>> from google.cloud import datacatalog_v1 @@ -1943,27 +1959,11 @@ def rename_tag_template_field( >>> response = client.rename_tag_template_field(name, new_tag_template_field_id) Args: - name (str): The maximum number of items to return. Default is 10. Max limit is - 1000. Throws an invalid argument for ``page_size > 1000``. - new_tag_template_field_id (str): Gets the access control policy for a resource. A ``NOT_FOUND`` error - is returned if the resource does not exist. An empty policy is returned - if the resource exists but does not have a policy set on it. - - Supported resources are: - - - Tag templates. - - Entries. - - Entry groups. Note, this method cannot be used to manage policies for - BigQuery, Pub/Sub and any external Google Cloud Platform resources - synced to Data Catalog. - - Callers must have following Google IAM permission - - - ``datacatalog.tagTemplates.getIamPolicy`` to get policies on tag - templates. - - ``datacatalog.entries.getIamPolicy`` to get policies on entries. - - ``datacatalog.entryGroups.getIamPolicy`` to get policies on entry - groups. + name (str): Required. The name of the tag template. Example: + + - projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id} + new_tag_template_field_id (str): Required. The new ID of this tag template field. For example, + ``my_new_field``. retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. @@ -2023,30 +2023,11 @@ def delete_tag_template_field( metadata=None, ): """ - Optional. The relative resource name pattern associated with this - resource type. The DNS prefix of the full resource name shouldn't be - specified here. - - The path pattern must follow the syntax, which aligns with HTTP binding - syntax: - - :: - - Template = Segment { "/" Segment } ; - Segment = LITERAL | Variable ; - Variable = "{" LITERAL "}" ; - - Examples: - - :: - - - "projects/{project}/topics/{topic}" - - "projects/{project}/knowledgeBases/{knowledge_base}" - - The components in braces correspond to the IDs for each resource in the - hierarchy. It is expected that, if multiple patterns are provided, the - same component name (e.g. "project") refers to IDs of the same type of - resource. + Deletes a field in a tag template and all uses of that field. Users + should enable the Data Catalog API in the project identified by the + ``name`` parameter (see [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Example: >>> from google.cloud import datacatalog_v1 @@ -2061,234 +2042,12 @@ def delete_tag_template_field( >>> client.delete_tag_template_field(name, force) Args: - name (str): ``FieldMask`` represents a set of symbolic field paths, for example: - - :: - - paths: "f.a" - paths: "f.b.d" - - Here ``f`` represents a field in some root message, ``a`` and ``b`` - fields in the message found in ``f``, and ``d`` a field found in the - message in ``f.b``. - - Field masks are used to specify a subset of fields that should be - returned by a get operation or modified by an update operation. Field - masks also have a custom JSON encoding (see below). - - # Field Masks in Projections - - When used in the context of a projection, a response message or - sub-message is filtered by the API to only contain those fields as - specified in the mask. For example, if the mask in the previous example - is applied to a response message as follows: - - :: - - f { - a : 22 - b { - d : 1 - x : 2 - } - y : 13 - } - z: 8 - - The result will not contain specific values for fields x,y and z (their - value will be set to the default, and omitted in proto text output): - - :: - - f { - a : 22 - b { - d : 1 - } - } - - A repeated field is not allowed except at the last position of a paths - string. - - If a FieldMask object is not present in a get operation, the operation - applies to all fields (as if a FieldMask of all fields had been - specified). - - Note that a field mask does not necessarily apply to the top-level - response message. In case of a REST get operation, the field mask - applies directly to the response, but in case of a REST list operation, - the mask instead applies to each individual message in the returned - resource list. In case of a REST custom method, other definitions may be - used. Where the mask applies will be clearly documented together with - its declaration in the API. In any case, the effect on the returned - resource/resources is required behavior for APIs. - - # Field Masks in Update Operations - - A field mask in update operations specifies which fields of the targeted - resource are going to be updated. The API is required to only change the - values of the fields as specified in the mask and leave the others - untouched. If a resource is passed in to describe the updated values, - the API ignores the values of all fields not covered by the mask. - - If a repeated field is specified for an update operation, new values - will be appended to the existing repeated field in the target resource. - Note that a repeated field is only allowed in the last position of a - ``paths`` string. - - If a sub-message is specified in the last position of the field mask for - an update operation, then new value will be merged into the existing - sub-message in the target resource. - - For example, given the target message: - - :: - - f { - b { - d: 1 - x: 2 - } - c: [1] - } - - And an update message: - - :: - - f { - b { - d: 10 - } - c: [2] - } - - then if the field mask is: - - paths: ["f.b", "f.c"] - - then the result will be: - - :: - - f { - b { - d: 10 - x: 2 - } - c: [1, 2] - } - - An implementation may provide options to override this default behavior - for repeated and message fields. - - In order to reset a field's value to the default, the field must be in - the mask and set to the default value in the provided resource. Hence, - in order to reset all fields of a resource, provide a default instance - of the resource and set all fields in the mask, or do not provide a mask - as described below. - - If a field mask is not present on update, the operation applies to all - fields (as if a field mask of all fields has been specified). Note that - in the presence of schema evolution, this may mean that fields the - client does not know and has therefore not filled into the request will - be reset to their default. If this is unwanted behavior, a specific - service may require a client to always specify a field mask, producing - an error if not. - - As with get operations, the location of the resource which describes the - updated values in the request message depends on the operation kind. In - any case, the effect of the field mask is required to be honored by the - API. - - ## Considerations for HTTP REST - - The HTTP kind of an update operation which uses a field mask must be set - to PATCH instead of PUT in order to satisfy HTTP semantics (PUT must - only be used for full updates). - - # JSON Encoding of Field Masks - - In JSON, a field mask is encoded as a single string where paths are - separated by a comma. Fields name in each path are converted to/from - lower-camel naming conventions. - - As an example, consider the following message declarations: - - :: - - message Profile { - User user = 1; - Photo photo = 2; - } - message User { - string display_name = 1; - string address = 2; - } - - In proto a field mask for ``Profile`` may look as such: - - :: + name (str): Required. The name of the tag template field to delete. Example: - mask { - paths: "user.display_name" - paths: "photo" - } - - In JSON, the same mask is represented as below: - - :: - - { - mask: "user.displayName,photo" - } - - # Field Masks and Oneof Fields - - Field masks treat fields in oneofs just as regular fields. Consider the - following message: - - :: - - message SampleMessage { - oneof test_oneof { - string name = 4; - SubMessage sub_message = 9; - } - } - - The field mask can be: - - :: - - mask { - paths: "name" - } - - Or: - - :: - - mask { - paths: "sub_message" - } - - Note that oneof type names ("test_oneof" in this case) cannot be used in - paths. - - ## Field Mask Verification - - The implementation of any API method which has a FieldMask type field in - the request should verify the included field paths, and return an - ``INVALID_ARGUMENT`` error if any path is unmappable. - force (bool): Creates an entry. Only entries of 'FILESET' type or user-specified - type can be created. - - Users should enable the Data Catalog API in the project identified by - the ``parent`` parameter (see [Data Catalog Resource Project] - (/data-catalog/docs/concepts/resource-project) for more information). - - A maximum of 100,000 entries may be created per entry group. + - projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id} + force (bool): Required. Currently, this field must always be set to ``true``. This + confirms the deletion of this field from any tags using this field. + ``force = false`` will be supported in the future. retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. @@ -2343,10 +2102,12 @@ def create_tag( metadata=None, ): """ - Deletes a tag template and all tags using the template. Users should - enable the Data Catalog API in the project identified by the ``name`` - parameter (see [Data Catalog Resource Project] - (/data-catalog/docs/concepts/resource-project) for more information). + Creates a tag on an ``Entry``. Note: The project identified by the + ``parent`` parameter for the + `tag `__ + and the `tag + template `__ + used to create the tag must be from the same organization. Example: >>> from google.cloud import datacatalog_v1 @@ -2361,17 +2122,13 @@ def create_tag( >>> response = client.create_tag(parent, tag) Args: - parent (str): A generic empty message that you can re-use to avoid defining - duplicated empty messages in your APIs. A typical example is to use it - as the request or the response type of an API method. For instance: + parent (str): Required. The name of the resource to attach this tag to. Tags can + be attached to Entries. Example: - :: - - service Foo { - rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); - } + - projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id} - The JSON representation for ``Empty`` is empty JSON object ``{}``. + Note that this Tag and its child resources may not actually be stored in + the location in this name. tag (Union[dict, ~google.cloud.datacatalog_v1.types.Tag]): Required. The tag to create. If a dict is provided, it must be of the same form as the protobuf @@ -2450,7 +2207,9 @@ def update_tag( If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.datacatalog_v1.types.Tag` - update_mask (Union[dict, ~google.cloud.datacatalog_v1.types.FieldMask]): Lists the tags on an ``Entry``. + update_mask (Union[dict, ~google.cloud.datacatalog_v1.types.FieldMask]): The fields to update on the Tag. If absent or empty, all modifiable + fields are updated. Currently the only modifiable field is the field + ``fields``. If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.datacatalog_v1.types.FieldMask` @@ -2522,15 +2281,9 @@ def delete_tag( >>> client.delete_tag(name) Args: - name (str): The full name of the Google Cloud Platform resource the Data Catalog - entry represents. See: - https://cloud.google.com/apis/design/resource_names#full_resource_name. - Full names are case-sensitive. - - Examples: + name (str): Required. The name of the tag to delete. Example: - - //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId - - //pubsub.googleapis.com/projects/projectId/topics/topicId + - projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id} retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. @@ -2585,18 +2338,7 @@ def list_tags( metadata=None, ): """ - The SQL name of the entry. SQL names are case-sensitive. - - Examples: - - - ``cloud_pubsub.project_id.topic_id`` - - :literal:`pubsub.project_id.`topic.id.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`` - - ``*_id``\ s shoud satisfy the standard SQL rules for identifiers. - https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical. + Lists the tags on an ``Entry``. Example: >>> from google.cloud import datacatalog_v1 @@ -2620,8 +2362,13 @@ def list_tags( ... pass Args: - parent (str): Specification that applies to a BigQuery table. This is only valid - on entries of type ``TABLE``. + parent (str): Required. The name of the Data Catalog resource to list the tags of. + The resource could be an ``Entry`` or an ``EntryGroup``. + + Examples: + + - projects/{project_id}/locations/{location}/entryGroups/{entry_group_id} + - projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id} page_size (int): The maximum number of resources contained in the underlying API response. If page streaming is performed per- resource, this parameter does not affect the return value. If page @@ -2698,7 +2445,22 @@ def set_iam_policy( metadata=None, ): """ - ``Tag`` details. + Sets the access control policy for a resource. Replaces any existing + policy. Supported resources are: + + - Tag templates. + - Entries. + - Entry groups. Note, this method cannot be used to manage policies for + BigQuery, Pub/Sub and any external Google Cloud Platform resources + synced to Data Catalog. + + Callers must have following Google IAM permission + + - ``datacatalog.tagTemplates.setIamPolicy`` to set policies on tag + templates. + - ``datacatalog.entries.setIamPolicy`` to set policies on entries. + - ``datacatalog.entryGroups.setIamPolicy`` to set policies on entry + groups. Example: >>> from google.cloud import datacatalog_v1 @@ -2716,11 +2478,10 @@ def set_iam_policy( Args: resource (str): REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field. - policy (Union[dict, ~google.cloud.datacatalog_v1.types.Policy]): Deletes an EntryGroup. Only entry groups that do not contain entries - can be deleted. Users should enable the Data Catalog API in the project - identified by the ``name`` parameter (see [Data Catalog Resource - Project] (/data-catalog/docs/concepts/resource-project) for more - information). + policy (Union[dict, ~google.cloud.datacatalog_v1.types.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. If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.datacatalog_v1.types.Policy` @@ -2781,7 +2542,25 @@ def get_iam_policy( metadata=None, ): """ - Request message for ``UpdateEntry``. + Gets the access control policy for a resource. A ``NOT_FOUND`` error + is returned if the resource does not exist. An empty policy is returned + if the resource exists but does not have a policy set on it. + + Supported resources are: + + - Tag templates. + - Entries. + - Entry groups. Note, this method cannot be used to manage policies for + BigQuery, Pub/Sub and any external Google Cloud Platform resources + synced to Data Catalog. + + Callers must have following Google IAM permission + + - ``datacatalog.tagTemplates.getIamPolicy`` to get policies on tag + templates. + - ``datacatalog.entries.getIamPolicy`` to get policies on entries. + - ``datacatalog.entryGroups.getIamPolicy`` to get policies on entry + groups. Example: >>> from google.cloud import datacatalog_v1 @@ -2796,8 +2575,8 @@ def get_iam_policy( Args: resource (str): REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field. - options_ (Union[dict, ~google.cloud.datacatalog_v1.types.GetPolicyOptions]): For extensions, this is the name of the type being extended. It is - resolved in the same manner as type_name. + options_ (Union[dict, ~google.cloud.datacatalog_v1.types.GetPolicyOptions]): OPTIONAL: A ``GetPolicyOptions`` object for specifying options to + ``GetIamPolicy``. This field is only used by Cloud IAM. If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.datacatalog_v1.types.GetPolicyOptions` @@ -2860,10 +2639,20 @@ def test_iam_permissions( metadata=None, ): """ - 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. + Returns the caller's permissions on a resource. If the resource does + not exist, an empty set of permissions is returned (We don't return a + ``NOT_FOUND`` error). + + Supported resources are: + + - Tag templates. + - Entries. + - Entry groups. Note, this method cannot be used to manage policies for + BigQuery, Pub/Sub and any external Google Cloud Platform resources + synced to Data Catalog. + + A caller is not required to have Google IAM permission to make this + request. Example: >>> from google.cloud import datacatalog_v1 @@ -2881,8 +2670,10 @@ def test_iam_permissions( Args: resource (str): REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field. - permissions (list[str]): An annotation that describes a resource definition, see - ``ResourceDescriptor``. + permissions (list[str]): 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 `__. retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. diff --git a/google/cloud/datacatalog_v1/gapic/enums.py b/google/cloud/datacatalog_v1/gapic/enums.py index 93befd3b..b5c584ba 100644 --- a/google/cloud/datacatalog_v1/gapic/enums.py +++ b/google/cloud/datacatalog_v1/gapic/enums.py @@ -21,7 +21,9 @@ class EntryType(enum.IntEnum): """ - Request message for ``DeleteTag``. + Entry resources in Data Catalog can be of different types e.g. a + BigQuery Table entry is of type ``TABLE``. This enum describes all the + possible types Data Catalog contains. Attributes: ENTRY_TYPE_UNSPECIFIED (int): Default unknown type. @@ -64,16 +66,9 @@ class SearchResultType(enum.IntEnum): Attributes: SEARCH_RESULT_TYPE_UNSPECIFIED (int): Default unknown type. - ENTRY (int): Request message for ``GetEntryGroup``. - TAG_TEMPLATE (int): An indicator of the behavior of a given field (for example, that a - field is required in requests, or given as output but ignored as input). - This **does not** change the behavior in protocol buffers itself; it - only denotes the behavior and may affect how API tooling handles the - field. - - Note: This enum **may** receive new values in the future. - ENTRY_GROUP (int): Required. The name of the entry group. For example, - ``projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}``. + ENTRY (int): An ``Entry``. + TAG_TEMPLATE (int): A ``TagTemplate``. + ENTRY_GROUP (int): An ``EntryGroup``. """ SEARCH_RESULT_TYPE_UNSPECIFIED = 0 diff --git a/google/cloud/datacatalog_v1/gapic/transports/data_catalog_grpc_transport.py b/google/cloud/datacatalog_v1/gapic/transports/data_catalog_grpc_transport.py index 5f3dbea4..df44fac7 100644 --- a/google/cloud/datacatalog_v1/gapic/transports/data_catalog_grpc_transport.py +++ b/google/cloud/datacatalog_v1/gapic/transports/data_catalog_grpc_transport.py @@ -111,7 +111,22 @@ def channel(self): def search_catalog(self): """Return the gRPC stub for :meth:`DataCatalogClient.search_catalog`. - Request message for ``CreateEntry``. + Searches Data Catalog for multiple resources like entries, tags that + match a query. + + This is a custom method + (https://cloud.google.com/apis/design/custom_methods) and does not + return the complete resource, only the resource identifier and high + level fields. Clients can subsequentally call ``Get`` methods. + + Note that Data Catalog search queries do not guarantee full recall. + Query results that match your query may not be returned, even in + subsequent result pages. Also note that results returned (and not + returned) can vary across repeated search queries. + + See `Data Catalog Search + Syntax `__ + for more information. Returns: Callable: A callable which accepts the appropriate @@ -124,12 +139,25 @@ def search_catalog(self): def create_entry_group(self): """Return the gRPC stub for :meth:`DataCatalogClient.create_entry_group`. - Required. The name of the entry group this entry is in. Example: + Creates an EntryGroup. + + An entry group contains logically related entries together with Cloud + Identity and Access Management policies that specify the users who can + create, edit, and view entries within the entry group. - - projects/{project_id}/locations/{location}/entryGroups/{entry_group_id} + Data Catalog automatically creates an entry group for BigQuery entries + ("@bigquery") and Pub/Sub topics ("@pubsub"). Users create their own + entry group to contain Cloud Storage fileset entries or custom type + entries, and the IAM policies associated with those entries. Entry + groups, like entries, can be searched. - Note that this Entry and its child resources may not actually be stored - in the location in this name. + A maximum of 10,000 entry groups may be created per organization across + all locations. + + Users should enable the Data Catalog API in the project identified by + the ``parent`` parameter (see [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Returns: Callable: A callable which accepts the appropriate @@ -155,11 +183,11 @@ def get_entry_group(self): def update_entry_group(self): """Return the gRPC stub for :meth:`DataCatalogClient.update_entry_group`. - The full name of the cloud resource the entry belongs to. See: - https://cloud.google.com/apis/design/resource_names#full_resource_name. - Example: - - - ``//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId`` + Updates an EntryGroup. The user should enable the Data Catalog API + in the project identified by the ``entry_group.name`` parameter (see + [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Returns: Callable: A callable which accepts the appropriate @@ -172,10 +200,12 @@ def update_entry_group(self): def delete_entry_group(self): """Return the gRPC stub for :meth:`DataCatalogClient.delete_entry_group`. - JSON name of this field. The value is set by protocol compiler. If - the user has set a "json_name" option on this field, that option's value - will be used. Otherwise, it's deduced from the field's name by - converting it to camelCase. + Deletes an EntryGroup. Only entry groups that do not contain entries + can be deleted. Users should enable the Data Catalog API in the project + identified by the ``name`` parameter (see [Data Catalog Resource + Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Returns: Callable: A callable which accepts the appropriate @@ -201,11 +231,15 @@ def list_entry_groups(self): def create_entry(self): """Return the gRPC stub for :meth:`DataCatalogClient.create_entry`. - The name of the uninterpreted option. Each string represents a - segment in a dot-separated name. is_extension is true iff a segment - represents an extension (denoted with parentheses in options specs in - .proto files). E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] - } represents "foo.(bar.baz).qux". + Creates an entry. Only entries of 'FILESET' type or user-specified + type can be created. + + Users should enable the Data Catalog API in the project identified by + the ``parent`` parameter (see [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). + + A maximum of 100,000 entries may be created per entry group. Returns: Callable: A callable which accepts the appropriate @@ -218,13 +252,11 @@ def create_entry(self): def update_entry(self): """Return the gRPC stub for :meth:`DataCatalogClient.update_entry`. - Updates a tag template. This method cannot be used to update the - fields of a template. The tag template fields are represented as - separate resources and should be updated using their own - create/update/delete methods. Users should enable the Data Catalog API - in the project identified by the ``tag_template.name`` parameter (see - [Data Catalog Resource Project] - (/data-catalog/docs/concepts/resource-project) for more information). + Updates an existing entry. Users should enable the Data Catalog API + in the project identified by the ``entry.name`` parameter (see [Data + Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Returns: Callable: A callable which accepts the appropriate @@ -237,8 +269,12 @@ def update_entry(self): def delete_entry(self): """Return the gRPC stub for :meth:`DataCatalogClient.delete_entry`. - The source system of the entry. Only applicable when - ``search_result_type`` is ENTRY. + Deletes an existing entry. Only entries created through + ``CreateEntry`` method can be deleted. Users should enable the Data + Catalog API in the project identified by the ``name`` parameter (see + [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Returns: Callable: A callable which accepts the appropriate @@ -292,9 +328,11 @@ def list_entries(self): def create_tag_template(self): """Return the gRPC stub for :meth:`DataCatalogClient.create_tag_template`. - The resource has one pattern, but the API owner expects to add more - later. (This is the inverse of ORIGINALLY_SINGLE_PATTERN, and prevents - that from being necessary once there are multiple patterns.) + Creates a tag template. The user should enable the Data Catalog API + in the project identified by the ``parent`` parameter (see `Data Catalog + Resource + Project `__ + for more information). Returns: Callable: A callable which accepts the appropriate @@ -320,7 +358,14 @@ def get_tag_template(self): def update_tag_template(self): """Return the gRPC stub for :meth:`DataCatalogClient.update_tag_template`. - Request message for ``UpdateTagTemplateField``. + Updates a tag template. This method cannot be used to update the + fields of a template. The tag template fields are represented as + separate resources and should be updated using their own + create/update/delete methods. Users should enable the Data Catalog API + in the project identified by the ``tag_template.name`` parameter (see + [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Returns: Callable: A callable which accepts the appropriate @@ -333,16 +378,11 @@ def update_tag_template(self): def delete_tag_template(self): """Return the gRPC stub for :meth:`DataCatalogClient.delete_tag_template`. - The resource type. It must be in the format of - {service_name}/{resource_type_kind}. The ``resource_type_kind`` must be - singular and must not include version numbers. - - Example: ``storage.googleapis.com/Bucket`` - - The value of the resource_type_kind must follow the regular expression - /[A-Za-z][a-zA-Z0-9]+/. It should start with an upper case character and - should use PascalCase (UpperCamelCase). The maximum number of characters - allowed for the ``resource_type_kind`` is 100. + Deletes a tag template and all tags using the template. Users should + enable the Data Catalog API in the project identified by the ``name`` + parameter (see [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Returns: Callable: A callable which accepts the appropriate @@ -355,9 +395,11 @@ def delete_tag_template(self): def create_tag_template_field(self): """Return the gRPC stub for :meth:`DataCatalogClient.create_tag_template_field`. - Required. The name of the tag template field. Example: - - - projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id} + Creates a field in a tag template. The user should enable the Data + Catalog API in the project identified by the ``parent`` parameter (see + `Data Catalog Resource + Project `__ + for more information). Returns: Callable: A callable which accepts the appropriate @@ -370,7 +412,12 @@ def create_tag_template_field(self): def update_tag_template_field(self): """Return the gRPC stub for :meth:`DataCatalogClient.update_tag_template_field`. - Request message for ``SetIamPolicy`` method. + Updates a field in a tag template. This method cannot be used to + update the field type. Users should enable the Data Catalog API in the + project identified by the ``name`` parameter (see [Data Catalog Resource + Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Returns: Callable: A callable which accepts the appropriate @@ -383,12 +430,11 @@ def update_tag_template_field(self): def rename_tag_template_field(self): """Return the gRPC stub for :meth:`DataCatalogClient.rename_tag_template_field`. - The resource name of the tag in URL format. Example: - - - projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id} - - where ``tag_id`` is a system-generated identifier. Note that this Tag - may not actually be stored in the location in this name. + Renames a field in a tag template. The user should enable the Data + Catalog API in the project identified by the ``name`` parameter (see + `Data Catalog Resource + Project `__ + for more information). Returns: Callable: A callable which accepts the appropriate @@ -401,30 +447,11 @@ def rename_tag_template_field(self): def delete_tag_template_field(self): """Return the gRPC stub for :meth:`DataCatalogClient.delete_tag_template_field`. - Optional. The relative resource name pattern associated with this - resource type. The DNS prefix of the full resource name shouldn't be - specified here. - - The path pattern must follow the syntax, which aligns with HTTP binding - syntax: - - :: - - Template = Segment { "/" Segment } ; - Segment = LITERAL | Variable ; - Variable = "{" LITERAL "}" ; - - Examples: - - :: - - - "projects/{project}/topics/{topic}" - - "projects/{project}/knowledgeBases/{knowledge_base}" - - The components in braces correspond to the IDs for each resource in the - hierarchy. It is expected that, if multiple patterns are provided, the - same component name (e.g. "project") refers to IDs of the same type of - resource. + Deletes a field in a tag template and all uses of that field. Users + should enable the Data Catalog API in the project identified by the + ``name`` parameter (see [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Returns: Callable: A callable which accepts the appropriate @@ -437,10 +464,12 @@ def delete_tag_template_field(self): def create_tag(self): """Return the gRPC stub for :meth:`DataCatalogClient.create_tag`. - Deletes a tag template and all tags using the template. Users should - enable the Data Catalog API in the project identified by the ``name`` - parameter (see [Data Catalog Resource Project] - (/data-catalog/docs/concepts/resource-project) for more information). + Creates a tag on an ``Entry``. Note: The project identified by the + ``parent`` parameter for the + `tag `__ + and the `tag + template `__ + used to create the tag must be from the same organization. Returns: Callable: A callable which accepts the appropriate @@ -479,18 +508,7 @@ def delete_tag(self): def list_tags(self): """Return the gRPC stub for :meth:`DataCatalogClient.list_tags`. - The SQL name of the entry. SQL names are case-sensitive. - - Examples: - - - ``cloud_pubsub.project_id.topic_id`` - - :literal:`pubsub.project_id.`topic.id.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`` - - ``*_id``\ s shoud satisfy the standard SQL rules for identifiers. - https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical. + Lists the tags on an ``Entry``. Returns: Callable: A callable which accepts the appropriate @@ -503,7 +521,22 @@ def list_tags(self): def set_iam_policy(self): """Return the gRPC stub for :meth:`DataCatalogClient.set_iam_policy`. - ``Tag`` details. + Sets the access control policy for a resource. Replaces any existing + policy. Supported resources are: + + - Tag templates. + - Entries. + - Entry groups. Note, this method cannot be used to manage policies for + BigQuery, Pub/Sub and any external Google Cloud Platform resources + synced to Data Catalog. + + Callers must have following Google IAM permission + + - ``datacatalog.tagTemplates.setIamPolicy`` to set policies on tag + templates. + - ``datacatalog.entries.setIamPolicy`` to set policies on entries. + - ``datacatalog.entryGroups.setIamPolicy`` to set policies on entry + groups. Returns: Callable: A callable which accepts the appropriate @@ -516,7 +549,25 @@ def set_iam_policy(self): def get_iam_policy(self): """Return the gRPC stub for :meth:`DataCatalogClient.get_iam_policy`. - Request message for ``UpdateEntry``. + Gets the access control policy for a resource. A ``NOT_FOUND`` error + is returned if the resource does not exist. An empty policy is returned + if the resource exists but does not have a policy set on it. + + Supported resources are: + + - Tag templates. + - Entries. + - Entry groups. Note, this method cannot be used to manage policies for + BigQuery, Pub/Sub and any external Google Cloud Platform resources + synced to Data Catalog. + + Callers must have following Google IAM permission + + - ``datacatalog.tagTemplates.getIamPolicy`` to get policies on tag + templates. + - ``datacatalog.entries.getIamPolicy`` to get policies on entries. + - ``datacatalog.entryGroups.getIamPolicy`` to get policies on entry + groups. Returns: Callable: A callable which accepts the appropriate @@ -529,10 +580,20 @@ def get_iam_policy(self): def test_iam_permissions(self): """Return the gRPC stub for :meth:`DataCatalogClient.test_iam_permissions`. - 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. + Returns the caller's permissions on a resource. If the resource does + not exist, an empty set of permissions is returned (We don't return a + ``NOT_FOUND`` error). + + Supported resources are: + + - Tag templates. + - Entries. + - Entry groups. Note, this method cannot be used to manage policies for + BigQuery, Pub/Sub and any external Google Cloud Platform resources + synced to Data Catalog. + + A caller is not required to have Google IAM permission to make this + request. Returns: Callable: A callable which accepts the appropriate diff --git a/google/cloud/datacatalog_v1/proto/datacatalog_pb2.py b/google/cloud/datacatalog_v1/proto/datacatalog_pb2.py index bdc6bdd5..cc04fc45 100644 --- a/google/cloud/datacatalog_v1/proto/datacatalog_pb2.py +++ b/google/cloud/datacatalog_v1/proto/datacatalog_pb2.py @@ -49,7 +49,7 @@ package="google.cloud.datacatalog.v1", syntax="proto3", serialized_options=b"\n\037com.google.cloud.datacatalog.v1P\001ZFgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1;datacatalog\370\001\001\252\002\033Google.Cloud.DataCatalog.V1\312\002\033Google\\Cloud\\DataCatalog\\V1\352\002\036Google::Cloud::DataCatalog::V1", - serialized_pb=b'\n3google/cloud/datacatalog_v1/proto/datacatalog.proto\x12\x1bgoogle.cloud.datacatalog.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a.google/cloud/datacatalog_v1/proto/common.proto\x1a\x38google/cloud/datacatalog_v1/proto/gcs_fileset_spec.proto\x1a.google/cloud/datacatalog_v1/proto/schema.proto\x1a.google/cloud/datacatalog_v1/proto/search.proto\x1a\x32google/cloud/datacatalog_v1/proto/table_spec.proto\x1a,google/cloud/datacatalog_v1/proto/tags.proto\x1a\x32google/cloud/datacatalog_v1/proto/timestamps.proto\x1a\x1egoogle/iam/v1/iam_policy.proto\x1a\x1agoogle/iam/v1/policy.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto"\x99\x02\n\x14SearchCatalogRequest\x12K\n\x05scope\x18\x06 \x01(\x0b\x32\x37.google.cloud.datacatalog.v1.SearchCatalogRequest.ScopeB\x03\xe0\x41\x02\x12\x12\n\x05query\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x10\n\x08order_by\x18\x05 \x01(\t\x1a\x62\n\x05Scope\x12\x17\n\x0finclude_org_ids\x18\x02 \x03(\t\x12\x1b\n\x13include_project_ids\x18\x03 \x03(\t\x12#\n\x1binclude_gcp_public_datasets\x18\x07 \x01(\x08"s\n\x15SearchCatalogResponse\x12\x41\n\x07results\x18\x01 \x03(\x0b\x32\x30.google.cloud.datacatalog.v1.SearchCatalogResult\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\t"\xb3\x01\n\x17\x43reateEntryGroupRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\x12%datacatalog.googleapis.com/EntryGroup\x12\x1b\n\x0e\x65ntry_group_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12<\n\x0b\x65ntry_group\x18\x02 \x01(\x0b\x32\'.google.cloud.datacatalog.v1.EntryGroup"\x8d\x01\n\x17UpdateEntryGroupRequest\x12\x41\n\x0b\x65ntry_group\x18\x01 \x01(\x0b\x32\'.google.cloud.datacatalog.v1.EntryGroupB\x03\xe0\x41\x02\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"\x82\x01\n\x14GetEntryGroupRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%datacatalog.googleapis.com/EntryGroup\x12-\n\tread_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"j\n\x17\x44\x65leteEntryGroupRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%datacatalog.googleapis.com/EntryGroup\x12\x12\n\x05\x66orce\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01"\x88\x01\n\x16ListEntryGroupsRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%datacatalog.googleapis.com/EntryGroup\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01"q\n\x17ListEntryGroupsResponse\x12=\n\x0c\x65ntry_groups\x18\x01 \x03(\x0b\x32\'.google.cloud.datacatalog.v1.EntryGroup\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"\xa2\x01\n\x12\x43reateEntryRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%datacatalog.googleapis.com/EntryGroup\x12\x15\n\x08\x65ntry_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x36\n\x05\x65ntry\x18\x02 \x01(\x0b\x32".google.cloud.datacatalog.v1.EntryB\x03\xe0\x41\x02"}\n\x12UpdateEntryRequest\x12\x36\n\x05\x65ntry\x18\x01 \x01(\x0b\x32".google.cloud.datacatalog.v1.EntryB\x03\xe0\x41\x02\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"L\n\x12\x44\x65leteEntryRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41"\n datacatalog.googleapis.com/Entry"I\n\x0fGetEntryRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41"\n datacatalog.googleapis.com/Entry"V\n\x12LookupEntryRequest\x12\x19\n\x0flinked_resource\x18\x01 \x01(\tH\x00\x12\x16\n\x0csql_resource\x18\x03 \x01(\tH\x00\x42\r\n\x0btarget_name"\xe7\x06\n\x05\x45ntry\x12\x38\n\x04name\x18\x01 \x01(\tB*\xfa\x41\'\n%datacatalog.googleapis.com/EntryGroup\x12\x17\n\x0flinked_resource\x18\t \x01(\t\x12\x36\n\x04type\x18\x02 \x01(\x0e\x32&.google.cloud.datacatalog.v1.EntryTypeH\x00\x12\x1d\n\x13user_specified_type\x18\x10 \x01(\tH\x00\x12O\n\x11integrated_system\x18\x11 \x01(\x0e\x32-.google.cloud.datacatalog.v1.IntegratedSystemB\x03\xe0\x41\x03H\x01\x12\x1f\n\x15user_specified_system\x18\x12 \x01(\tH\x01\x12G\n\x10gcs_fileset_spec\x18\x06 \x01(\x0b\x32+.google.cloud.datacatalog.v1.GcsFilesetSpecH\x02\x12M\n\x13\x62igquery_table_spec\x18\x0c \x01(\x0b\x32..google.cloud.datacatalog.v1.BigQueryTableSpecH\x02\x12Z\n\x1a\x62igquery_date_sharded_spec\x18\x0f \x01(\x0b\x32\x34.google.cloud.datacatalog.v1.BigQueryDateShardedSpecH\x02\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x33\n\x06schema\x18\x05 \x01(\x0b\x32#.google.cloud.datacatalog.v1.Schema\x12O\n\x18source_system_timestamps\x18\x07 \x01(\x0b\x32-.google.cloud.datacatalog.v1.SystemTimestamps:x\xea\x41u\n datacatalog.googleapis.com/Entry\x12Qprojects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}B\x0c\n\nentry_typeB\x08\n\x06systemB\x0b\n\ttype_spec"\x89\x02\n\nEntryGroup\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12S\n\x17\x64\x61ta_catalog_timestamps\x18\x04 \x01(\x0b\x32-.google.cloud.datacatalog.v1.SystemTimestampsB\x03\xe0\x41\x03:m\xea\x41j\n%datacatalog.googleapis.com/EntryGroup\x12\x41projects/{project}/locations/{location}/entryGroups/{entry_group}"\xbd\x01\n\x18\x43reateTagTemplateRequest\x12>\n\x06parent\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\x12&datacatalog.googleapis.com/TagTemplate\x12\x1c\n\x0ftag_template_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x43\n\x0ctag_template\x18\x02 \x01(\x0b\x32(.google.cloud.datacatalog.v1.TagTemplateB\x03\xe0\x41\x02"U\n\x15GetTagTemplateRequest\x12<\n\x04name\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&datacatalog.googleapis.com/TagTemplate"\x90\x01\n\x18UpdateTagTemplateRequest\x12\x43\n\x0ctag_template\x18\x01 \x01(\x0b\x32(.google.cloud.datacatalog.v1.TagTemplateB\x03\xe0\x41\x02\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"l\n\x18\x44\x65leteTagTemplateRequest\x12<\n\x04name\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&datacatalog.googleapis.com/TagTemplate\x12\x12\n\x05\x66orce\x18\x02 \x01(\x08\x42\x03\xe0\x41\x02"~\n\x10\x43reateTagRequest\x12\x36\n\x06parent\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1e\x64\x61tacatalog.googleapis.com/Tag\x12\x32\n\x03tag\x18\x02 \x01(\x0b\x32 .google.cloud.datacatalog.v1.TagB\x03\xe0\x41\x02"w\n\x10UpdateTagRequest\x12\x32\n\x03tag\x18\x01 \x01(\x0b\x32 .google.cloud.datacatalog.v1.TagB\x03\xe0\x41\x02\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"H\n\x10\x44\x65leteTagRequest\x12\x34\n\x04name\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \x12\x1e\x64\x61tacatalog.googleapis.com/Tag"\xd3\x01\n\x1d\x43reateTagTemplateFieldRequest\x12>\n\x06parent\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&datacatalog.googleapis.com/TagTemplate\x12"\n\x15tag_template_field_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12N\n\x12tag_template_field\x18\x03 \x01(\x0b\x32-.google.cloud.datacatalog.v1.TagTemplateFieldB\x03\xe0\x41\x02"\xe8\x01\n\x1dUpdateTagTemplateFieldRequest\x12\x41\n\x04name\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+datacatalog.googleapis.com/TagTemplateField\x12N\n\x12tag_template_field\x18\x02 \x01(\x0b\x32-.google.cloud.datacatalog.v1.TagTemplateFieldB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01"\x8a\x01\n\x1dRenameTagTemplateFieldRequest\x12\x41\n\x04name\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+datacatalog.googleapis.com/TagTemplateField\x12&\n\x19new_tag_template_field_id\x18\x02 \x01(\tB\x03\xe0\x41\x02"v\n\x1d\x44\x65leteTagTemplateFieldRequest\x12\x41\n\x04name\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+datacatalog.googleapis.com/TagTemplateField\x12\x12\n\x05\x66orce\x18\x02 \x01(\x08\x42\x03\xe0\x41\x02"p\n\x0fListTagsRequest\x12\x36\n\x06parent\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \x12\x1e\x64\x61tacatalog.googleapis.com/Tag\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t"[\n\x10ListTagsResponse\x12.\n\x04tags\x18\x01 \x03(\x0b\x32 .google.cloud.datacatalog.v1.Tag\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"\xa9\x01\n\x12ListEntriesRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%datacatalog.googleapis.com/EntryGroup\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12-\n\tread_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"c\n\x13ListEntriesResponse\x12\x33\n\x07\x65ntries\x18\x01 \x03(\x0b\x32".google.cloud.datacatalog.v1.Entry\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t*[\n\tEntryType\x12\x1a\n\x16\x45NTRY_TYPE_UNSPECIFIED\x10\x00\x12\t\n\x05TABLE\x10\x02\x12\t\n\x05MODEL\x10\x05\x12\x0f\n\x0b\x44\x41TA_STREAM\x10\x03\x12\x0b\n\x07\x46ILESET\x10\x04\x32\x90/\n\x0b\x44\x61taCatalog\x12\xa3\x01\n\rSearchCatalog\x12\x31.google.cloud.datacatalog.v1.SearchCatalogRequest\x1a\x32.google.cloud.datacatalog.v1.SearchCatalogResponse"+\x82\xd3\xe4\x93\x02\x17"\x12/v1/catalog:search:\x01*\xda\x41\x0bscope,query\x12\xdb\x01\n\x10\x43reateEntryGroup\x12\x34.google.cloud.datacatalog.v1.CreateEntryGroupRequest\x1a\'.google.cloud.datacatalog.v1.EntryGroup"h\x82\xd3\xe4\x93\x02>"//v1/{parent=projects/*/locations/*}/entryGroups:\x0b\x65ntry_group\xda\x41!parent,entry_group_id,entry_group\x12\xbc\x01\n\rGetEntryGroup\x12\x31.google.cloud.datacatalog.v1.GetEntryGroupRequest\x1a\'.google.cloud.datacatalog.v1.EntryGroup"O\x82\xd3\xe4\x93\x02\x31\x12//v1/{name=projects/*/locations/*/entryGroups/*}\xda\x41\x04name\xda\x41\x0ename,read_mask\x12\xeb\x01\n\x10UpdateEntryGroup\x12\x34.google.cloud.datacatalog.v1.UpdateEntryGroupRequest\x1a\'.google.cloud.datacatalog.v1.EntryGroup"x\x82\xd3\xe4\x93\x02J2;/v1/{entry_group.name=projects/*/locations/*/entryGroups/*}:\x0b\x65ntry_group\xda\x41\x0b\x65ntry_group\xda\x41\x17\x65ntry_group,update_mask\x12\xa0\x01\n\x10\x44\x65leteEntryGroup\x12\x34.google.cloud.datacatalog.v1.DeleteEntryGroupRequest\x1a\x16.google.protobuf.Empty">\x82\xd3\xe4\x93\x02\x31*//v1/{name=projects/*/locations/*/entryGroups/*}\xda\x41\x04name\x12\xbe\x01\n\x0fListEntryGroups\x12\x33.google.cloud.datacatalog.v1.ListEntryGroupsRequest\x1a\x34.google.cloud.datacatalog.v1.ListEntryGroupsResponse"@\x82\xd3\xe4\x93\x02\x31\x12//v1/{parent=projects/*/locations/*}/entryGroups\xda\x41\x06parent\x12\xc4\x01\n\x0b\x43reateEntry\x12/.google.cloud.datacatalog.v1.CreateEntryRequest\x1a".google.cloud.datacatalog.v1.Entry"`\x82\xd3\xe4\x93\x02\x42"9/v1/{parent=projects/*/locations/*/entryGroups/*}/entries:\x05\x65ntry\xda\x41\x15parent,entry_id,entry\x12\xce\x01\n\x0bUpdateEntry\x12/.google.cloud.datacatalog.v1.UpdateEntryRequest\x1a".google.cloud.datacatalog.v1.Entry"j\x82\xd3\xe4\x93\x02H2?/v1/{entry.name=projects/*/locations/*/entryGroups/*/entries/*}:\x05\x65ntry\xda\x41\x05\x65ntry\xda\x41\x11\x65ntry,update_mask\x12\xa0\x01\n\x0b\x44\x65leteEntry\x12/.google.cloud.datacatalog.v1.DeleteEntryRequest\x1a\x16.google.protobuf.Empty"H\x82\xd3\xe4\x93\x02;*9/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}\xda\x41\x04name\x12\xa6\x01\n\x08GetEntry\x12,.google.cloud.datacatalog.v1.GetEntryRequest\x1a".google.cloud.datacatalog.v1.Entry"H\x82\xd3\xe4\x93\x02;\x12\x39/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}\xda\x41\x04name\x12~\n\x0bLookupEntry\x12/.google.cloud.datacatalog.v1.LookupEntryRequest\x1a".google.cloud.datacatalog.v1.Entry"\x1a\x82\xd3\xe4\x93\x02\x14\x12\x12/v1/entries:lookup\x12\xbc\x01\n\x0bListEntries\x12/.google.cloud.datacatalog.v1.ListEntriesRequest\x1a\x30.google.cloud.datacatalog.v1.ListEntriesResponse"J\x82\xd3\xe4\x93\x02;\x12\x39/v1/{parent=projects/*/locations/*/entryGroups/*}/entries\xda\x41\x06parent\x12\xe2\x01\n\x11\x43reateTagTemplate\x12\x35.google.cloud.datacatalog.v1.CreateTagTemplateRequest\x1a(.google.cloud.datacatalog.v1.TagTemplate"l\x82\xd3\xe4\x93\x02@"0/v1/{parent=projects/*/locations/*}/tagTemplates:\x0ctag_template\xda\x41#parent,tag_template_id,tag_template\x12\xaf\x01\n\x0eGetTagTemplate\x12\x32.google.cloud.datacatalog.v1.GetTagTemplateRequest\x1a(.google.cloud.datacatalog.v1.TagTemplate"?\x82\xd3\xe4\x93\x02\x32\x12\x30/v1/{name=projects/*/locations/*/tagTemplates/*}\xda\x41\x04name\x12\xf3\x01\n\x11UpdateTagTemplate\x12\x35.google.cloud.datacatalog.v1.UpdateTagTemplateRequest\x1a(.google.cloud.datacatalog.v1.TagTemplate"}\x82\xd3\xe4\x93\x02M2=/v1/{tag_template.name=projects/*/locations/*/tagTemplates/*}:\x0ctag_template\xda\x41\x0ctag_template\xda\x41\x18tag_template,update_mask\x12\xa9\x01\n\x11\x44\x65leteTagTemplate\x12\x35.google.cloud.datacatalog.v1.DeleteTagTemplateRequest\x1a\x16.google.protobuf.Empty"E\x82\xd3\xe4\x93\x02\x32*0/v1/{name=projects/*/locations/*/tagTemplates/*}\xda\x41\nname,force\x12\x8d\x02\n\x16\x43reateTagTemplateField\x12:.google.cloud.datacatalog.v1.CreateTagTemplateFieldRequest\x1a-.google.cloud.datacatalog.v1.TagTemplateField"\x87\x01\x82\xd3\xe4\x93\x02O"9/v1/{parent=projects/*/locations/*/tagTemplates/*}/fields:\x12tag_template_field\xda\x41/parent,tag_template_field_id,tag_template_field\x12\x9b\x02\n\x16UpdateTagTemplateField\x12:.google.cloud.datacatalog.v1.UpdateTagTemplateFieldRequest\x1a-.google.cloud.datacatalog.v1.TagTemplateField"\x95\x01\x82\xd3\xe4\x93\x02O29/v1/{name=projects/*/locations/*/tagTemplates/*/fields/*}:\x12tag_template_field\xda\x41\x17name,tag_template_field\xda\x41#name,tag_template_field,update_mask\x12\xf1\x01\n\x16RenameTagTemplateField\x12:.google.cloud.datacatalog.v1.RenameTagTemplateFieldRequest\x1a-.google.cloud.datacatalog.v1.TagTemplateField"l\x82\xd3\xe4\x93\x02\x45"@/v1/{name=projects/*/locations/*/tagTemplates/*/fields/*}:rename:\x01*\xda\x41\x1ename,new_tag_template_field_id\x12\xbc\x01\n\x16\x44\x65leteTagTemplateField\x12:.google.cloud.datacatalog.v1.DeleteTagTemplateFieldRequest\x1a\x16.google.protobuf.Empty"N\x82\xd3\xe4\x93\x02;*9/v1/{name=projects/*/locations/*/tagTemplates/*/fields/*}\xda\x41\nname,force\x12\xf9\x01\n\tCreateTag\x12-.google.cloud.datacatalog.v1.CreateTagRequest\x1a .google.cloud.datacatalog.v1.Tag"\x9a\x01\x82\xd3\xe4\x93\x02\x86\x01"@/v1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags:\x03tagZ="6/v1/{parent=projects/*/locations/*/entryGroups/*}/tags:\x03tag\xda\x41\nparent,tag\x12\x8c\x02\n\tUpdateTag\x12-.google.cloud.datacatalog.v1.UpdateTagRequest\x1a .google.cloud.datacatalog.v1.Tag"\xad\x01\x82\xd3\xe4\x93\x02\x8e\x01\x32\x44/v1/{tag.name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}:\x03tagZA2:/v1/{tag.name=projects/*/locations/*/entryGroups/*/tags/*}:\x03tag\xda\x41\x03tag\xda\x41\x0ftag,update_mask\x12\xde\x01\n\tDeleteTag\x12-.google.cloud.datacatalog.v1.DeleteTagRequest\x1a\x16.google.protobuf.Empty"\x89\x01\x82\xd3\xe4\x93\x02|*@/v1/{name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}Z8*6/v1/{name=projects/*/locations/*/entryGroups/*/tags/*}\xda\x41\x04name\x12\xf5\x01\n\x08ListTags\x12,.google.cloud.datacatalog.v1.ListTagsRequest\x1a-.google.cloud.datacatalog.v1.ListTagsResponse"\x8b\x01\x82\xd3\xe4\x93\x02|\x12@/v1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tagsZ8\x12\x36/v1/{parent=projects/*/locations/*/entryGroups/*}/tags\xda\x41\x06parent\x12\xe0\x01\n\x0cSetIamPolicy\x12".google.iam.v1.SetIamPolicyRequest\x1a\x15.google.iam.v1.Policy"\x94\x01\x82\xd3\xe4\x93\x02\x8d\x01"A/v1/{resource=projects/*/locations/*/tagTemplates/*}:setIamPolicy:\x01*ZE"@/v1/{resource=projects/*/locations/*/entryGroups/*}:setIamPolicy:\x01*\x12\xb1\x02\n\x0cGetIamPolicy\x12".google.iam.v1.GetIamPolicyRequest\x1a\x15.google.iam.v1.Policy"\xe5\x01\x82\xd3\xe4\x93\x02\xde\x01"A/v1/{resource=projects/*/locations/*/tagTemplates/*}:getIamPolicy:\x01*ZE"@/v1/{resource=projects/*/locations/*/entryGroups/*}:getIamPolicy:\x01*ZO"J/v1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:getIamPolicy:\x01*\x12\xe3\x02\n\x12TestIamPermissions\x12(.google.iam.v1.TestIamPermissionsRequest\x1a).google.iam.v1.TestIamPermissionsResponse"\xf7\x01\x82\xd3\xe4\x93\x02\xf0\x01"G/v1/{resource=projects/*/locations/*/tagTemplates/*}:testIamPermissions:\x01*ZK"F/v1/{resource=projects/*/locations/*/entryGroups/*}:testIamPermissions:\x01*ZU"P/v1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:testIamPermissions:\x01*\x1aN\xca\x41\x1a\x64\x61tacatalog.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xcb\x01\n\x1f\x63om.google.cloud.datacatalog.v1P\x01ZFgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1;datacatalog\xf8\x01\x01\xaa\x02\x1bGoogle.Cloud.DataCatalog.V1\xca\x02\x1bGoogle\\Cloud\\DataCatalog\\V1\xea\x02\x1eGoogle::Cloud::DataCatalog::V1b\x06proto3', + serialized_pb=b'\n3google/cloud/datacatalog_v1/proto/datacatalog.proto\x12\x1bgoogle.cloud.datacatalog.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a.google/cloud/datacatalog_v1/proto/common.proto\x1a\x38google/cloud/datacatalog_v1/proto/gcs_fileset_spec.proto\x1a.google/cloud/datacatalog_v1/proto/schema.proto\x1a.google/cloud/datacatalog_v1/proto/search.proto\x1a\x32google/cloud/datacatalog_v1/proto/table_spec.proto\x1a,google/cloud/datacatalog_v1/proto/tags.proto\x1a\x32google/cloud/datacatalog_v1/proto/timestamps.proto\x1a\x1egoogle/iam/v1/iam_policy.proto\x1a\x1agoogle/iam/v1/policy.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto"\xbd\x02\n\x14SearchCatalogRequest\x12K\n\x05scope\x18\x06 \x01(\x0b\x32\x37.google.cloud.datacatalog.v1.SearchCatalogRequest.ScopeB\x03\xe0\x41\x02\x12\x12\n\x05query\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x10\n\x08order_by\x18\x05 \x01(\t\x1a\x85\x01\n\x05Scope\x12\x17\n\x0finclude_org_ids\x18\x02 \x03(\t\x12\x1b\n\x13include_project_ids\x18\x03 \x03(\t\x12#\n\x1binclude_gcp_public_datasets\x18\x07 \x01(\x08\x12!\n\x14restricted_locations\x18\x10 \x03(\tB\x03\xe0\x41\x01"\x88\x01\n\x15SearchCatalogResponse\x12\x41\n\x07results\x18\x01 \x03(\x0b\x32\x30.google.cloud.datacatalog.v1.SearchCatalogResult\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\t\x12\x13\n\x0bunreachable\x18\x06 \x03(\t"\xb3\x01\n\x17\x43reateEntryGroupRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\x12%datacatalog.googleapis.com/EntryGroup\x12\x1b\n\x0e\x65ntry_group_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12<\n\x0b\x65ntry_group\x18\x02 \x01(\x0b\x32\'.google.cloud.datacatalog.v1.EntryGroup"\x8d\x01\n\x17UpdateEntryGroupRequest\x12\x41\n\x0b\x65ntry_group\x18\x01 \x01(\x0b\x32\'.google.cloud.datacatalog.v1.EntryGroupB\x03\xe0\x41\x02\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"\x82\x01\n\x14GetEntryGroupRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%datacatalog.googleapis.com/EntryGroup\x12-\n\tread_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"j\n\x17\x44\x65leteEntryGroupRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%datacatalog.googleapis.com/EntryGroup\x12\x12\n\x05\x66orce\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01"\x88\x01\n\x16ListEntryGroupsRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%datacatalog.googleapis.com/EntryGroup\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01"q\n\x17ListEntryGroupsResponse\x12=\n\x0c\x65ntry_groups\x18\x01 \x03(\x0b\x32\'.google.cloud.datacatalog.v1.EntryGroup\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"\xa2\x01\n\x12\x43reateEntryRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%datacatalog.googleapis.com/EntryGroup\x12\x15\n\x08\x65ntry_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x36\n\x05\x65ntry\x18\x02 \x01(\x0b\x32".google.cloud.datacatalog.v1.EntryB\x03\xe0\x41\x02"}\n\x12UpdateEntryRequest\x12\x36\n\x05\x65ntry\x18\x01 \x01(\x0b\x32".google.cloud.datacatalog.v1.EntryB\x03\xe0\x41\x02\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"L\n\x12\x44\x65leteEntryRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41"\n datacatalog.googleapis.com/Entry"I\n\x0fGetEntryRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41"\n datacatalog.googleapis.com/Entry"V\n\x12LookupEntryRequest\x12\x19\n\x0flinked_resource\x18\x01 \x01(\tH\x00\x12\x16\n\x0csql_resource\x18\x03 \x01(\tH\x00\x42\r\n\x0btarget_name"\xe7\x06\n\x05\x45ntry\x12\x38\n\x04name\x18\x01 \x01(\tB*\xfa\x41\'\n%datacatalog.googleapis.com/EntryGroup\x12\x17\n\x0flinked_resource\x18\t \x01(\t\x12\x36\n\x04type\x18\x02 \x01(\x0e\x32&.google.cloud.datacatalog.v1.EntryTypeH\x00\x12\x1d\n\x13user_specified_type\x18\x10 \x01(\tH\x00\x12O\n\x11integrated_system\x18\x11 \x01(\x0e\x32-.google.cloud.datacatalog.v1.IntegratedSystemB\x03\xe0\x41\x03H\x01\x12\x1f\n\x15user_specified_system\x18\x12 \x01(\tH\x01\x12G\n\x10gcs_fileset_spec\x18\x06 \x01(\x0b\x32+.google.cloud.datacatalog.v1.GcsFilesetSpecH\x02\x12M\n\x13\x62igquery_table_spec\x18\x0c \x01(\x0b\x32..google.cloud.datacatalog.v1.BigQueryTableSpecH\x02\x12Z\n\x1a\x62igquery_date_sharded_spec\x18\x0f \x01(\x0b\x32\x34.google.cloud.datacatalog.v1.BigQueryDateShardedSpecH\x02\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x33\n\x06schema\x18\x05 \x01(\x0b\x32#.google.cloud.datacatalog.v1.Schema\x12O\n\x18source_system_timestamps\x18\x07 \x01(\x0b\x32-.google.cloud.datacatalog.v1.SystemTimestamps:x\xea\x41u\n datacatalog.googleapis.com/Entry\x12Qprojects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}B\x0c\n\nentry_typeB\x08\n\x06systemB\x0b\n\ttype_spec"\x89\x02\n\nEntryGroup\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12S\n\x17\x64\x61ta_catalog_timestamps\x18\x04 \x01(\x0b\x32-.google.cloud.datacatalog.v1.SystemTimestampsB\x03\xe0\x41\x03:m\xea\x41j\n%datacatalog.googleapis.com/EntryGroup\x12\x41projects/{project}/locations/{location}/entryGroups/{entry_group}"\xbd\x01\n\x18\x43reateTagTemplateRequest\x12>\n\x06parent\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\x12&datacatalog.googleapis.com/TagTemplate\x12\x1c\n\x0ftag_template_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x43\n\x0ctag_template\x18\x02 \x01(\x0b\x32(.google.cloud.datacatalog.v1.TagTemplateB\x03\xe0\x41\x02"U\n\x15GetTagTemplateRequest\x12<\n\x04name\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&datacatalog.googleapis.com/TagTemplate"\x90\x01\n\x18UpdateTagTemplateRequest\x12\x43\n\x0ctag_template\x18\x01 \x01(\x0b\x32(.google.cloud.datacatalog.v1.TagTemplateB\x03\xe0\x41\x02\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"l\n\x18\x44\x65leteTagTemplateRequest\x12<\n\x04name\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&datacatalog.googleapis.com/TagTemplate\x12\x12\n\x05\x66orce\x18\x02 \x01(\x08\x42\x03\xe0\x41\x02"~\n\x10\x43reateTagRequest\x12\x36\n\x06parent\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1e\x64\x61tacatalog.googleapis.com/Tag\x12\x32\n\x03tag\x18\x02 \x01(\x0b\x32 .google.cloud.datacatalog.v1.TagB\x03\xe0\x41\x02"w\n\x10UpdateTagRequest\x12\x32\n\x03tag\x18\x01 \x01(\x0b\x32 .google.cloud.datacatalog.v1.TagB\x03\xe0\x41\x02\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"H\n\x10\x44\x65leteTagRequest\x12\x34\n\x04name\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \x12\x1e\x64\x61tacatalog.googleapis.com/Tag"\xd3\x01\n\x1d\x43reateTagTemplateFieldRequest\x12>\n\x06parent\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&datacatalog.googleapis.com/TagTemplate\x12"\n\x15tag_template_field_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12N\n\x12tag_template_field\x18\x03 \x01(\x0b\x32-.google.cloud.datacatalog.v1.TagTemplateFieldB\x03\xe0\x41\x02"\xe8\x01\n\x1dUpdateTagTemplateFieldRequest\x12\x41\n\x04name\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+datacatalog.googleapis.com/TagTemplateField\x12N\n\x12tag_template_field\x18\x02 \x01(\x0b\x32-.google.cloud.datacatalog.v1.TagTemplateFieldB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01"\x8a\x01\n\x1dRenameTagTemplateFieldRequest\x12\x41\n\x04name\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+datacatalog.googleapis.com/TagTemplateField\x12&\n\x19new_tag_template_field_id\x18\x02 \x01(\tB\x03\xe0\x41\x02"v\n\x1d\x44\x65leteTagTemplateFieldRequest\x12\x41\n\x04name\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+datacatalog.googleapis.com/TagTemplateField\x12\x12\n\x05\x66orce\x18\x02 \x01(\x08\x42\x03\xe0\x41\x02"p\n\x0fListTagsRequest\x12\x36\n\x06parent\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \x12\x1e\x64\x61tacatalog.googleapis.com/Tag\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t"[\n\x10ListTagsResponse\x12.\n\x04tags\x18\x01 \x03(\x0b\x32 .google.cloud.datacatalog.v1.Tag\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"\xa9\x01\n\x12ListEntriesRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%datacatalog.googleapis.com/EntryGroup\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12-\n\tread_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"c\n\x13ListEntriesResponse\x12\x33\n\x07\x65ntries\x18\x01 \x03(\x0b\x32".google.cloud.datacatalog.v1.Entry\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t*[\n\tEntryType\x12\x1a\n\x16\x45NTRY_TYPE_UNSPECIFIED\x10\x00\x12\t\n\x05TABLE\x10\x02\x12\t\n\x05MODEL\x10\x05\x12\x0f\n\x0b\x44\x41TA_STREAM\x10\x03\x12\x0b\n\x07\x46ILESET\x10\x04\x32\xad/\n\x0b\x44\x61taCatalog\x12\xa3\x01\n\rSearchCatalog\x12\x31.google.cloud.datacatalog.v1.SearchCatalogRequest\x1a\x32.google.cloud.datacatalog.v1.SearchCatalogResponse"+\x82\xd3\xe4\x93\x02\x17"\x12/v1/catalog:search:\x01*\xda\x41\x0bscope,query\x12\xdb\x01\n\x10\x43reateEntryGroup\x12\x34.google.cloud.datacatalog.v1.CreateEntryGroupRequest\x1a\'.google.cloud.datacatalog.v1.EntryGroup"h\x82\xd3\xe4\x93\x02>"//v1/{parent=projects/*/locations/*}/entryGroups:\x0b\x65ntry_group\xda\x41!parent,entry_group_id,entry_group\x12\xbc\x01\n\rGetEntryGroup\x12\x31.google.cloud.datacatalog.v1.GetEntryGroupRequest\x1a\'.google.cloud.datacatalog.v1.EntryGroup"O\x82\xd3\xe4\x93\x02\x31\x12//v1/{name=projects/*/locations/*/entryGroups/*}\xda\x41\x04name\xda\x41\x0ename,read_mask\x12\xeb\x01\n\x10UpdateEntryGroup\x12\x34.google.cloud.datacatalog.v1.UpdateEntryGroupRequest\x1a\'.google.cloud.datacatalog.v1.EntryGroup"x\x82\xd3\xe4\x93\x02J2;/v1/{entry_group.name=projects/*/locations/*/entryGroups/*}:\x0b\x65ntry_group\xda\x41\x0b\x65ntry_group\xda\x41\x17\x65ntry_group,update_mask\x12\xa0\x01\n\x10\x44\x65leteEntryGroup\x12\x34.google.cloud.datacatalog.v1.DeleteEntryGroupRequest\x1a\x16.google.protobuf.Empty">\x82\xd3\xe4\x93\x02\x31*//v1/{name=projects/*/locations/*/entryGroups/*}\xda\x41\x04name\x12\xbe\x01\n\x0fListEntryGroups\x12\x33.google.cloud.datacatalog.v1.ListEntryGroupsRequest\x1a\x34.google.cloud.datacatalog.v1.ListEntryGroupsResponse"@\x82\xd3\xe4\x93\x02\x31\x12//v1/{parent=projects/*/locations/*}/entryGroups\xda\x41\x06parent\x12\xc4\x01\n\x0b\x43reateEntry\x12/.google.cloud.datacatalog.v1.CreateEntryRequest\x1a".google.cloud.datacatalog.v1.Entry"`\x82\xd3\xe4\x93\x02\x42"9/v1/{parent=projects/*/locations/*/entryGroups/*}/entries:\x05\x65ntry\xda\x41\x15parent,entry_id,entry\x12\xce\x01\n\x0bUpdateEntry\x12/.google.cloud.datacatalog.v1.UpdateEntryRequest\x1a".google.cloud.datacatalog.v1.Entry"j\x82\xd3\xe4\x93\x02H2?/v1/{entry.name=projects/*/locations/*/entryGroups/*/entries/*}:\x05\x65ntry\xda\x41\x05\x65ntry\xda\x41\x11\x65ntry,update_mask\x12\xa0\x01\n\x0b\x44\x65leteEntry\x12/.google.cloud.datacatalog.v1.DeleteEntryRequest\x1a\x16.google.protobuf.Empty"H\x82\xd3\xe4\x93\x02;*9/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}\xda\x41\x04name\x12\xa6\x01\n\x08GetEntry\x12,.google.cloud.datacatalog.v1.GetEntryRequest\x1a".google.cloud.datacatalog.v1.Entry"H\x82\xd3\xe4\x93\x02;\x12\x39/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}\xda\x41\x04name\x12~\n\x0bLookupEntry\x12/.google.cloud.datacatalog.v1.LookupEntryRequest\x1a".google.cloud.datacatalog.v1.Entry"\x1a\x82\xd3\xe4\x93\x02\x14\x12\x12/v1/entries:lookup\x12\xbc\x01\n\x0bListEntries\x12/.google.cloud.datacatalog.v1.ListEntriesRequest\x1a\x30.google.cloud.datacatalog.v1.ListEntriesResponse"J\x82\xd3\xe4\x93\x02;\x12\x39/v1/{parent=projects/*/locations/*/entryGroups/*}/entries\xda\x41\x06parent\x12\xe2\x01\n\x11\x43reateTagTemplate\x12\x35.google.cloud.datacatalog.v1.CreateTagTemplateRequest\x1a(.google.cloud.datacatalog.v1.TagTemplate"l\x82\xd3\xe4\x93\x02@"0/v1/{parent=projects/*/locations/*}/tagTemplates:\x0ctag_template\xda\x41#parent,tag_template_id,tag_template\x12\xaf\x01\n\x0eGetTagTemplate\x12\x32.google.cloud.datacatalog.v1.GetTagTemplateRequest\x1a(.google.cloud.datacatalog.v1.TagTemplate"?\x82\xd3\xe4\x93\x02\x32\x12\x30/v1/{name=projects/*/locations/*/tagTemplates/*}\xda\x41\x04name\x12\xf3\x01\n\x11UpdateTagTemplate\x12\x35.google.cloud.datacatalog.v1.UpdateTagTemplateRequest\x1a(.google.cloud.datacatalog.v1.TagTemplate"}\x82\xd3\xe4\x93\x02M2=/v1/{tag_template.name=projects/*/locations/*/tagTemplates/*}:\x0ctag_template\xda\x41\x0ctag_template\xda\x41\x18tag_template,update_mask\x12\xa9\x01\n\x11\x44\x65leteTagTemplate\x12\x35.google.cloud.datacatalog.v1.DeleteTagTemplateRequest\x1a\x16.google.protobuf.Empty"E\x82\xd3\xe4\x93\x02\x32*0/v1/{name=projects/*/locations/*/tagTemplates/*}\xda\x41\nname,force\x12\x8d\x02\n\x16\x43reateTagTemplateField\x12:.google.cloud.datacatalog.v1.CreateTagTemplateFieldRequest\x1a-.google.cloud.datacatalog.v1.TagTemplateField"\x87\x01\x82\xd3\xe4\x93\x02O"9/v1/{parent=projects/*/locations/*/tagTemplates/*}/fields:\x12tag_template_field\xda\x41/parent,tag_template_field_id,tag_template_field\x12\x9b\x02\n\x16UpdateTagTemplateField\x12:.google.cloud.datacatalog.v1.UpdateTagTemplateFieldRequest\x1a-.google.cloud.datacatalog.v1.TagTemplateField"\x95\x01\x82\xd3\xe4\x93\x02O29/v1/{name=projects/*/locations/*/tagTemplates/*/fields/*}:\x12tag_template_field\xda\x41\x17name,tag_template_field\xda\x41#name,tag_template_field,update_mask\x12\xf1\x01\n\x16RenameTagTemplateField\x12:.google.cloud.datacatalog.v1.RenameTagTemplateFieldRequest\x1a-.google.cloud.datacatalog.v1.TagTemplateField"l\x82\xd3\xe4\x93\x02\x45"@/v1/{name=projects/*/locations/*/tagTemplates/*/fields/*}:rename:\x01*\xda\x41\x1ename,new_tag_template_field_id\x12\xbc\x01\n\x16\x44\x65leteTagTemplateField\x12:.google.cloud.datacatalog.v1.DeleteTagTemplateFieldRequest\x1a\x16.google.protobuf.Empty"N\x82\xd3\xe4\x93\x02;*9/v1/{name=projects/*/locations/*/tagTemplates/*/fields/*}\xda\x41\nname,force\x12\xf9\x01\n\tCreateTag\x12-.google.cloud.datacatalog.v1.CreateTagRequest\x1a .google.cloud.datacatalog.v1.Tag"\x9a\x01\x82\xd3\xe4\x93\x02\x86\x01"@/v1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags:\x03tagZ="6/v1/{parent=projects/*/locations/*/entryGroups/*}/tags:\x03tag\xda\x41\nparent,tag\x12\x8c\x02\n\tUpdateTag\x12-.google.cloud.datacatalog.v1.UpdateTagRequest\x1a .google.cloud.datacatalog.v1.Tag"\xad\x01\x82\xd3\xe4\x93\x02\x8e\x01\x32\x44/v1/{tag.name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}:\x03tagZA2:/v1/{tag.name=projects/*/locations/*/entryGroups/*/tags/*}:\x03tag\xda\x41\x03tag\xda\x41\x0ftag,update_mask\x12\xde\x01\n\tDeleteTag\x12-.google.cloud.datacatalog.v1.DeleteTagRequest\x1a\x16.google.protobuf.Empty"\x89\x01\x82\xd3\xe4\x93\x02|*@/v1/{name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}Z8*6/v1/{name=projects/*/locations/*/entryGroups/*/tags/*}\xda\x41\x04name\x12\xf5\x01\n\x08ListTags\x12,.google.cloud.datacatalog.v1.ListTagsRequest\x1a-.google.cloud.datacatalog.v1.ListTagsResponse"\x8b\x01\x82\xd3\xe4\x93\x02|\x12@/v1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tagsZ8\x12\x36/v1/{parent=projects/*/locations/*/entryGroups/*}/tags\xda\x41\x06parent\x12\xf2\x01\n\x0cSetIamPolicy\x12".google.iam.v1.SetIamPolicyRequest\x1a\x15.google.iam.v1.Policy"\xa6\x01\x82\xd3\xe4\x93\x02\x8d\x01"A/v1/{resource=projects/*/locations/*/tagTemplates/*}:setIamPolicy:\x01*ZE"@/v1/{resource=projects/*/locations/*/entryGroups/*}:setIamPolicy:\x01*\xda\x41\x0fresource,policy\x12\xbc\x02\n\x0cGetIamPolicy\x12".google.iam.v1.GetIamPolicyRequest\x1a\x15.google.iam.v1.Policy"\xf0\x01\x82\xd3\xe4\x93\x02\xde\x01"A/v1/{resource=projects/*/locations/*/tagTemplates/*}:getIamPolicy:\x01*ZE"@/v1/{resource=projects/*/locations/*/entryGroups/*}:getIamPolicy:\x01*ZO"J/v1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:getIamPolicy:\x01*\xda\x41\x08resource\x12\xe3\x02\n\x12TestIamPermissions\x12(.google.iam.v1.TestIamPermissionsRequest\x1a).google.iam.v1.TestIamPermissionsResponse"\xf7\x01\x82\xd3\xe4\x93\x02\xf0\x01"G/v1/{resource=projects/*/locations/*/tagTemplates/*}:testIamPermissions:\x01*ZK"F/v1/{resource=projects/*/locations/*/entryGroups/*}:testIamPermissions:\x01*ZU"P/v1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:testIamPermissions:\x01*\x1aN\xca\x41\x1a\x64\x61tacatalog.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xcb\x01\n\x1f\x63om.google.cloud.datacatalog.v1P\x01ZFgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1;datacatalog\xf8\x01\x01\xaa\x02\x1bGoogle.Cloud.DataCatalog.V1\xca\x02\x1bGoogle\\Cloud\\DataCatalog\\V1\xea\x02\x1eGoogle::Cloud::DataCatalog::V1b\x06proto3', dependencies=[ google_dot_api_dot_annotations__pb2.DESCRIPTOR, google_dot_api_dot_client__pb2.DESCRIPTOR, @@ -97,8 +97,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=5620, - serialized_end=5711, + serialized_start=5678, + serialized_end=5769, ) _sym_db.RegisterEnumDescriptor(_ENTRYTYPE) @@ -171,6 +171,24 @@ serialized_options=None, file=DESCRIPTOR, ), + _descriptor.FieldDescriptor( + name="restricted_locations", + full_name="google.cloud.datacatalog.v1.SearchCatalogRequest.Scope.restricted_locations", + index=3, + number=16, + type=9, + cpp_type=9, + label=3, + has_default_value=False, + default_value=[], + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=b"\340A\001", + file=DESCRIPTOR, + ), ], extensions=[], nested_types=[], @@ -180,8 +198,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=858, - serialized_end=956, + serialized_start=859, + serialized_end=992, ) _SEARCHCATALOGREQUEST = _descriptor.Descriptor( @@ -291,7 +309,7 @@ extension_ranges=[], oneofs=[], serialized_start=675, - serialized_end=956, + serialized_end=992, ) @@ -338,6 +356,24 @@ serialized_options=None, file=DESCRIPTOR, ), + _descriptor.FieldDescriptor( + name="unreachable", + full_name="google.cloud.datacatalog.v1.SearchCatalogResponse.unreachable", + index=2, + number=6, + type=9, + cpp_type=9, + label=3, + has_default_value=False, + default_value=[], + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + ), ], extensions=[], nested_types=[], @@ -347,8 +383,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=958, - serialized_end=1073, + serialized_start=995, + serialized_end=1131, ) @@ -422,8 +458,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1076, - serialized_end=1255, + serialized_start=1134, + serialized_end=1313, ) @@ -479,8 +515,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1258, - serialized_end=1399, + serialized_start=1316, + serialized_end=1457, ) @@ -536,8 +572,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1402, - serialized_end=1532, + serialized_start=1460, + serialized_end=1590, ) @@ -593,8 +629,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1534, - serialized_end=1640, + serialized_start=1592, + serialized_end=1698, ) @@ -668,8 +704,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1643, - serialized_end=1779, + serialized_start=1701, + serialized_end=1837, ) @@ -725,8 +761,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1781, - serialized_end=1894, + serialized_start=1839, + serialized_end=1952, ) @@ -800,8 +836,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1897, - serialized_end=2059, + serialized_start=1955, + serialized_end=2117, ) @@ -857,8 +893,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=2061, - serialized_end=2186, + serialized_start=2119, + serialized_end=2244, ) @@ -896,8 +932,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=2188, - serialized_end=2264, + serialized_start=2246, + serialized_end=2322, ) @@ -935,8 +971,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=2266, - serialized_end=2339, + serialized_start=2324, + serialized_end=2397, ) @@ -1000,8 +1036,8 @@ fields=[], ) ], - serialized_start=2341, - serialized_end=2427, + serialized_start=2399, + serialized_end=2485, ) @@ -1277,8 +1313,8 @@ fields=[], ), ], - serialized_start=2430, - serialized_end=3301, + serialized_start=2488, + serialized_end=3359, ) @@ -1370,8 +1406,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3304, - serialized_end=3569, + serialized_start=3362, + serialized_end=3627, ) @@ -1445,8 +1481,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3572, - serialized_end=3761, + serialized_start=3630, + serialized_end=3819, ) @@ -1484,8 +1520,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3763, - serialized_end=3848, + serialized_start=3821, + serialized_end=3906, ) @@ -1541,8 +1577,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3851, - serialized_end=3995, + serialized_start=3909, + serialized_end=4053, ) @@ -1598,8 +1634,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3997, - serialized_end=4105, + serialized_start=4055, + serialized_end=4163, ) @@ -1655,8 +1691,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=4107, - serialized_end=4233, + serialized_start=4165, + serialized_end=4291, ) @@ -1712,8 +1748,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=4235, - serialized_end=4354, + serialized_start=4293, + serialized_end=4412, ) @@ -1751,8 +1787,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=4356, - serialized_end=4428, + serialized_start=4414, + serialized_end=4486, ) @@ -1826,8 +1862,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=4431, - serialized_end=4642, + serialized_start=4489, + serialized_end=4700, ) @@ -1901,8 +1937,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=4645, - serialized_end=4877, + serialized_start=4703, + serialized_end=4935, ) @@ -1958,8 +1994,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=4880, - serialized_end=5018, + serialized_start=4938, + serialized_end=5076, ) @@ -2015,8 +2051,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=5020, - serialized_end=5138, + serialized_start=5078, + serialized_end=5196, ) @@ -2090,8 +2126,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=5140, - serialized_end=5252, + serialized_start=5198, + serialized_end=5310, ) @@ -2147,8 +2183,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=5254, - serialized_end=5345, + serialized_start=5312, + serialized_end=5403, ) @@ -2240,8 +2276,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=5348, - serialized_end=5517, + serialized_start=5406, + serialized_end=5575, ) @@ -2297,8 +2333,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=5519, - serialized_end=5618, + serialized_start=5577, + serialized_end=5676, ) _SEARCHCATALOGREQUEST_SCOPE.containing_type = _SEARCHCATALOGREQUEST @@ -2518,6 +2554,22 @@ datasets in the search results. Info on GCP public datasets is available at https://cloud.google.com/public-datasets/. By default, GCP public datasets are excluded. + restricted_locations: + Optional. The list of locations to search within. 1. If empty, + search will be performed in all locations; 2. If any of the + locations are NOT in the valid locations list, error will be + returned; 3. Otherwise, search only the given locations for + matching results. Typical usage is to leave this field empty. + When a location is unreachable as returned in the + ``SearchCatalogResponse.unreachable`` field, users can repeat + the search request with this parameter set to get additional + information on the error. Valid locations: \* asia-east1 \* + asia-east2 \* asia-northeast1 \* asia-northeast2 \* asia- + northeast3 \* asia-south1 \* asia-southeast1 \* australia- + southeast1 \* eu \* europe-north1 \* europe-west1 \* europe- + west2 \* europe-west3 \* europe-west4 \* europe-west6 \* + global \* northamerica-northeast1 \* southamerica-east1 \* us + \* us-central1 \* us-east1 \* us-east4 \* us-west1 \* us-west2 """, # @@protoc_insertion_point(class_scope:google.cloud.datacatalog.v1.SearchCatalogRequest.Scope) }, @@ -2540,8 +2592,8 @@ qualified as: - name:x - column:x - description:y Note: Query tokens need to have a minimum of 3 characters for substring matching to work correctly. See `Data Catalog Search - Syntax `__ for - more information. + Syntax `__ for more information. page_size: Number of results in the search page. If <=0 then defaults to 10. Max limit for page_size is 1000. Throws an invalid @@ -2583,6 +2635,12 @@ next_page_token: The token that can be used to retrieve the next page of results. + unreachable: + Unreachable locations. Search result does not include data + from those locations. Users can get additional information on + the error by repeating the search request with a more + restrictive parameter – setting the value for + ``SearchDataCatalogRequest.scope.include_locations``. """, # @@protoc_insertion_point(class_scope:google.cloud.datacatalog.v1.SearchCatalogResponse) }, @@ -2859,14 +2917,15 @@ //pubsub.googleapis.com/projects/projectId/topics/topicId sql_resource: The SQL name of the entry. SQL names are case-sensitive. - Examples: - ``cloud_pubsub.project_id.topic_id`` - + Examples: - ``pubsub.project_id.topic_id`` - :literal:`pubsub.project_id.`topic.id.with.dots\`` - ``bigquery.table.project_id.dataset_id.table_id`` - ``bigquery.dataset.project_id.dataset_id`` - ``datacatalog.en try.project_id.location_id.entry_group_id.entry_id`` ``*_id``\ s shoud satisfy the standard SQL rules for - identifiers. https://cloud.google.com/bigquery/docs/reference - /standard-sql/lexical. + identifiers. + https://cloud.google.com/bigquery/docs/reference/standard- + sql/lexical. """, # @@protoc_insertion_point(class_scope:google.cloud.datacatalog.v1.LookupEntryRequest) }, @@ -3019,9 +3078,9 @@ Attributes: parent: Required. The name of the project and the template location - `region `__. NOTE: - Currently, only the ``us-central1 region`` is supported. - Example: - projects/{project_id}/locations/us-central1 + `region `__. Example: - + projects/{project_id}/locations/us-central1 tag_template_id: Required. The id of the tag template to create. tag_template: @@ -3185,9 +3244,9 @@ Attributes: parent: Required. The name of the project and the template location - `region `__. NOTE: - Currently, only the ``us-central1 region`` is supported. - Example: - projects/{project_id}/locations/us- + `region `__. Example: - + projects/{project_id}/locations/us- central1/tagTemplates/{tag_template_id} tag_template_field_id: Required. The ID of the tag template field to create. Field @@ -3397,6 +3456,7 @@ DESCRIPTOR._options = None +_SEARCHCATALOGREQUEST_SCOPE.fields_by_name["restricted_locations"]._options = None _SEARCHCATALOGREQUEST.fields_by_name["scope"]._options = None _SEARCHCATALOGREQUEST.fields_by_name["query"]._options = None _SEARCHCATALOGREQUEST.fields_by_name["page_token"]._options = None @@ -3452,8 +3512,8 @@ file=DESCRIPTOR, index=0, serialized_options=b"\312A\032datacatalog.googleapis.com\322A.https://www.googleapis.com/auth/cloud-platform", - serialized_start=5714, - serialized_end=11746, + serialized_start=5772, + serialized_end=11833, methods=[ _descriptor.MethodDescriptor( name="SearchCatalog", @@ -3678,7 +3738,7 @@ containing_service=None, input_type=google_dot_iam_dot_v1_dot_iam__policy__pb2._SETIAMPOLICYREQUEST, output_type=google_dot_iam_dot_v1_dot_policy__pb2._POLICY, - serialized_options=b'\202\323\344\223\002\215\001"A/v1/{resource=projects/*/locations/*/tagTemplates/*}:setIamPolicy:\001*ZE"@/v1/{resource=projects/*/locations/*/entryGroups/*}:setIamPolicy:\001*', + serialized_options=b'\202\323\344\223\002\215\001"A/v1/{resource=projects/*/locations/*/tagTemplates/*}:setIamPolicy:\001*ZE"@/v1/{resource=projects/*/locations/*/entryGroups/*}:setIamPolicy:\001*\332A\017resource,policy', ), _descriptor.MethodDescriptor( name="GetIamPolicy", @@ -3687,7 +3747,7 @@ containing_service=None, input_type=google_dot_iam_dot_v1_dot_iam__policy__pb2._GETIAMPOLICYREQUEST, output_type=google_dot_iam_dot_v1_dot_policy__pb2._POLICY, - serialized_options=b'\202\323\344\223\002\336\001"A/v1/{resource=projects/*/locations/*/tagTemplates/*}:getIamPolicy:\001*ZE"@/v1/{resource=projects/*/locations/*/entryGroups/*}:getIamPolicy:\001*ZO"J/v1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:getIamPolicy:\001*', + serialized_options=b'\202\323\344\223\002\336\001"A/v1/{resource=projects/*/locations/*/tagTemplates/*}:getIamPolicy:\001*ZE"@/v1/{resource=projects/*/locations/*/entryGroups/*}:getIamPolicy:\001*ZO"J/v1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:getIamPolicy:\001*\332A\010resource', ), _descriptor.MethodDescriptor( name="TestIamPermissions", diff --git a/google/cloud/datacatalog_v1/proto/datacatalog_pb2_grpc.py b/google/cloud/datacatalog_v1/proto/datacatalog_pb2_grpc.py index feae38f5..a3a7f677 100644 --- a/google/cloud/datacatalog_v1/proto/datacatalog_pb2_grpc.py +++ b/google/cloud/datacatalog_v1/proto/datacatalog_pb2_grpc.py @@ -180,7 +180,8 @@ def SearchCatalog(self, request, context): across repeated search queries. See [Data Catalog Search - Syntax](/data-catalog/docs/how-to/search-reference) for more information. + Syntax](https://cloud.google.com/data-catalog/docs/how-to/search-reference) + for more information. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -204,7 +205,8 @@ def CreateEntryGroup(self, request, context): Users should enable the Data Catalog API in the project identified by the `parent` parameter (see [Data Catalog Resource Project] - (/data-catalog/docs/concepts/resource-project) for more information). + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for + more information). """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -220,8 +222,9 @@ def GetEntryGroup(self, request, context): def UpdateEntryGroup(self, request, context): """Updates an EntryGroup. The user should enable the Data Catalog API in the project identified by the `entry_group.name` parameter (see [Data Catalog - Resource Project] (/data-catalog/docs/concepts/resource-project) for more - information). + Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for + more information). """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -231,7 +234,8 @@ def DeleteEntryGroup(self, request, context): """Deletes an EntryGroup. Only entry groups that do not contain entries can be deleted. Users should enable the Data Catalog API in the project identified by the `name` parameter (see [Data Catalog Resource Project] - (/data-catalog/docs/concepts/resource-project) for more information). + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for + more information). """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -250,7 +254,8 @@ def CreateEntry(self, request, context): Users should enable the Data Catalog API in the project identified by the `parent` parameter (see [Data Catalog Resource Project] - (/data-catalog/docs/concepts/resource-project) for more information). + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for + more information). A maximum of 100,000 entries may be created per entry group. """ @@ -262,7 +267,8 @@ def UpdateEntry(self, request, context): """Updates an existing entry. Users should enable the Data Catalog API in the project identified by the `entry.name` parameter (see [Data Catalog Resource Project] - (/data-catalog/docs/concepts/resource-project) for more information). + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for + more information). """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -274,7 +280,8 @@ def DeleteEntry(self, request, context): method can be deleted. Users should enable the Data Catalog API in the project identified by the `name` parameter (see [Data Catalog Resource Project] - (/data-catalog/docs/concepts/resource-project) for more information). + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for + more information). """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -306,8 +313,9 @@ def ListEntries(self, request, context): def CreateTagTemplate(self, request, context): """Creates a tag template. The user should enable the Data Catalog API in the project identified by the `parent` parameter (see [Data Catalog - Resource Project](/data-catalog/docs/concepts/resource-project) for more - information). + Resource + Project](https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -326,7 +334,8 @@ def UpdateTagTemplate(self, request, context): and should be updated using their own create/update/delete methods. Users should enable the Data Catalog API in the project identified by the `tag_template.name` parameter (see [Data Catalog Resource Project] - (/data-catalog/docs/concepts/resource-project) for more information). + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for + more information). """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -336,7 +345,8 @@ def DeleteTagTemplate(self, request, context): """Deletes a tag template and all tags using the template. Users should enable the Data Catalog API in the project identified by the `name` parameter (see [Data Catalog Resource Project] - (/data-catalog/docs/concepts/resource-project) for more information). + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for + more information). """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -346,8 +356,8 @@ def CreateTagTemplateField(self, request, context): """Creates a field in a tag template. The user should enable the Data Catalog API in the project identified by the `parent` parameter (see [Data Catalog Resource - Project](/data-catalog/docs/concepts/resource-project) for more - information). + Project](https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -357,7 +367,8 @@ def UpdateTagTemplateField(self, request, context): """Updates a field in a tag template. This method cannot be used to update the field type. Users should enable the Data Catalog API in the project identified by the `name` parameter (see [Data Catalog Resource Project] - (/data-catalog/docs/concepts/resource-project) for more information). + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for + more information). """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -366,8 +377,9 @@ def UpdateTagTemplateField(self, request, context): def RenameTagTemplateField(self, request, context): """Renames a field in a tag template. The user should enable the Data Catalog API in the project identified by the `name` parameter (see [Data Catalog - Resource Project](/data-catalog/docs/concepts/resource-project) for more - information). + Resource + Project](https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -377,7 +389,8 @@ def DeleteTagTemplateField(self, request, context): """Deletes a field in a tag template and all uses of that field. Users should enable the Data Catalog API in the project identified by the `name` parameter (see [Data Catalog Resource Project] - (/data-catalog/docs/concepts/resource-project) for more information). + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for + more information). """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -386,10 +399,10 @@ def DeleteTagTemplateField(self, request, context): def CreateTag(self, request, context): """Creates a tag on an [Entry][google.cloud.datacatalog.v1.Entry]. Note: The project identified by the `parent` parameter for the - [tag](/data-catalog/docs/reference/rest/v1/projects.locations.entryGroups.entries.tags/create#path-parameters) + [tag](https://cloud.google.com/data-catalog/docs/reference/rest/v1/projects.locations.entryGroups.entries.tags/create#path-parameters) and the [tag - template](/data-catalog/docs/reference/rest/v1/projects.locations.tagTemplates/create#path-parameters) + template](https://cloud.google.com/data-catalog/docs/reference/rest/v1/projects.locations.tagTemplates/create#path-parameters) used to create the tag must be from the same organization. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) diff --git a/google/cloud/datacatalog_v1/proto/tags_pb2.py b/google/cloud/datacatalog_v1/proto/tags_pb2.py index 14436cd4..0ddc69cb 100644 --- a/google/cloud/datacatalog_v1/proto/tags_pb2.py +++ b/google/cloud/datacatalog_v1/proto/tags_pb2.py @@ -896,7 +896,8 @@ "__doc__": """Tags are used to attach custom metadata to Data Catalog resources. Tags conform to the specifications within their tag template. - See `Data Catalog IAM `__ for + See `Data Catalog + IAM `__ for information on the permissions needed to create or view tags. @@ -1014,10 +1015,12 @@ "__doc__": """A tag template defines a tag, which can have one or more typed fields. The template is used to create and attach the tag to GCP resources. `Tag template - roles `__ provide - permissions to create, edit, and use the template. See, for example, the - `TagTemplate User `__ role, - which includes permission to use the tag template to tag resources. + roles `__ + provide permissions to create, edit, and use the template. See, for + example, the `TagTemplate + User `__ + role, which includes permission to use the tag template to tag + resources. Attributes: diff --git a/google/cloud/datacatalog_v1/proto/timestamps_pb2.py b/google/cloud/datacatalog_v1/proto/timestamps_pb2.py index 1104081b..c808405f 100644 --- a/google/cloud/datacatalog_v1/proto/timestamps_pb2.py +++ b/google/cloud/datacatalog_v1/proto/timestamps_pb2.py @@ -121,8 +121,7 @@ { "DESCRIPTOR": _SYSTEMTIMESTAMPS, "__module__": "google.cloud.datacatalog_v1.proto.timestamps_pb2", - "__doc__": """Timestamps about this resource according to a particular - system. + "__doc__": """Timestamps about this resource according to a particular system. Attributes: diff --git a/google/cloud/datacatalog_v1beta1/gapic/data_catalog_client.py b/google/cloud/datacatalog_v1beta1/gapic/data_catalog_client.py index 3b5fac26..5f130160 100644 --- a/google/cloud/datacatalog_v1beta1/gapic/data_catalog_client.py +++ b/google/cloud/datacatalog_v1beta1/gapic/data_catalog_client.py @@ -106,17 +106,6 @@ def entry_group_path(cls, project, location, entry_group): entry_group=entry_group, ) - @classmethod - def field_path(cls, project, location, tag_template, field): - """Return a fully-qualified field string.""" - return google.api_core.path_template.expand( - "projects/{project}/locations/{location}/tagTemplates/{tag_template}/fields/{field}", - project=project, - location=location, - tag_template=tag_template, - field=field, - ) - @classmethod def location_path(cls, project, location): """Return a fully-qualified location string.""" @@ -148,6 +137,17 @@ def tag_template_path(cls, project, location, tag_template): tag_template=tag_template, ) + @classmethod + def tag_template_field_path(cls, project, location, tag_template, field): + """Return a fully-qualified tag_template_field string.""" + return google.api_core.path_template.expand( + "projects/{project}/locations/{location}/tagTemplates/{tag_template}/fields/{field}", + project=project, + location=location, + tag_template=tag_template, + field=field, + ) + def __init__( self, transport=None, @@ -272,8 +272,22 @@ def search_catalog( metadata=None, ): """ - Output only. Resource name of this policy tag, whose format is: - "projects/{project_number}/locations/{location_id}/taxonomies/{taxonomy_id}/policyTags/{id}". + Searches Data Catalog for multiple resources like entries, tags that + match a query. + + This is a custom method + (https://cloud.google.com/apis/design/custom_methods) and does not + return the complete resource, only the resource identifier and high + level fields. Clients can subsequentally call ``Get`` methods. + + Note that Data Catalog search queries do not guarantee full recall. + Query results that match your query may not be returned, even in + subsequent result pages. Also note that results returned (and not + returned) can vary across repeated search queries. + + See `Data Catalog Search + Syntax `__ + for more information. Example: >>> from google.cloud import datacatalog_v1beta1 @@ -301,35 +315,39 @@ def search_catalog( ... pass Args: - scope (Union[dict, ~google.cloud.datacatalog_v1beta1.types.Scope]): Required. The scope of this search request. + scope (Union[dict, ~google.cloud.datacatalog_v1beta1.types.Scope]): Required. The scope of this search request. A ``scope`` that has + empty ``include_org_ids``, ``include_project_ids`` AND false + ``include_gcp_public_datasets`` is considered invalid. Data Catalog will + return an error in such a case. If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.datacatalog_v1beta1.types.Scope` - query (str): The Data Catalog resource name of the entry in URL format. Example: + query (str): Required. The query string in search query syntax. The query must be + non-empty. - - projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id} + Query strings can be simple as "x" or more qualified as: - Note that this Entry and its child resources may not actually be stored - in the location in this name. + - name:x + - column:x + - description:y + + Note: Query tokens need to have a minimum of 3 characters for substring + matching to work correctly. See `Data Catalog Search + Syntax `__ + for more information. page_size (int): The maximum number of resources contained in the underlying API response. If page streaming is performed per- resource, this parameter does not affect the return value. If page streaming is performed per-page, this determines the maximum number of resources in a page. - order_by (str): ``etag`` is used for optimistic concurrency control as a way to help - prevent simultaneous updates of a policy from overwriting each other. It - is strongly suggested that systems make use of the ``etag`` in the - read-modify-write cycle to perform policy updates in order to avoid race - conditions: An ``etag`` is returned in the response to ``getIamPolicy``, - and systems are expected to put that etag in the request to - ``setIamPolicy`` to ensure that their change will be applied to the same - version of the policy. - - If no ``etag`` is provided in the call to ``setIamPolicy``, then the - existing policy is overwritten. Due to blind-set semantics of an - etag-less policy, 'setIamPolicy' will not fail even if the incoming - policy version does not meet the requirements for modifying the stored - policy. + order_by (str): Specifies the ordering of results, currently supported + case-sensitive choices are: + + - ``relevance``, only supports descending + - ``last_modified_timestamp [asc|desc]``, defaults to descending if not + specified + + If not specified, defaults to ``relevance`` descending. retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. @@ -381,54 +399,35 @@ def search_catalog( ) return iterator - def create_entry_group( + def delete_entry_group( self, - parent, - entry_group_id, - entry_group, + name, + force=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, ): """ - Request message for ``LookupEntry``. + Deletes an EntryGroup. Only entry groups that do not contain entries + can be deleted. Users should enable the Data Catalog API in the project + identified by the ``name`` parameter (see [Data Catalog Resource + Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Example: >>> from google.cloud import datacatalog_v1beta1 >>> >>> client = datacatalog_v1beta1.DataCatalogClient() >>> - >>> parent = client.location_path('[PROJECT]', '[LOCATION]') - >>> - >>> # TODO: Initialize `entry_group_id`: - >>> entry_group_id = '' - >>> - >>> # TODO: Initialize `entry_group`: - >>> entry_group = {} + >>> name = client.entry_group_path('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]') >>> - >>> response = client.create_entry_group(parent, entry_group_id, entry_group) + >>> client.delete_entry_group(name) Args: - parent (str): The resource this metadata entry refers to. - - For Google Cloud Platform resources, ``linked_resource`` is the `full - name of the - resource `__. - For example, the ``linked_resource`` for a table resource from BigQuery - is: - - - //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId - - Output only when Entry is of type in the EntryType enum. For entries - with user_specified_type, this field is optional and defaults to an - empty string. - entry_group_id (str): Required. The id of the entry group to create. - The id must begin with a letter or underscore, contain only English - letters, numbers and underscores, and be at most 64 characters. - entry_group (Union[dict, ~google.cloud.datacatalog_v1beta1.types.EntryGroup]): The entry group to create. Defaults to an empty entry group. - - If a dict is provided, it must be of the same form as the protobuf - message :class:`~google.cloud.datacatalog_v1beta1.types.EntryGroup` + name (str): Required. The name of the entry group. For example, + ``projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}``. + force (bool): Optional. If true, deletes all entries in the entry group. retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. @@ -438,9 +437,6 @@ def create_entry_group( metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata that is provided to the method. - Returns: - A :class:`~google.cloud.datacatalog_v1beta1.types.EntryGroup` instance. - Raises: google.api_core.exceptions.GoogleAPICallError: If the request failed for any reason. @@ -449,24 +445,22 @@ def create_entry_group( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if "create_entry_group" not in self._inner_api_calls: + if "delete_entry_group" not in self._inner_api_calls: self._inner_api_calls[ - "create_entry_group" + "delete_entry_group" ] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_entry_group, - default_retry=self._method_configs["CreateEntryGroup"].retry, - default_timeout=self._method_configs["CreateEntryGroup"].timeout, + self.transport.delete_entry_group, + default_retry=self._method_configs["DeleteEntryGroup"].retry, + default_timeout=self._method_configs["DeleteEntryGroup"].timeout, client_info=self._client_info, ) - request = datacatalog_pb2.CreateEntryGroupRequest( - parent=parent, entry_group_id=entry_group_id, entry_group=entry_group - ) + request = datacatalog_pb2.DeleteEntryGroupRequest(name=name, force=force) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [("parent", parent)] + routing_header = [("name", name)] except AttributeError: pass else: @@ -475,59 +469,38 @@ def create_entry_group( ) metadata.append(routing_metadata) - return self._inner_api_calls["create_entry_group"]( + self._inner_api_calls["delete_entry_group"]( request, retry=retry, timeout=timeout, metadata=metadata ) - def get_entry_group( + def delete_entry( self, name, - read_mask=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, ): """ - Gets an EntryGroup. + Deletes an existing entry. Only entries created through + ``CreateEntry`` method can be deleted. Users should enable the Data + Catalog API in the project identified by the ``name`` parameter (see + [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Example: >>> from google.cloud import datacatalog_v1beta1 >>> >>> client = datacatalog_v1beta1.DataCatalogClient() >>> - >>> name = client.entry_group_path('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]') + >>> name = client.entry_path('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]') >>> - >>> response = client.get_entry_group(name) + >>> client.delete_entry(name) Args: - name (str): Optional. The relative resource name pattern associated with this - resource type. The DNS prefix of the full resource name shouldn't be - specified here. - - The path pattern must follow the syntax, which aligns with HTTP binding - syntax: - - :: + name (str): Required. The name of the entry. Example: - Template = Segment { "/" Segment } ; - Segment = LITERAL | Variable ; - Variable = "{" LITERAL "}" ; - - Examples: - - :: - - - "projects/{project}/topics/{topic}" - - "projects/{project}/knowledgeBases/{knowledge_base}" - - The components in braces correspond to the IDs for each resource in the - hierarchy. It is expected that, if multiple patterns are provided, the - same component name (e.g. "project") refers to IDs of the same type of - resource. - read_mask (Union[dict, ~google.cloud.datacatalog_v1beta1.types.FieldMask]): The fields to return. If not set or empty, all fields are returned. - - If a dict is provided, it must be of the same form as the protobuf - message :class:`~google.cloud.datacatalog_v1beta1.types.FieldMask` + - projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id} retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. @@ -537,9 +510,6 @@ def get_entry_group( metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata that is provided to the method. - Returns: - A :class:`~google.cloud.datacatalog_v1beta1.types.EntryGroup` instance. - Raises: google.api_core.exceptions.GoogleAPICallError: If the request failed for any reason. @@ -548,17 +518,17 @@ def get_entry_group( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if "get_entry_group" not in self._inner_api_calls: + if "delete_entry" not in self._inner_api_calls: self._inner_api_calls[ - "get_entry_group" + "delete_entry" ] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_entry_group, - default_retry=self._method_configs["GetEntryGroup"].retry, - default_timeout=self._method_configs["GetEntryGroup"].timeout, + self.transport.delete_entry, + default_retry=self._method_configs["DeleteEntry"].retry, + default_timeout=self._method_configs["DeleteEntry"].timeout, client_info=self._client_info, ) - request = datacatalog_pb2.GetEntryGroupRequest(name=name, read_mask=read_mask) + request = datacatalog_pb2.DeleteEntryRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) @@ -572,37 +542,33 @@ def get_entry_group( ) metadata.append(routing_metadata) - return self._inner_api_calls["get_entry_group"]( + self._inner_api_calls["delete_entry"]( request, retry=retry, timeout=timeout, metadata=metadata ) - def delete_entry_group( + def get_entry( self, name, - force=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, ): """ - Request message for ``GetEntry``. + Gets an entry. Example: >>> from google.cloud import datacatalog_v1beta1 >>> >>> client = datacatalog_v1beta1.DataCatalogClient() >>> - >>> name = client.entry_group_path('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]') + >>> name = client.entry_path('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]') >>> - >>> client.delete_entry_group(name) + >>> response = client.get_entry(name) Args: - name (str): The full name of the cloud resource the entry belongs to. See: - https://cloud.google.com/apis/design/resource_names#full_resource_name. - Example: + name (str): Required. The name of the entry. Example: - - ``//bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId`` - force (bool): Optional. If true, deletes all entries in the entry group. + - projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id} retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. @@ -612,6 +578,9 @@ def delete_entry_group( metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata that is provided to the method. + Returns: + A :class:`~google.cloud.datacatalog_v1beta1.types.Entry` instance. + Raises: google.api_core.exceptions.GoogleAPICallError: If the request failed for any reason. @@ -620,17 +589,17 @@ def delete_entry_group( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if "delete_entry_group" not in self._inner_api_calls: + if "get_entry" not in self._inner_api_calls: self._inner_api_calls[ - "delete_entry_group" + "get_entry" ] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_entry_group, - default_retry=self._method_configs["DeleteEntryGroup"].retry, - default_timeout=self._method_configs["DeleteEntryGroup"].timeout, + self.transport.get_entry, + default_retry=self._method_configs["GetEntry"].retry, + default_timeout=self._method_configs["GetEntry"].timeout, client_info=self._client_info, ) - request = datacatalog_pb2.DeleteEntryGroupRequest(name=name, force=force) + request = datacatalog_pb2.GetEntryRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) @@ -644,46 +613,52 @@ def delete_entry_group( ) metadata.append(routing_metadata) - self._inner_api_calls["delete_entry_group"]( + return self._inner_api_calls["get_entry"]( request, retry=retry, timeout=timeout, metadata=metadata ) - def create_entry( + def lookup_entry( self, - parent, - entry_id, - entry, + linked_resource=None, + sql_resource=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, ): """ - For extensions, this is the name of the type being extended. It is - resolved in the same manner as type_name. + Get an entry by target resource name. This method allows clients to use + the resource name from the source Google Cloud Platform service to get the + Data Catalog Entry. Example: >>> from google.cloud import datacatalog_v1beta1 >>> >>> client = datacatalog_v1beta1.DataCatalogClient() >>> - >>> parent = client.entry_group_path('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]') - >>> - >>> # TODO: Initialize `entry_id`: - >>> entry_id = '' - >>> - >>> # TODO: Initialize `entry`: - >>> entry = {} - >>> - >>> response = client.create_entry(parent, entry_id, entry) + >>> response = client.lookup_entry() Args: - parent (str): Spec of a BigQuery table. This field should only be populated if - ``table_source_type`` is ``BIGQUERY_TABLE``. - entry_id (str): Required. The id of the entry to create. - entry (Union[dict, ~google.cloud.datacatalog_v1beta1.types.Entry]): Required. The entry to create. + linked_resource (str): The full name of the Google Cloud Platform resource the Data Catalog + entry represents. See: + https://cloud.google.com/apis/design/resource_names#full_resource_name. + Full names are case-sensitive. - If a dict is provided, it must be of the same form as the protobuf - message :class:`~google.cloud.datacatalog_v1beta1.types.Entry` + Examples: + + - //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId + - //pubsub.googleapis.com/projects/projectId/topics/topicId + sql_resource (str): The SQL name of the entry. SQL names are case-sensitive. + + Examples: + + - ``pubsub.project_id.topic_id`` + - :literal:`pubsub.project_id.`topic.id.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`` + + ``*_id``\ s shoud satisfy the standard SQL rules for identifiers. + https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical. retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. @@ -704,69 +679,63 @@ def create_entry( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if "create_entry" not in self._inner_api_calls: + if "lookup_entry" not in self._inner_api_calls: self._inner_api_calls[ - "create_entry" + "lookup_entry" ] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_entry, - default_retry=self._method_configs["CreateEntry"].retry, - default_timeout=self._method_configs["CreateEntry"].timeout, + self.transport.lookup_entry, + default_retry=self._method_configs["LookupEntry"].retry, + default_timeout=self._method_configs["LookupEntry"].timeout, client_info=self._client_info, ) - request = datacatalog_pb2.CreateEntryRequest( - parent=parent, entry_id=entry_id, entry=entry + # Sanity check: We have some fields which are mutually exclusive; + # raise ValueError if more than one is sent. + google.api_core.protobuf_helpers.check_oneof( + linked_resource=linked_resource, sql_resource=sql_resource ) - if metadata is None: - metadata = [] - metadata = list(metadata) - try: - routing_header = [("parent", parent)] - except AttributeError: - pass - else: - routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header - ) - metadata.append(routing_metadata) - return self._inner_api_calls["create_entry"]( + request = datacatalog_pb2.LookupEntryRequest( + linked_resource=linked_resource, sql_resource=sql_resource + ) + return self._inner_api_calls["lookup_entry"]( request, retry=retry, timeout=timeout, metadata=metadata ) - def update_entry( + def delete_tag_template( self, - entry, - update_mask=None, + name, + force, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, ): """ - A ``TagTemplate``. + Deletes a tag template and all tags using the template. Users should + enable the Data Catalog API in the project identified by the ``name`` + parameter (see [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Example: >>> from google.cloud import datacatalog_v1beta1 >>> >>> client = datacatalog_v1beta1.DataCatalogClient() >>> - >>> # TODO: Initialize `entry`: - >>> entry = {} + >>> name = client.tag_template_path('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]') >>> - >>> response = client.update_entry(entry) + >>> # TODO: Initialize `force`: + >>> force = False + >>> + >>> client.delete_tag_template(name, force) Args: - entry (Union[dict, ~google.cloud.datacatalog_v1beta1.types.Entry]): Required. The updated entry. The "name" field must be set. + name (str): Required. The name of the tag template to delete. Example: - If a dict is provided, it must be of the same form as the protobuf - message :class:`~google.cloud.datacatalog_v1beta1.types.Entry` - update_mask (Union[dict, ~google.cloud.datacatalog_v1beta1.types.FieldMask]): The plural name used in the resource name, such as 'projects' for - the name of 'projects/{project}'. It is the same concept of the - ``plural`` field in k8s CRD spec - https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/ - - If a dict is provided, it must be of the same form as the protobuf - message :class:`~google.cloud.datacatalog_v1beta1.types.FieldMask` + - projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id} + force (bool): Required. Currently, this field must always be set to ``true``. This + confirms the deletion of any possible tags using this template. + ``force = false`` will be supported in the future. retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. @@ -776,9 +745,6 @@ def update_entry( metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata that is provided to the method. - Returns: - A :class:`~google.cloud.datacatalog_v1beta1.types.Entry` instance. - Raises: google.api_core.exceptions.GoogleAPICallError: If the request failed for any reason. @@ -787,24 +753,22 @@ def update_entry( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if "update_entry" not in self._inner_api_calls: + if "delete_tag_template" not in self._inner_api_calls: self._inner_api_calls[ - "update_entry" + "delete_tag_template" ] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_entry, - default_retry=self._method_configs["UpdateEntry"].retry, - default_timeout=self._method_configs["UpdateEntry"].timeout, + self.transport.delete_tag_template, + default_retry=self._method_configs["DeleteTagTemplate"].retry, + default_timeout=self._method_configs["DeleteTagTemplate"].timeout, client_info=self._client_info, ) - request = datacatalog_pb2.UpdateEntryRequest( - entry=entry, update_mask=update_mask - ) + request = datacatalog_pb2.DeleteTagTemplateRequest(name=name, force=force) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [("entry.name", entry.name)] + routing_header = [("name", name)] except AttributeError: pass else: @@ -813,53 +777,44 @@ def update_entry( ) metadata.append(routing_metadata) - return self._inner_api_calls["update_entry"]( + self._inner_api_calls["delete_tag_template"]( request, retry=retry, timeout=timeout, metadata=metadata ) - def delete_entry( + def delete_tag_template_field( self, name, + force, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, ): """ - The full name of the Google Cloud Platform resource the Data Catalog - entry represents. See: - https://cloud.google.com/apis/design/resource_names#full_resource_name. - Full names are case-sensitive. - - Examples: - - - //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId - - //pubsub.googleapis.com/projects/projectId/topics/topicId + Deletes a field in a tag template and all uses of that field. Users + should enable the Data Catalog API in the project identified by the + ``name`` parameter (see [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Example: >>> from google.cloud import datacatalog_v1beta1 >>> >>> client = datacatalog_v1beta1.DataCatalogClient() >>> - >>> name = client.entry_path('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]') + >>> name = client.tag_template_field_path('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]', '[FIELD]') >>> - >>> client.delete_entry(name) + >>> # TODO: Initialize `force`: + >>> force = False + >>> + >>> client.delete_tag_template_field(name, force) Args: - name (str): Set true to use the old proto1 MessageSet wire format for - extensions. This is provided for backwards-compatibility with the - MessageSet wire format. You should not use this for any other reason: - It's less efficient, has fewer features, and is more complicated. - - The message must be defined exactly as follows: message Foo { option - message_set_wire_format = true; extensions 4 to max; } Note that the - message cannot have any defined fields; MessageSets only have - extensions. + name (str): Required. The name of the tag template field to delete. Example: - All extensions of your type must be singular messages; e.g. they cannot - be int32s, enums, or repeated messages. - - Because this is an option, the above two restrictions are not enforced - by the protocol compiler. + - projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id} + force (bool): Required. Currently, this field must always be set to ``true``. This + confirms the deletion of this field from any tags using this field. + ``force = false`` will be supported in the future. retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. @@ -877,17 +832,17 @@ def delete_entry( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if "delete_entry" not in self._inner_api_calls: + if "delete_tag_template_field" not in self._inner_api_calls: self._inner_api_calls[ - "delete_entry" + "delete_tag_template_field" ] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_entry, - default_retry=self._method_configs["DeleteEntry"].retry, - default_timeout=self._method_configs["DeleteEntry"].timeout, + self.transport.delete_tag_template_field, + default_retry=self._method_configs["DeleteTagTemplateField"].retry, + default_timeout=self._method_configs["DeleteTagTemplateField"].timeout, client_info=self._client_info, ) - request = datacatalog_pb2.DeleteEntryRequest(name=name) + request = datacatalog_pb2.DeleteTagTemplateFieldRequest(name=name, force=force) if metadata is None: metadata = [] metadata = list(metadata) @@ -901,11 +856,11 @@ def delete_entry( ) metadata.append(routing_metadata) - self._inner_api_calls["delete_entry"]( + self._inner_api_calls["delete_tag_template_field"]( request, retry=retry, timeout=timeout, metadata=metadata ) - def get_entry( + def delete_tag( self, name, retry=google.api_core.gapic_v1.method.DEFAULT, @@ -913,7 +868,7 @@ def get_entry( metadata=None, ): """ - Gets an entry. + Deletes a tag. Example: >>> from google.cloud import datacatalog_v1beta1 @@ -922,13 +877,12 @@ def get_entry( >>> >>> name = client.entry_path('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]') >>> - >>> response = client.get_entry(name) + >>> client.delete_tag(name) Args: - name (str): The same concept of the ``singular`` field in k8s CRD spec - https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/ - Such as "project" for the ``resourcemanager.googleapis.com/Project`` - type. + name (str): Required. The name of the tag to delete. Example: + + - projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id} retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. @@ -938,9 +892,6 @@ def get_entry( metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata that is provided to the method. - Returns: - A :class:`~google.cloud.datacatalog_v1beta1.types.Entry` instance. - Raises: google.api_core.exceptions.GoogleAPICallError: If the request failed for any reason. @@ -949,17 +900,17 @@ def get_entry( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if "get_entry" not in self._inner_api_calls: + if "delete_tag" not in self._inner_api_calls: self._inner_api_calls[ - "get_entry" + "delete_tag" ] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_entry, - default_retry=self._method_configs["GetEntry"].retry, - default_timeout=self._method_configs["GetEntry"].timeout, + self.transport.delete_tag, + default_retry=self._method_configs["DeleteTag"].retry, + default_timeout=self._method_configs["DeleteTag"].timeout, client_info=self._client_info, ) - request = datacatalog_pb2.GetEntryRequest(name=name) + request = datacatalog_pb2.DeleteTagRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) @@ -973,130 +924,57 @@ def get_entry( ) metadata.append(routing_metadata) - return self._inner_api_calls["get_entry"]( + self._inner_api_calls["delete_tag"]( request, retry=retry, timeout=timeout, metadata=metadata ) - def lookup_entry( + def get_iam_policy( self, - linked_resource=None, - sql_resource=None, + resource, + options_=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, ): """ - Get an entry by target resource name. This method allows clients to use - the resource name from the source Google Cloud Platform service to get the - Data Catalog Entry. - - Example: - >>> from google.cloud import datacatalog_v1beta1 - >>> - >>> client = datacatalog_v1beta1.DataCatalogClient() - >>> - >>> response = client.lookup_entry() - - Args: - linked_resource (str): Gets the access control policy for a resource. A ``NOT_FOUND`` error - is returned if the resource does not exist. An empty policy is returned - if the resource exists but does not have a policy set on it. - - Supported resources are: - - - Tag templates. - - Entries. - - Entry groups. Note, this method cannot be used to manage policies for - BigQuery, Cloud Pub/Sub and any external Google Cloud Platform - resources synced to Cloud Data Catalog. - - Callers must have following Google IAM permission - - - ``datacatalog.tagTemplates.getIamPolicy`` to get policies on tag - templates. - - ``datacatalog.entries.getIamPolicy`` to get policies on entries. - - ``datacatalog.entryGroups.getIamPolicy`` to get policies on entry - groups. - sql_resource (str): Request message for ``UpdateTaxonomy``. - retry (Optional[google.api_core.retry.Retry]): A retry object used - to retry requests. If ``None`` is specified, requests will - be retried using a default configuration. - timeout (Optional[float]): The amount of time, in seconds, to wait - for the request to complete. Note that if ``retry`` is - specified, the timeout applies to each individual attempt. - metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata - that is provided to the method. - - Returns: - A :class:`~google.cloud.datacatalog_v1beta1.types.Entry` instance. + Gets the access control policy for a resource. A ``NOT_FOUND`` error + is returned if the resource does not exist. An empty policy is returned + if the resource exists but does not have a policy set on it. - Raises: - google.api_core.exceptions.GoogleAPICallError: If the request - failed for any reason. - google.api_core.exceptions.RetryError: If the request failed due - to a retryable error and retry attempts failed. - ValueError: If the parameters are invalid. - """ - # Wrap the transport method to add retry and timeout logic. - if "lookup_entry" not in self._inner_api_calls: - self._inner_api_calls[ - "lookup_entry" - ] = google.api_core.gapic_v1.method.wrap_method( - self.transport.lookup_entry, - default_retry=self._method_configs["LookupEntry"].retry, - default_timeout=self._method_configs["LookupEntry"].timeout, - client_info=self._client_info, - ) + Supported resources are: - # Sanity check: We have some fields which are mutually exclusive; - # raise ValueError if more than one is sent. - google.api_core.protobuf_helpers.check_oneof( - linked_resource=linked_resource, sql_resource=sql_resource - ) + - Tag templates. + - Entries. + - Entry groups. Note, this method cannot be used to manage policies for + BigQuery, Pub/Sub and any external Google Cloud Platform resources + synced to Data Catalog. - request = datacatalog_pb2.LookupEntryRequest( - linked_resource=linked_resource, sql_resource=sql_resource - ) - return self._inner_api_calls["lookup_entry"]( - request, retry=retry, timeout=timeout, metadata=metadata - ) + Callers must have following Google IAM permission - def list_entry_groups( - self, - parent, - page_size=None, - page_token=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None, - ): - """ - Lists entry groups. + - ``datacatalog.tagTemplates.getIamPolicy`` to get policies on tag + templates. + - ``datacatalog.entries.getIamPolicy`` to get policies on entries. + - ``datacatalog.entryGroups.getIamPolicy`` to get policies on entry + groups. Example: >>> from google.cloud import datacatalog_v1beta1 >>> >>> client = datacatalog_v1beta1.DataCatalogClient() >>> - >>> parent = client.location_path('[PROJECT]', '[LOCATION]') + >>> # TODO: Initialize `resource`: + >>> resource = '' >>> - >>> response = client.list_entry_groups(parent) + >>> response = client.get_iam_policy(resource) Args: - parent (str): Entry type if it does not fit any of the input-allowed values listed - in ``EntryType`` enum above. When creating an entry, users should check - the enum values first, if nothing matches the entry to be created, then - provide a custom value, for example "my_special_type". - ``user_specified_type`` strings must begin with a letter or underscore - and can only contain letters, numbers, and underscores; are case - insensitive; must be at least 1 character and at most 64 characters - long. - - Currently, only FILESET enum value is allowed. All other entries created - through Data Catalog must use ``user_specified_type``. - page_size (int): Lists the tags on an ``Entry``. - page_token (str): Optional. Token that specifies which page is requested. If empty, the first - page is returned. + resource (str): REQUIRED: The resource for which the policy is being requested. + See the operation documentation for the appropriate value for this field. + options_ (Union[dict, ~google.cloud.datacatalog_v1beta1.types.GetPolicyOptions]): OPTIONAL: A ``GetPolicyOptions`` object for specifying options to + ``GetIamPolicy``. This field is only used by Cloud IAM. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.cloud.datacatalog_v1beta1.types.GetPolicyOptions` retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. @@ -1107,7 +985,7 @@ def list_entry_groups( that is provided to the method. Returns: - A :class:`~google.cloud.datacatalog_v1beta1.types.ListEntryGroupsResponse` instance. + A :class:`~google.cloud.datacatalog_v1beta1.types.Policy` instance. Raises: google.api_core.exceptions.GoogleAPICallError: If the request @@ -1117,24 +995,24 @@ def list_entry_groups( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if "list_entry_groups" not in self._inner_api_calls: + if "get_iam_policy" not in self._inner_api_calls: self._inner_api_calls[ - "list_entry_groups" + "get_iam_policy" ] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_entry_groups, - default_retry=self._method_configs["ListEntryGroups"].retry, - default_timeout=self._method_configs["ListEntryGroups"].timeout, + self.transport.get_iam_policy, + default_retry=self._method_configs["GetIamPolicy"].retry, + default_timeout=self._method_configs["GetIamPolicy"].timeout, client_info=self._client_info, ) - request = datacatalog_pb2.ListEntryGroupsRequest( - parent=parent, page_size=page_size, page_token=page_token + request = iam_policy_pb2.GetIamPolicyRequest( + resource=resource, options=options_ ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [("parent", parent)] + routing_header = [("resource", resource)] except AttributeError: pass else: @@ -1143,69 +1021,54 @@ def list_entry_groups( ) metadata.append(routing_metadata) - return self._inner_api_calls["list_entry_groups"]( + return self._inner_api_calls["get_iam_policy"]( request, retry=retry, timeout=timeout, metadata=metadata ) - def list_entries( + def create_entry_group( self, parent, - page_size=None, - page_token=None, - read_mask=None, + entry_group_id, + entry_group=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, ): """ - Lists entries. + A maximum of 10,000 entry groups may be created per organization + across all locations. + + Users should enable the Data Catalog API in the project identified by + the ``parent`` parameter (see [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Example: >>> from google.cloud import datacatalog_v1beta1 >>> >>> client = datacatalog_v1beta1.DataCatalogClient() >>> - >>> parent = client.entry_group_path('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]') + >>> parent = client.location_path('[PROJECT]', '[LOCATION]') + >>> + >>> # TODO: Initialize `entry_group_id`: + >>> entry_group_id = '' >>> - >>> response = client.list_entries(parent) + >>> response = client.create_entry_group(parent, entry_group_id) Args: - parent (str): Creates an EntryGroup. + parent (str): Required. The name of the project this entry group is in. Example: - An entry group contains logically related entries together with Cloud - Identity and Access Management policies that specify the users who can - create, edit, and view entries within the entry group. + - projects/{project_id}/locations/{location} - Data Catalog automatically creates an entry group for BigQuery entries - ("@bigquery") and Pub/Sub topics ("@pubsub"). Users create their own - entry group to contain Cloud Storage fileset entries or custom type - entries, and the IAM policies associated with those entries. Entry - groups, like entries, can be searched. - - A maximum of 10,000 entry groups may be created per organization across - all locations. - - Users should enable the Data Catalog API in the project identified by - the ``parent`` parameter (see [Data Catalog Resource Project] - (/data-catalog/docs/concepts/resource-project) for more information). - page_size (int): Required. The name of the project and the template location - `region `__. - NOTE: Currently, only the ``us-central1 region`` is supported. - - Example: - - - projects/{project_id}/locations/us-central1 - page_token (str): Token that specifies which page is requested. If empty, the first page is - returned. - read_mask (Union[dict, ~google.cloud.datacatalog_v1beta1.types.FieldMask]): Tags are used to attach custom metadata to Data Catalog resources. - Tags conform to the specifications within their tag template. - - See `Data Catalog - IAM `__ for - information on the permissions needed to create or view tags. + Note that this EntryGroup and its child resources may not actually be + stored in the location in this name. + entry_group_id (str): Required. The id of the entry group to create. + The id must begin with a letter or underscore, contain only English + letters, numbers and underscores, and be at most 64 characters. + entry_group (Union[dict, ~google.cloud.datacatalog_v1beta1.types.EntryGroup]): The entry group to create. Defaults to an empty entry group. If a dict is provided, it must be of the same form as the protobuf - message :class:`~google.cloud.datacatalog_v1beta1.types.FieldMask` + message :class:`~google.cloud.datacatalog_v1beta1.types.EntryGroup` retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. @@ -1216,7 +1079,7 @@ def list_entries( that is provided to the method. Returns: - A :class:`~google.cloud.datacatalog_v1beta1.types.ListEntriesResponse` instance. + A :class:`~google.cloud.datacatalog_v1beta1.types.EntryGroup` instance. Raises: google.api_core.exceptions.GoogleAPICallError: If the request @@ -1226,21 +1089,18 @@ def list_entries( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if "list_entries" not in self._inner_api_calls: + if "create_entry_group" not in self._inner_api_calls: self._inner_api_calls[ - "list_entries" + "create_entry_group" ] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_entries, - default_retry=self._method_configs["ListEntries"].retry, - default_timeout=self._method_configs["ListEntries"].timeout, + self.transport.create_entry_group, + default_retry=self._method_configs["CreateEntryGroup"].retry, + default_timeout=self._method_configs["CreateEntryGroup"].timeout, client_info=self._client_info, ) - request = datacatalog_pb2.ListEntriesRequest( - parent=parent, - page_size=page_size, - page_token=page_token, - read_mask=read_mask, + request = datacatalog_pb2.CreateEntryGroupRequest( + parent=parent, entry_group_id=entry_group_id, entry_group=entry_group ) if metadata is None: metadata = [] @@ -1255,7 +1115,7 @@ def list_entries( ) metadata.append(routing_metadata) - return self._inner_api_calls["list_entries"]( + return self._inner_api_calls["create_entry_group"]( request, retry=retry, timeout=timeout, metadata=metadata ) @@ -1268,7 +1128,11 @@ def update_entry_group( metadata=None, ): """ - An ``Entry``. + Updates an EntryGroup. The user should enable the Data Catalog API + in the project identified by the ``entry_group.name`` parameter (see + [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Example: >>> from google.cloud import datacatalog_v1beta1 @@ -1340,43 +1204,33 @@ def update_entry_group( request, retry=retry, timeout=timeout, metadata=metadata ) - def create_tag_template( + def get_entry_group( self, - parent, - tag_template_id, - tag_template, + name, + read_mask=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, ): """ - 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 `__. + Gets an EntryGroup. Example: >>> from google.cloud import datacatalog_v1beta1 >>> >>> client = datacatalog_v1beta1.DataCatalogClient() >>> - >>> parent = client.location_path('[PROJECT]', '[LOCATION]') - >>> - >>> # TODO: Initialize `tag_template_id`: - >>> tag_template_id = '' - >>> - >>> # TODO: Initialize `tag_template`: - >>> tag_template = {} + >>> name = client.entry_group_path('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]') >>> - >>> response = client.create_tag_template(parent, tag_template_id, tag_template) + >>> response = client.get_entry_group(name) Args: - parent (str): Request message for ``SearchCatalog``. - tag_template_id (str): Required. The id of the tag template to create. - tag_template (Union[dict, ~google.cloud.datacatalog_v1beta1.types.TagTemplate]): Required. The tag template to create. + name (str): Required. The name of the entry group. For example, + ``projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}``. + read_mask (Union[dict, ~google.cloud.datacatalog_v1beta1.types.FieldMask]): The fields to return. If not set or empty, all fields are returned. If a dict is provided, it must be of the same form as the protobuf - message :class:`~google.cloud.datacatalog_v1beta1.types.TagTemplate` + message :class:`~google.cloud.datacatalog_v1beta1.types.FieldMask` retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. @@ -1387,7 +1241,7 @@ def create_tag_template( that is provided to the method. Returns: - A :class:`~google.cloud.datacatalog_v1beta1.types.TagTemplate` instance. + A :class:`~google.cloud.datacatalog_v1beta1.types.EntryGroup` instance. Raises: google.api_core.exceptions.GoogleAPICallError: If the request @@ -1397,24 +1251,22 @@ def create_tag_template( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if "create_tag_template" not in self._inner_api_calls: + if "get_entry_group" not in self._inner_api_calls: self._inner_api_calls[ - "create_tag_template" + "get_entry_group" ] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_tag_template, - default_retry=self._method_configs["CreateTagTemplate"].retry, - default_timeout=self._method_configs["CreateTagTemplate"].timeout, + self.transport.get_entry_group, + default_retry=self._method_configs["GetEntryGroup"].retry, + default_timeout=self._method_configs["GetEntryGroup"].timeout, client_info=self._client_info, ) - request = datacatalog_pb2.CreateTagTemplateRequest( - parent=parent, tag_template_id=tag_template_id, tag_template=tag_template - ) + request = datacatalog_pb2.GetEntryGroupRequest(name=name, read_mask=read_mask) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [("parent", parent)] + routing_header = [("name", name)] except AttributeError: pass else: @@ -1423,48 +1275,54 @@ def create_tag_template( ) metadata.append(routing_metadata) - return self._inner_api_calls["create_tag_template"]( + return self._inner_api_calls["get_entry_group"]( request, retry=retry, timeout=timeout, metadata=metadata ) - def get_tag_template( + def list_entry_groups( self, - name, + parent, + page_size=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, ): """ - Gets a tag template. + Lists entry groups. Example: >>> from google.cloud import datacatalog_v1beta1 >>> >>> client = datacatalog_v1beta1.DataCatalogClient() >>> - >>> name = client.tag_template_path('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]') + >>> parent = client.entry_group_path('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]') >>> - >>> response = client.get_tag_template(name) + >>> # Iterate over all results + >>> for element in client.list_entry_groups(parent): + ... # process element + ... pass + >>> + >>> + >>> # Alternatively: + >>> + >>> # Iterate over results one page at a time + >>> for page in client.list_entry_groups(parent).pages: + ... for element in page: + ... # process element + ... pass Args: - name (str): Whether the message is an automatically generated map entry type for - the maps field. - - For maps fields: map map_field = 1; The parsed - descriptor looks like: message MapFieldEntry { option map_entry = true; - optional KeyType key = 1; optional ValueType value = 2; } repeated - MapFieldEntry map_field = 1; - - Implementations may choose not to generate the map_entry=true message, - but use a native map in the target language to hold the keys and values. - The reflection APIs in such implementations still need to work as if the - field is a repeated message field. - - NOTE: Do not set the option in .proto files. Always use the maps syntax - instead. The option should only be implicitly set by the proto compiler - parser. - retry (Optional[google.api_core.retry.Retry]): A retry object used - to retry requests. If ``None`` is specified, requests will + parent (str): Required. The name of the location that contains the entry groups, + which can be provided in URL format. Example: + + - projects/{project_id}/locations/{location} + page_size (int): The maximum number of resources contained in the + underlying API response. If page streaming is performed per- + resource, this parameter does not affect the return value. If page + streaming is performed per-page, this determines the maximum number + of resources in a page. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will be retried using a default configuration. timeout (Optional[float]): The amount of time, in seconds, to wait for the request to complete. Note that if ``retry`` is @@ -1473,7 +1331,10 @@ def get_tag_template( that is provided to the method. Returns: - A :class:`~google.cloud.datacatalog_v1beta1.types.TagTemplate` instance. + A :class:`~google.api_core.page_iterator.PageIterator` instance. + An iterable of :class:`~google.cloud.datacatalog_v1beta1.types.EntryGroup` instances. + You can also iterate over the pages of the response + using its `pages` property. Raises: google.api_core.exceptions.GoogleAPICallError: If the request @@ -1483,22 +1344,24 @@ def get_tag_template( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if "get_tag_template" not in self._inner_api_calls: + if "list_entry_groups" not in self._inner_api_calls: self._inner_api_calls[ - "get_tag_template" + "list_entry_groups" ] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_tag_template, - default_retry=self._method_configs["GetTagTemplate"].retry, - default_timeout=self._method_configs["GetTagTemplate"].timeout, + self.transport.list_entry_groups, + default_retry=self._method_configs["ListEntryGroups"].retry, + default_timeout=self._method_configs["ListEntryGroups"].timeout, client_info=self._client_info, ) - request = datacatalog_pb2.GetTagTemplateRequest(name=name) + request = datacatalog_pb2.ListEntryGroupsRequest( + parent=parent, page_size=page_size + ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [("name", name)] + routing_header = [("parent", parent)] except AttributeError: pass else: @@ -1507,60 +1370,174 @@ def get_tag_template( ) metadata.append(routing_metadata) - return self._inner_api_calls["get_tag_template"]( + iterator = google.api_core.page_iterator.GRPCIterator( + client=None, + method=functools.partial( + self._inner_api_calls["list_entry_groups"], + retry=retry, + timeout=timeout, + metadata=metadata, + ), + request=request, + items_field="entry_groups", + request_token_field="page_token", + response_token_field="next_page_token", + ) + return iterator + + def create_entry( + self, + parent, + entry_id, + entry, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): + """ + Creates an entry. Only entries of 'FILESET' type or user-specified + type can be created. + + Users should enable the Data Catalog API in the project identified by + the ``parent`` parameter (see [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). + + A maximum of 100,000 entries may be created per entry group. + + Example: + >>> from google.cloud import datacatalog_v1beta1 + >>> + >>> client = datacatalog_v1beta1.DataCatalogClient() + >>> + >>> parent = client.entry_group_path('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]') + >>> + >>> # TODO: Initialize `entry_id`: + >>> entry_id = '' + >>> + >>> # TODO: Initialize `entry`: + >>> entry = {} + >>> + >>> response = client.create_entry(parent, entry_id, entry) + + Args: + parent (str): Required. The name of the entry group this entry is in. Example: + + - projects/{project_id}/locations/{location}/entryGroups/{entry_group_id} + + Note that this Entry and its child resources may not actually be stored + in the location in this name. + entry_id (str): Required. The id of the entry to create. + entry (Union[dict, ~google.cloud.datacatalog_v1beta1.types.Entry]): Required. The entry to create. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.cloud.datacatalog_v1beta1.types.Entry` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.cloud.datacatalog_v1beta1.types.Entry` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if "create_entry" not in self._inner_api_calls: + self._inner_api_calls[ + "create_entry" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_entry, + default_retry=self._method_configs["CreateEntry"].retry, + default_timeout=self._method_configs["CreateEntry"].timeout, + client_info=self._client_info, + ) + + request = datacatalog_pb2.CreateEntryRequest( + parent=parent, entry_id=entry_id, entry=entry + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [("parent", parent)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( + routing_header + ) + metadata.append(routing_metadata) + + return self._inner_api_calls["create_entry"]( request, retry=retry, timeout=timeout, metadata=metadata ) - def update_tag_template( + def update_entry( self, - tag_template, + entry, update_mask=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, ): """ - An annotation that describes a resource definition, see - ``ResourceDescriptor``. + Updates an existing entry. Users should enable the Data Catalog API + in the project identified by the ``entry.name`` parameter (see [Data + Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Example: >>> from google.cloud import datacatalog_v1beta1 >>> >>> client = datacatalog_v1beta1.DataCatalogClient() >>> - >>> # TODO: Initialize `tag_template`: - >>> tag_template = {} + >>> # TODO: Initialize `entry`: + >>> entry = {} >>> - >>> response = client.update_tag_template(tag_template) + >>> response = client.update_entry(entry) Args: - tag_template (Union[dict, ~google.cloud.datacatalog_v1beta1.types.TagTemplate]): Required. The template to update. The "name" field must be set. + entry (Union[dict, ~google.cloud.datacatalog_v1beta1.types.Entry]): Required. The updated entry. The "name" field must be set. If a dict is provided, it must be of the same form as the protobuf - message :class:`~google.cloud.datacatalog_v1beta1.types.TagTemplate` - update_mask (Union[dict, ~google.cloud.datacatalog_v1beta1.types.FieldMask]): Specifies the identities requesting access for a Cloud Platform - resource. ``members`` can have the following values: + message :class:`~google.cloud.datacatalog_v1beta1.types.Entry` + update_mask (Union[dict, ~google.cloud.datacatalog_v1beta1.types.FieldMask]): The fields to update on the entry. If absent or empty, all + modifiable fields are updated. + + The following fields are modifiable: - - ``allUsers``: A special identifier that represents anyone who is on - the internet; with or without a Google account. + - For entries with type ``DATA_STREAM``: - - ``allAuthenticatedUsers``: A special identifier that represents - anyone who is authenticated with a Google account or a service - account. + - ``schema`` - - ``user:{emailid}``: An email address that represents a specific - Google account. For example, ``alice@example.com`` . + - For entries with type ``FILESET`` - - ``serviceAccount:{emailid}``: An email address that represents a - service account. For example, - ``my-other-app@appspot.gserviceaccount.com``. + - ``schema`` + - ``display_name`` + - ``description`` + - ``gcs_fileset_spec`` + - ``gcs_fileset_spec.file_patterns`` - - ``group:{emailid}``: An email address that represents a Google group. - For example, ``admins@example.com``. + - For entries with ``user_specified_type`` - - ``domain:{domain}``: The G Suite domain (primary) that represents all - the users of that domain. For example, ``google.com`` or - ``example.com``. + - ``schema`` + - ``display_name`` + - ``description`` + - user_specified_type + - user_specified_system + - linked_resource + - source_system_timestamps If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.datacatalog_v1beta1.types.FieldMask` @@ -1574,7 +1551,7 @@ def update_tag_template( that is provided to the method. Returns: - A :class:`~google.cloud.datacatalog_v1beta1.types.TagTemplate` instance. + A :class:`~google.cloud.datacatalog_v1beta1.types.Entry` instance. Raises: google.api_core.exceptions.GoogleAPICallError: If the request @@ -1584,24 +1561,24 @@ def update_tag_template( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if "update_tag_template" not in self._inner_api_calls: + if "update_entry" not in self._inner_api_calls: self._inner_api_calls[ - "update_tag_template" + "update_entry" ] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_tag_template, - default_retry=self._method_configs["UpdateTagTemplate"].retry, - default_timeout=self._method_configs["UpdateTagTemplate"].timeout, + self.transport.update_entry, + default_retry=self._method_configs["UpdateEntry"].retry, + default_timeout=self._method_configs["UpdateEntry"].timeout, client_info=self._client_info, ) - request = datacatalog_pb2.UpdateTagTemplateRequest( - tag_template=tag_template, update_mask=update_mask + request = datacatalog_pb2.UpdateEntryRequest( + entry=entry, update_mask=update_mask ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [("tag_template.name", tag_template.name)] + routing_header = [("entry.name", entry.name)] except AttributeError: pass else: @@ -1610,78 +1587,60 @@ def update_tag_template( ) metadata.append(routing_metadata) - return self._inner_api_calls["update_tag_template"]( + return self._inner_api_calls["update_entry"]( request, retry=retry, timeout=timeout, metadata=metadata ) - def delete_tag_template( + def list_entries( self, - name, - force, + parent, + page_size=None, + read_mask=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, ): """ - The relative resource 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}`` + Lists entries. Example: >>> from google.cloud import datacatalog_v1beta1 >>> >>> client = datacatalog_v1beta1.DataCatalogClient() >>> - >>> name = client.tag_template_path('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]') + >>> parent = client.entry_group_path('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]') >>> - >>> # TODO: Initialize `force`: - >>> force = False + >>> # Iterate over all results + >>> for element in client.list_entries(parent): + ... # process element + ... pass >>> - >>> client.delete_tag_template(name, force) + >>> + >>> # Alternatively: + >>> + >>> # Iterate over results one page at a time + >>> for page in client.list_entries(parent).pages: + ... for element in page: + ... # process element + ... pass Args: - name (str): A Location identifies a piece of source code in a .proto file which - corresponds to a particular definition. This information is intended to - be useful to IDEs, code indexers, documentation generators, and similar - tools. - - For example, say we have a file like: message Foo { optional string foo - = 1; } Let's look at just the field definition: optional string foo = 1; - ^ ^^ ^^ ^ ^^^ a bc de f ghi We have the following locations: span path - represents [a,i) [ 4, 0, 2, 0 ] The whole field definition. [a,b) [ 4, - 0, 2, 0, 4 ] The label (optional). [c,d) [ 4, 0, 2, 0, 5 ] The type - (string). [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). [g,h) [ 4, 0, 2, 0, 3 - ] The number (1). - - Notes: - - - A location may refer to a repeated field itself (i.e. not to any - particular index within it). This is used whenever a set of elements - are logically enclosed in a single code segment. For example, an - entire extend block (possibly containing multiple extension - definitions) will have an outer location whose path refers to the - "extensions" repeated field without an index. - - Multiple locations may have the same path. This happens when a single - logical declaration is spread out across multiple places. The most - obvious example is the "extend" block again -- there may be multiple - extend blocks in the same scope, each of which will have the same - path. - - A location's span is not always a subset of its parent's span. For - example, the "extendee" of an extension declaration appears at the - beginning of the "extend" block and is shared by all extensions - within the block. - - Just because a location's span is a subset of some other location's - span does not mean that it is a descendant. For example, a "group" - defines both a type and a field in a single declaration. Thus, the - locations corresponding to the type and field and their components - will overlap. - - Code which tries to interpret locations should probably be designed - to ignore those that it doesn't understand, as more types of - locations could be recorded in the future. - force (bool): Spec for a group of BigQuery tables with name pattern - ``[prefix]YYYYMMDD``. Context: - https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding + parent (str): Required. The name of the entry group that contains the entries, + which can be provided in URL format. Example: + + - projects/{project_id}/locations/{location}/entryGroups/{entry_group_id} + page_size (int): The maximum number of resources contained in the + underlying API response. If page streaming is performed per- + resource, this parameter does not affect the return value. If page + streaming is performed per-page, this determines the maximum number + of resources in a page. + read_mask (Union[dict, ~google.cloud.datacatalog_v1beta1.types.FieldMask]): The fields to return for each Entry. If not set or empty, all fields + are returned. For example, setting read_mask to contain only one path + "name" will cause ListEntries to return a list of Entries with only + "name" field. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.cloud.datacatalog_v1beta1.types.FieldMask` retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. @@ -1691,6 +1650,12 @@ def delete_tag_template( metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata that is provided to the method. + Returns: + A :class:`~google.api_core.page_iterator.PageIterator` instance. + An iterable of :class:`~google.cloud.datacatalog_v1beta1.types.Entry` instances. + You can also iterate over the pages of the response + using its `pages` property. + Raises: google.api_core.exceptions.GoogleAPICallError: If the request failed for any reason. @@ -1699,22 +1664,24 @@ def delete_tag_template( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if "delete_tag_template" not in self._inner_api_calls: + if "list_entries" not in self._inner_api_calls: self._inner_api_calls[ - "delete_tag_template" + "list_entries" ] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_tag_template, - default_retry=self._method_configs["DeleteTagTemplate"].retry, - default_timeout=self._method_configs["DeleteTagTemplate"].timeout, + self.transport.list_entries, + default_retry=self._method_configs["ListEntries"].retry, + default_timeout=self._method_configs["ListEntries"].timeout, client_info=self._client_info, ) - request = datacatalog_pb2.DeleteTagTemplateRequest(name=name, force=force) + request = datacatalog_pb2.ListEntriesRequest( + parent=parent, page_size=page_size, read_mask=read_mask + ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [("name", name)] + routing_header = [("parent", parent)] except AttributeError: pass else: @@ -1723,48 +1690,64 @@ def delete_tag_template( ) metadata.append(routing_metadata) - self._inner_api_calls["delete_tag_template"]( - request, retry=retry, timeout=timeout, metadata=metadata + iterator = google.api_core.page_iterator.GRPCIterator( + client=None, + method=functools.partial( + self._inner_api_calls["list_entries"], + retry=retry, + timeout=timeout, + metadata=metadata, + ), + request=request, + items_field="entries", + request_token_field="page_token", + response_token_field="next_page_token", ) + return iterator - def create_tag_template_field( + def create_tag_template( self, parent, - tag_template_field_id, - tag_template_field, + tag_template_id, + tag_template, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, ): """ - An ``EntryGroup``. + Creates a tag template. The user should enable the Data Catalog API + in the project identified by the ``parent`` parameter (see `Data Catalog + Resource + Project `__ + for more information). Example: >>> from google.cloud import datacatalog_v1beta1 >>> >>> client = datacatalog_v1beta1.DataCatalogClient() >>> - >>> parent = client.tag_template_path('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]') + >>> parent = client.location_path('[PROJECT]', '[LOCATION]') >>> - >>> # TODO: Initialize `tag_template_field_id`: - >>> tag_template_field_id = '' + >>> # TODO: Initialize `tag_template_id`: + >>> tag_template_id = '' >>> - >>> # TODO: Initialize `tag_template_field`: - >>> tag_template_field = {} + >>> # TODO: Initialize `tag_template`: + >>> tag_template = {} >>> - >>> response = client.create_tag_template_field(parent, tag_template_field_id, tag_template_field) + >>> response = client.create_tag_template(parent, tag_template_id, tag_template) Args: - parent (str): Required. Currently, this field must always be set to ``true``. This - confirms the deletion of any possible tags using this template. - ``force = false`` will be supported in the future. - tag_template_field_id (str): Output only. The table name prefix of the shards. The name of any - given shard is ``[table_prefix]YYYYMMDD``, for example, for shard - ``MyTable20180101``, the ``table_prefix`` is ``MyTable``. - tag_template_field (Union[dict, ~google.cloud.datacatalog_v1beta1.types.TagTemplateField]): Required. The tag template field to create. + parent (str): Required. The name of the project and the template location + [region](https://cloud.google.com/data-catalog/docs/concepts/regions. + + Example: + + - projects/{project_id}/locations/us-central1 + tag_template_id (str): Required. The id of the tag template to create. + tag_template (Union[dict, ~google.cloud.datacatalog_v1beta1.types.TagTemplate]): Required. The tag template to create. If a dict is provided, it must be of the same form as the protobuf - message :class:`~google.cloud.datacatalog_v1beta1.types.TagTemplateField` + message :class:`~google.cloud.datacatalog_v1beta1.types.TagTemplate` retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. @@ -1775,7 +1758,7 @@ def create_tag_template_field( that is provided to the method. Returns: - A :class:`~google.cloud.datacatalog_v1beta1.types.TagTemplateField` instance. + A :class:`~google.cloud.datacatalog_v1beta1.types.TagTemplate` instance. Raises: google.api_core.exceptions.GoogleAPICallError: If the request @@ -1785,20 +1768,18 @@ def create_tag_template_field( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if "create_tag_template_field" not in self._inner_api_calls: + if "create_tag_template" not in self._inner_api_calls: self._inner_api_calls[ - "create_tag_template_field" + "create_tag_template" ] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_tag_template_field, - default_retry=self._method_configs["CreateTagTemplateField"].retry, - default_timeout=self._method_configs["CreateTagTemplateField"].timeout, + self.transport.create_tag_template, + default_retry=self._method_configs["CreateTagTemplate"].retry, + default_timeout=self._method_configs["CreateTagTemplate"].timeout, client_info=self._client_info, ) - request = datacatalog_pb2.CreateTagTemplateFieldRequest( - parent=parent, - tag_template_field_id=tag_template_field_id, - tag_template_field=tag_template_field, + request = datacatalog_pb2.CreateTagTemplateRequest( + parent=parent, tag_template_id=tag_template_id, tag_template=tag_template ) if metadata is None: metadata = [] @@ -1813,60 +1794,121 @@ def create_tag_template_field( ) metadata.append(routing_metadata) - return self._inner_api_calls["create_tag_template_field"]( + return self._inner_api_calls["create_tag_template"]( request, retry=retry, timeout=timeout, metadata=metadata ) - def update_tag_template_field( + def get_tag_template( self, name, - tag_template_field, - update_mask=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, ): """ - Creates a tag on an ``Entry``. Note: The project identified by the - ``parent`` parameter for the - `tag `__ - and the `tag - template `__ - used to create the tag must be from the same organization. + Gets a tag template. Example: >>> from google.cloud import datacatalog_v1beta1 >>> >>> client = datacatalog_v1beta1.DataCatalogClient() >>> - >>> name = client.field_path('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]', '[FIELD]') - >>> - >>> # TODO: Initialize `tag_template_field`: - >>> tag_template_field = {} + >>> name = client.tag_template_path('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]') >>> - >>> response = client.update_tag_template_field(name, tag_template_field) + >>> response = client.get_tag_template(name) Args: name (str): Required. The name of the tag template. Example: - - projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id} - tag_template_field (Union[dict, ~google.cloud.datacatalog_v1beta1.types.TagTemplateField]): Required. The template to update. + - projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id} + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.cloud.datacatalog_v1beta1.types.TagTemplate` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if "get_tag_template" not in self._inner_api_calls: + self._inner_api_calls[ + "get_tag_template" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_tag_template, + default_retry=self._method_configs["GetTagTemplate"].retry, + default_timeout=self._method_configs["GetTagTemplate"].timeout, + client_info=self._client_info, + ) + + request = datacatalog_pb2.GetTagTemplateRequest(name=name) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [("name", name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( + routing_header + ) + metadata.append(routing_metadata) + + return self._inner_api_calls["get_tag_template"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def update_tag_template( + self, + tag_template, + update_mask=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): + """ + Updates a tag template. This method cannot be used to update the + fields of a template. The tag template fields are represented as + separate resources and should be updated using their own + create/update/delete methods. Users should enable the Data Catalog API + in the project identified by the ``tag_template.name`` parameter (see + [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). + + Example: + >>> from google.cloud import datacatalog_v1beta1 + >>> + >>> client = datacatalog_v1beta1.DataCatalogClient() + >>> + >>> # TODO: Initialize `tag_template`: + >>> tag_template = {} + >>> + >>> response = client.update_tag_template(tag_template) + + Args: + tag_template (Union[dict, ~google.cloud.datacatalog_v1beta1.types.TagTemplate]): Required. The template to update. The "name" field must be set. If a dict is provided, it must be of the same form as the protobuf - message :class:`~google.cloud.datacatalog_v1beta1.types.TagTemplateField` - update_mask (Union[dict, ~google.cloud.datacatalog_v1beta1.types.FieldMask]): Required. The query string in search query syntax. The query must be - non-empty. + message :class:`~google.cloud.datacatalog_v1beta1.types.TagTemplate` + update_mask (Union[dict, ~google.cloud.datacatalog_v1beta1.types.FieldMask]): The field mask specifies the parts of the template to overwrite. - Query strings can be simple as "x" or more qualified as: + Allowed fields: - - name:x - - column:x - - description:y + - ``display_name`` - Note: Query tokens need to have a minimum of 3 characters for substring - matching to work correctly. See `Data Catalog Search - Syntax `__ - for more information. + If absent or empty, all of the allowed fields above will be updated. If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.datacatalog_v1beta1.types.FieldMask` @@ -1879,6 +1921,103 @@ def update_tag_template_field( metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata that is provided to the method. + Returns: + A :class:`~google.cloud.datacatalog_v1beta1.types.TagTemplate` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if "update_tag_template" not in self._inner_api_calls: + self._inner_api_calls[ + "update_tag_template" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_tag_template, + default_retry=self._method_configs["UpdateTagTemplate"].retry, + default_timeout=self._method_configs["UpdateTagTemplate"].timeout, + client_info=self._client_info, + ) + + request = datacatalog_pb2.UpdateTagTemplateRequest( + tag_template=tag_template, update_mask=update_mask + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [("tag_template.name", tag_template.name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( + routing_header + ) + metadata.append(routing_metadata) + + return self._inner_api_calls["update_tag_template"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def create_tag_template_field( + self, + parent, + tag_template_field_id, + tag_template_field, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): + """ + Creates a field in a tag template. The user should enable the Data + Catalog API in the project identified by the ``parent`` parameter (see + `Data Catalog Resource + Project `__ + for more information). + + Example: + >>> from google.cloud import datacatalog_v1beta1 + >>> + >>> client = datacatalog_v1beta1.DataCatalogClient() + >>> + >>> parent = client.tag_template_path('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]') + >>> + >>> # TODO: Initialize `tag_template_field_id`: + >>> tag_template_field_id = '' + >>> + >>> # TODO: Initialize `tag_template_field`: + >>> tag_template_field = {} + >>> + >>> response = client.create_tag_template_field(parent, tag_template_field_id, tag_template_field) + + Args: + parent (str): Required. The name of the project and the template location + `region `__. + + Example: + + - projects/{project_id}/locations/us-central1/tagTemplates/{tag_template_id} + tag_template_field_id (str): Required. The ID of the tag template field to create. 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. + tag_template_field (Union[dict, ~google.cloud.datacatalog_v1beta1.types.TagTemplateField]): Required. The tag template field to create. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.cloud.datacatalog_v1beta1.types.TagTemplateField` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + Returns: A :class:`~google.cloud.datacatalog_v1beta1.types.TagTemplateField` instance. @@ -1890,24 +2029,26 @@ def update_tag_template_field( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if "update_tag_template_field" not in self._inner_api_calls: + if "create_tag_template_field" not in self._inner_api_calls: self._inner_api_calls[ - "update_tag_template_field" + "create_tag_template_field" ] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_tag_template_field, - default_retry=self._method_configs["UpdateTagTemplateField"].retry, - default_timeout=self._method_configs["UpdateTagTemplateField"].timeout, + self.transport.create_tag_template_field, + default_retry=self._method_configs["CreateTagTemplateField"].retry, + default_timeout=self._method_configs["CreateTagTemplateField"].timeout, client_info=self._client_info, ) - request = datacatalog_pb2.UpdateTagTemplateFieldRequest( - name=name, tag_template_field=tag_template_field, update_mask=update_mask + request = datacatalog_pb2.CreateTagTemplateFieldRequest( + parent=parent, + tag_template_field_id=tag_template_field_id, + tag_template_field=tag_template_field, ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [("name", name)] + routing_header = [("parent", parent)] except AttributeError: pass else: @@ -1916,51 +2057,64 @@ def update_tag_template_field( ) metadata.append(routing_metadata) - return self._inner_api_calls["update_tag_template_field"]( + return self._inner_api_calls["create_tag_template_field"]( request, retry=retry, timeout=timeout, metadata=metadata ) - def rename_tag_template_field( + def update_tag_template_field( self, name, - new_tag_template_field_id, + tag_template_field, + update_mask=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, ): """ - The SQL name of the entry. SQL names are case-sensitive. - - Examples: - - - ``cloud_pubsub.project_id.topic_id`` - - :literal:`pubsub.project_id.`topic.id.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`` - - ``*_id``\ s shoud satisfy the standard SQL rules for identifiers. - https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical. + Updates a field in a tag template. This method cannot be used to + update the field type. Users should enable the Data Catalog API in the + project identified by the ``name`` parameter (see [Data Catalog Resource + Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Example: >>> from google.cloud import datacatalog_v1beta1 >>> >>> client = datacatalog_v1beta1.DataCatalogClient() >>> - >>> name = client.field_path('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]', '[FIELD]') + >>> name = client.tag_template_field_path('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]', '[FIELD]') >>> - >>> # TODO: Initialize `new_tag_template_field_id`: - >>> new_tag_template_field_id = '' + >>> # TODO: Initialize `tag_template_field`: + >>> tag_template_field = {} >>> - >>> response = client.rename_tag_template_field(name, new_tag_template_field_id) + >>> response = client.update_tag_template_field(name, tag_template_field) Args: - name (str): Required. The name of the entry group that contains the entries, - which can be provided in URL format. Example: + name (str): Required. The name of the tag template field. Example: - - projects/{project_id}/locations/{location}/entryGroups/{entry_group_id} - new_tag_template_field_id (str): Output only. Resource name of this taxonomy, whose format is: - "projects/{project_number}/locations/{location_id}/taxonomies/{id}". + - projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id} + tag_template_field (Union[dict, ~google.cloud.datacatalog_v1beta1.types.TagTemplateField]): Required. The template to update. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.cloud.datacatalog_v1beta1.types.TagTemplateField` + update_mask (Union[dict, ~google.cloud.datacatalog_v1beta1.types.FieldMask]): Optional. The field mask specifies the parts of the template to be + updated. Allowed fields: + + - ``display_name`` + - ``type.enum_type`` + - ``is_required`` + + If ``update_mask`` is not set or empty, all of the allowed fields above + will be updated. + + When updating an enum type, the provided values will be merged with the + existing values. Therefore, enum values can only be added, existing enum + values cannot be deleted nor renamed. Updating a template field from + optional to required is NOT allowed. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.cloud.datacatalog_v1beta1.types.FieldMask` retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. @@ -1981,18 +2135,18 @@ def rename_tag_template_field( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if "rename_tag_template_field" not in self._inner_api_calls: + if "update_tag_template_field" not in self._inner_api_calls: self._inner_api_calls[ - "rename_tag_template_field" + "update_tag_template_field" ] = google.api_core.gapic_v1.method.wrap_method( - self.transport.rename_tag_template_field, - default_retry=self._method_configs["RenameTagTemplateField"].retry, - default_timeout=self._method_configs["RenameTagTemplateField"].timeout, + self.transport.update_tag_template_field, + default_retry=self._method_configs["UpdateTagTemplateField"].retry, + default_timeout=self._method_configs["UpdateTagTemplateField"].timeout, client_info=self._client_info, ) - request = datacatalog_pb2.RenameTagTemplateFieldRequest( - name=name, new_tag_template_field_id=new_tag_template_field_id + request = datacatalog_pb2.UpdateTagTemplateFieldRequest( + name=name, tag_template_field=tag_template_field, update_mask=update_mask ) if metadata is None: metadata = [] @@ -2007,162 +2161,43 @@ def rename_tag_template_field( ) metadata.append(routing_metadata) - return self._inner_api_calls["rename_tag_template_field"]( + return self._inner_api_calls["update_tag_template_field"]( request, retry=retry, timeout=timeout, metadata=metadata ) - def delete_tag_template_field( + def rename_tag_template_field( self, name, - force, + new_tag_template_field_id, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, ): """ - A simple descriptor of a resource type. - - ResourceDescriptor annotates a resource message (either by means of a - protobuf annotation or use in the service config), and associates the - resource's schema, the resource type, and the pattern of the resource - name. - - Example: - - :: - - message Topic { - // Indicates this message defines a resource schema. - // Declares the resource type in the format of {service}/{kind}. - // For Kubernetes resources, the format is {api group}/{kind}. - option (google.api.resource) = { - type: "pubsub.googleapis.com/Topic" - name_descriptor: { - pattern: "projects/{project}/topics/{topic}" - parent_type: "cloudresourcemanager.googleapis.com/Project" - parent_name_extractor: "projects/{project}" - } - }; - } - - The ResourceDescriptor Yaml config will look like: - - :: - - resources: - - type: "pubsub.googleapis.com/Topic" - name_descriptor: - - pattern: "projects/{project}/topics/{topic}" - parent_type: "cloudresourcemanager.googleapis.com/Project" - parent_name_extractor: "projects/{project}" - - Sometimes, resources have multiple patterns, typically because they can - live under multiple parents. - - Example: - - :: - - message LogEntry { - option (google.api.resource) = { - type: "logging.googleapis.com/LogEntry" - name_descriptor: { - pattern: "projects/{project}/logs/{log}" - parent_type: "cloudresourcemanager.googleapis.com/Project" - parent_name_extractor: "projects/{project}" - } - name_descriptor: { - pattern: "folders/{folder}/logs/{log}" - parent_type: "cloudresourcemanager.googleapis.com/Folder" - parent_name_extractor: "folders/{folder}" - } - name_descriptor: { - pattern: "organizations/{organization}/logs/{log}" - parent_type: "cloudresourcemanager.googleapis.com/Organization" - parent_name_extractor: "organizations/{organization}" - } - name_descriptor: { - pattern: "billingAccounts/{billing_account}/logs/{log}" - parent_type: "billing.googleapis.com/BillingAccount" - parent_name_extractor: "billingAccounts/{billing_account}" - } - }; - } - - The ResourceDescriptor Yaml config will look like: - - :: - - resources: - - type: 'logging.googleapis.com/LogEntry' - name_descriptor: - - pattern: "projects/{project}/logs/{log}" - parent_type: "cloudresourcemanager.googleapis.com/Project" - parent_name_extractor: "projects/{project}" - - pattern: "folders/{folder}/logs/{log}" - parent_type: "cloudresourcemanager.googleapis.com/Folder" - parent_name_extractor: "folders/{folder}" - - pattern: "organizations/{organization}/logs/{log}" - parent_type: "cloudresourcemanager.googleapis.com/Organization" - parent_name_extractor: "organizations/{organization}" - - pattern: "billingAccounts/{billing_account}/logs/{log}" - parent_type: "billing.googleapis.com/BillingAccount" - parent_name_extractor: "billingAccounts/{billing_account}" - - For flexible resources, the resource name doesn't contain parent names, - but the resource itself has parents for policy evaluation. - - Example: - - :: - - message Shelf { - option (google.api.resource) = { - type: "library.googleapis.com/Shelf" - name_descriptor: { - pattern: "shelves/{shelf}" - parent_type: "cloudresourcemanager.googleapis.com/Project" - } - name_descriptor: { - pattern: "shelves/{shelf}" - parent_type: "cloudresourcemanager.googleapis.com/Folder" - } - }; - } - - The ResourceDescriptor Yaml config will look like: - - :: - - resources: - - type: 'library.googleapis.com/Shelf' - name_descriptor: - - pattern: "shelves/{shelf}" - parent_type: "cloudresourcemanager.googleapis.com/Project" - - pattern: "shelves/{shelf}" - parent_type: "cloudresourcemanager.googleapis.com/Folder" + Renames a field in a tag template. The user should enable the Data + Catalog API in the project identified by the ``name`` parameter (see + `Data Catalog Resource + Project `__ + for more information). Example: >>> from google.cloud import datacatalog_v1beta1 >>> >>> client = datacatalog_v1beta1.DataCatalogClient() >>> - >>> name = client.field_path('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]', '[FIELD]') + >>> name = client.tag_template_field_path('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]', '[FIELD]') >>> - >>> # TODO: Initialize `force`: - >>> force = False + >>> # TODO: Initialize `new_tag_template_field_id`: + >>> new_tag_template_field_id = '' >>> - >>> client.delete_tag_template_field(name, force) + >>> response = client.rename_tag_template_field(name, new_tag_template_field_id) Args: - name (str): A taxonomy is a collection of policy tags that classify data along a - common axis. For instance a data *sensitivity* taxonomy could contain - policy tags denoting PII such as age, zipcode, and SSN. A data *origin* - taxonomy could contain policy tags to distinguish user data, employee - data, partner data, public data. - force (bool): Number of results in the search page. If <=0 then defaults to 10. - Max limit for page_size is 1000. Throws an invalid argument for - page_size > 1000. + name (str): Required. The name of the tag template. Example: + + - projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id} + new_tag_template_field_id (str): Required. The new ID of this tag template field. For example, + ``my_new_field``. retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. @@ -2172,6 +2207,9 @@ def delete_tag_template_field( metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata that is provided to the method. + Returns: + A :class:`~google.cloud.datacatalog_v1beta1.types.TagTemplateField` instance. + Raises: google.api_core.exceptions.GoogleAPICallError: If the request failed for any reason. @@ -2180,17 +2218,19 @@ def delete_tag_template_field( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if "delete_tag_template_field" not in self._inner_api_calls: + if "rename_tag_template_field" not in self._inner_api_calls: self._inner_api_calls[ - "delete_tag_template_field" + "rename_tag_template_field" ] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_tag_template_field, - default_retry=self._method_configs["DeleteTagTemplateField"].retry, - default_timeout=self._method_configs["DeleteTagTemplateField"].timeout, + self.transport.rename_tag_template_field, + default_retry=self._method_configs["RenameTagTemplateField"].retry, + default_timeout=self._method_configs["RenameTagTemplateField"].timeout, client_info=self._client_info, ) - request = datacatalog_pb2.DeleteTagTemplateFieldRequest(name=name, force=force) + request = datacatalog_pb2.RenameTagTemplateFieldRequest( + name=name, new_tag_template_field_id=new_tag_template_field_id + ) if metadata is None: metadata = [] metadata = list(metadata) @@ -2204,7 +2244,7 @@ def delete_tag_template_field( ) metadata.append(routing_metadata) - self._inner_api_calls["delete_tag_template_field"]( + return self._inner_api_calls["rename_tag_template_field"]( request, retry=retry, timeout=timeout, metadata=metadata ) @@ -2217,14 +2257,19 @@ def create_tag( metadata=None, ): """ - Response message for ``ListTags``. + Creates a tag on an ``Entry``. Note: The project identified by the + ``parent`` parameter for the + `tag `__ + and the `tag + template `__ + used to create the tag must be from the same organization. Example: >>> from google.cloud import datacatalog_v1beta1 >>> >>> client = datacatalog_v1beta1.DataCatalogClient() >>> - >>> parent = client.entry_path('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]') + >>> parent = client.tag_path('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]', '[TAG]') >>> >>> # TODO: Initialize `tag`: >>> tag = {} @@ -2232,8 +2277,13 @@ def create_tag( >>> response = client.create_tag(parent, tag) Args: - parent (str): The next_page_token value returned from a previous list request, if - any. If not set, defaults to an empty string. + parent (str): Required. The name of the resource to attach this tag to. Tags can + be attached to Entries. Example: + + - projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id} + + Note that this Tag and its child resources may not actually be stored in + the location in this name. tag (Union[dict, ~google.cloud.datacatalog_v1beta1.types.Tag]): Required. The tag to create. If a dict is provided, it must be of the same form as the protobuf @@ -2312,10 +2362,9 @@ def update_tag( If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.datacatalog_v1beta1.types.Tag` - update_mask (Union[dict, ~google.cloud.datacatalog_v1beta1.types.FieldMask]): If ``true``, include Google Cloud Platform (GCP) public datasets in - the search results. Info on GCP public datasets is available at - https://cloud.google.com/public-datasets/. By default, GCP public - datasets are excluded. + update_mask (Union[dict, ~google.cloud.datacatalog_v1beta1.types.FieldMask]): The fields to update on the Tag. If absent or empty, all modifiable + fields are updated. Currently the only modifiable field is the field + ``fields``. If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.datacatalog_v1beta1.types.FieldMask` @@ -2367,87 +2416,6 @@ def update_tag( request, retry=retry, timeout=timeout, metadata=metadata ) - def delete_tag( - self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None, - ): - """ - Deletes a tag. - - Example: - >>> from google.cloud import datacatalog_v1beta1 - >>> - >>> client = datacatalog_v1beta1.DataCatalogClient() - >>> - >>> name = client.tag_path('[PROJECT]', '[LOCATION]', '[ENTRY_GROUP]', '[ENTRY]', '[TAG]') - >>> - >>> client.delete_tag(name) - - Args: - name (str): Identifies which part of the FileDescriptorProto was defined at this - location. - - Each element is a field number or an index. They form a path from the - root FileDescriptorProto to the place where the definition. For example, - this path: [ 4, 3, 2, 7, 1 ] refers to: file.message_type(3) // 4, 3 - .field(7) // 2, 7 .name() // 1 This is because - FileDescriptorProto.message_type has field number 4: repeated - DescriptorProto message_type = 4; and DescriptorProto.field has field - number 2: repeated FieldDescriptorProto field = 2; and - FieldDescriptorProto.name has field number 1: optional string name = 1; - - Thus, the above path gives the location of a field name. If we removed - the last element: [ 4, 3, 2, 7 ] this path refers to the whole field - declaration (from the beginning of the label to the terminating - semicolon). - retry (Optional[google.api_core.retry.Retry]): A retry object used - to retry requests. If ``None`` is specified, requests will - be retried using a default configuration. - timeout (Optional[float]): The amount of time, in seconds, to wait - for the request to complete. Note that if ``retry`` is - specified, the timeout applies to each individual attempt. - metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata - that is provided to the method. - - Raises: - google.api_core.exceptions.GoogleAPICallError: If the request - failed for any reason. - google.api_core.exceptions.RetryError: If the request failed due - to a retryable error and retry attempts failed. - ValueError: If the parameters are invalid. - """ - # Wrap the transport method to add retry and timeout logic. - if "delete_tag" not in self._inner_api_calls: - self._inner_api_calls[ - "delete_tag" - ] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_tag, - default_retry=self._method_configs["DeleteTag"].retry, - default_timeout=self._method_configs["DeleteTag"].timeout, - client_info=self._client_info, - ) - - request = datacatalog_pb2.DeleteTagRequest(name=name) - if metadata is None: - metadata = [] - metadata = list(metadata) - try: - routing_header = [("name", name)] - except AttributeError: - pass - else: - routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header - ) - metadata.append(routing_metadata) - - self._inner_api_calls["delete_tag"]( - request, retry=retry, timeout=timeout, metadata=metadata - ) - def list_tags( self, parent, @@ -2457,7 +2425,7 @@ def list_tags( metadata=None, ): """ - Request message for ``ExportTaxonomies``. + Lists the tags on an ``Entry``. Example: >>> from google.cloud import datacatalog_v1beta1 @@ -2481,22 +2449,13 @@ def list_tags( ... pass Args: - parent (str): Searches Data Catalog for multiple resources like entries, tags that - match a query. + parent (str): Required. The name of the Data Catalog resource to list the tags of. + The resource could be an ``Entry`` or an ``EntryGroup``. - This is a custom method - (https://cloud.google.com/apis/design/custom_methods) and does not - return the complete resource, only the resource identifier and high - level fields. Clients can subsequentally call ``Get`` methods. - - Note that Data Catalog search queries do not guarantee full recall. - Query results that match your query may not be returned, even in - subsequent result pages. Also note that results returned (and not - returned) can vary across repeated search queries. + Examples: - See `Data Catalog Search - Syntax `__ - for more information. + - projects/{project_id}/locations/{location}/entryGroups/{entry_group_id} + - projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id} page_size (int): The maximum number of resources contained in the underlying API response. If page streaming is performed per- resource, this parameter does not affect the return value. If page @@ -2573,14 +2532,30 @@ def set_iam_policy( metadata=None, ): """ - Response message for ``TestIamPermissions`` method. + Sets the access control policy for a resource. Replaces any existing + policy. Supported resources are: + + - Tag templates. + - Entries. + - Entry groups. Note, this method cannot be used to manage policies for + BigQuery, Pub/Sub and any external Google Cloud Platform resources + synced to Data Catalog. + + Callers must have following Google IAM permission + + - ``datacatalog.tagTemplates.setIamPolicy`` to set policies on tag + templates. + - ``datacatalog.entries.setIamPolicy`` to set policies on entries. + - ``datacatalog.entryGroups.setIamPolicy`` to set policies on entry + groups. Example: >>> from google.cloud import datacatalog_v1beta1 >>> >>> client = datacatalog_v1beta1.DataCatalogClient() >>> - >>> resource = client.tag_template_path('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]') + >>> # TODO: Initialize `resource`: + >>> resource = '' >>> >>> # TODO: Initialize `policy`: >>> policy = {} @@ -2590,8 +2565,10 @@ def set_iam_policy( Args: resource (str): REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field. - policy (Union[dict, ~google.cloud.datacatalog_v1beta1.types.Policy]): Required. The name of the entry group. For example, - ``projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}``. + policy (Union[dict, ~google.cloud.datacatalog_v1beta1.types.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. If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.datacatalog_v1beta1.types.Policy` @@ -2643,112 +2620,37 @@ def set_iam_policy( request, retry=retry, timeout=timeout, metadata=metadata ) - def get_iam_policy( + def test_iam_permissions( self, resource, - options_=None, + permissions, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, ): """ - Entry Metadata. A Data Catalog Entry resource represents another - resource in Google Cloud Platform (such as a BigQuery dataset or a Cloud - Pub/Sub topic), or outside of Google Cloud Platform. Clients can use the - ``linked_resource`` field in the Entry resource to refer to the original - resource ID of the source system. - - An Entry resource contains resource details, such as its schema. An - Entry can also be used to attach flexible metadata, such as a ``Tag``. - - Example: - >>> from google.cloud import datacatalog_v1beta1 - >>> - >>> client = datacatalog_v1beta1.DataCatalogClient() - >>> - >>> resource = client.tag_template_path('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]') - >>> - >>> response = client.get_iam_policy(resource) - - Args: - resource (str): REQUIRED: The resource for which the policy is being requested. - See the operation documentation for the appropriate value for this field. - options_ (Union[dict, ~google.cloud.datacatalog_v1beta1.types.GetPolicyOptions]): Renames a field in a tag template. The user should enable the Data - Catalog API in the project identified by the ``name`` parameter (see - `Data Catalog Resource - Project `__ - for more information). - - If a dict is provided, it must be of the same form as the protobuf - message :class:`~google.cloud.datacatalog_v1beta1.types.GetPolicyOptions` - retry (Optional[google.api_core.retry.Retry]): A retry object used - to retry requests. If ``None`` is specified, requests will - be retried using a default configuration. - timeout (Optional[float]): The amount of time, in seconds, to wait - for the request to complete. Note that if ``retry`` is - specified, the timeout applies to each individual attempt. - metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata - that is provided to the method. - - Returns: - A :class:`~google.cloud.datacatalog_v1beta1.types.Policy` instance. - - Raises: - google.api_core.exceptions.GoogleAPICallError: If the request - failed for any reason. - google.api_core.exceptions.RetryError: If the request failed due - to a retryable error and retry attempts failed. - ValueError: If the parameters are invalid. - """ - # Wrap the transport method to add retry and timeout logic. - if "get_iam_policy" not in self._inner_api_calls: - self._inner_api_calls[ - "get_iam_policy" - ] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_iam_policy, - default_retry=self._method_configs["GetIamPolicy"].retry, - default_timeout=self._method_configs["GetIamPolicy"].timeout, - client_info=self._client_info, - ) + Returns the caller's permissions on a resource. If the resource does + not exist, an empty set of permissions is returned (We don't return a + ``NOT_FOUND`` error). - request = iam_policy_pb2.GetIamPolicyRequest( - resource=resource, options=options_ - ) - if metadata is None: - metadata = [] - metadata = list(metadata) - try: - routing_header = [("resource", resource)] - except AttributeError: - pass - else: - routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header - ) - metadata.append(routing_metadata) + Supported resources are: - return self._inner_api_calls["get_iam_policy"]( - request, retry=retry, timeout=timeout, metadata=metadata - ) + - Tag templates. + - Entries. + - Entry groups. Note, this method cannot be used to manage policies for + BigQuery, Pub/Sub and any external Google Cloud Platform resources + synced to Data Catalog. - def test_iam_permissions( - self, - resource, - permissions, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None, - ): - """ - If set, gives the index of a oneof in the containing type's - oneof_decl list. This field is a member of that oneof. + A caller is not required to have Google IAM permission to make this + request. Example: >>> from google.cloud import datacatalog_v1beta1 >>> >>> client = datacatalog_v1beta1.DataCatalogClient() >>> - >>> resource = client.tag_template_path('[PROJECT]', '[LOCATION]', '[TAG_TEMPLATE]') + >>> # TODO: Initialize `resource`: + >>> resource = '' >>> >>> # TODO: Initialize `permissions`: >>> permissions = [] @@ -2758,8 +2660,10 @@ def test_iam_permissions( Args: resource (str): REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field. - permissions (list[str]): An annotation that describes a resource reference, see - ``ResourceReference``. + permissions (list[str]): 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 `__. retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. diff --git a/google/cloud/datacatalog_v1beta1/gapic/data_catalog_client_config.py b/google/cloud/datacatalog_v1beta1/gapic/data_catalog_client_config.py index 9953348b..ec31f73a 100644 --- a/google/cloud/datacatalog_v1beta1/gapic/data_catalog_client_config.py +++ b/google/cloud/datacatalog_v1beta1/gapic/data_catalog_client_config.py @@ -22,99 +22,109 @@ "retry_codes_name": "non_idempotent", "retry_params_name": "default", }, - "CreateEntryGroup": { + "DeleteEntryGroup": { "timeout_millis": 60000, - "retry_codes_name": "non_idempotent", + "retry_codes_name": "idempotent", "retry_params_name": "default", }, - "GetEntryGroup": { + "DeleteEntry": { "timeout_millis": 60000, "retry_codes_name": "idempotent", "retry_params_name": "default", }, - "DeleteEntryGroup": { + "GetEntry": { "timeout_millis": 60000, "retry_codes_name": "idempotent", "retry_params_name": "default", }, - "CreateEntry": { + "LookupEntry": { "timeout_millis": 60000, - "retry_codes_name": "non_idempotent", + "retry_codes_name": "idempotent", "retry_params_name": "default", }, - "UpdateEntry": { + "DeleteTagTemplate": { "timeout_millis": 60000, - "retry_codes_name": "non_idempotent", + "retry_codes_name": "idempotent", "retry_params_name": "default", }, - "DeleteEntry": { + "DeleteTagTemplateField": { "timeout_millis": 60000, "retry_codes_name": "idempotent", "retry_params_name": "default", }, - "GetEntry": { + "DeleteTag": { "timeout_millis": 60000, "retry_codes_name": "idempotent", "retry_params_name": "default", }, - "LookupEntry": { + "GetIamPolicy": { "timeout_millis": 60000, - "retry_codes_name": "idempotent", + "retry_codes_name": "non_idempotent", "retry_params_name": "default", }, - "ListEntryGroups": { + "CreateEntryGroup": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default", + }, + "UpdateEntryGroup": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default", + }, + "GetEntryGroup": { "timeout_millis": 60000, "retry_codes_name": "idempotent", "retry_params_name": "default", }, - "ListEntries": { + "ListEntryGroups": { "timeout_millis": 60000, "retry_codes_name": "idempotent", "retry_params_name": "default", }, - "UpdateEntryGroup": { + "CreateEntry": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", "retry_params_name": "default", }, - "CreateTagTemplate": { + "UpdateEntry": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", "retry_params_name": "default", }, - "GetTagTemplate": { + "ListEntries": { "timeout_millis": 60000, "retry_codes_name": "idempotent", "retry_params_name": "default", }, - "UpdateTagTemplate": { + "CreateTagTemplate": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", "retry_params_name": "default", }, - "DeleteTagTemplate": { + "GetTagTemplate": { "timeout_millis": 60000, "retry_codes_name": "idempotent", "retry_params_name": "default", }, - "CreateTagTemplateField": { + "UpdateTagTemplate": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", "retry_params_name": "default", }, - "UpdateTagTemplateField": { + "CreateTagTemplateField": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", "retry_params_name": "default", }, - "RenameTagTemplateField": { + "UpdateTagTemplateField": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", "retry_params_name": "default", }, - "DeleteTagTemplateField": { + "RenameTagTemplateField": { "timeout_millis": 60000, - "retry_codes_name": "idempotent", + "retry_codes_name": "non_idempotent", "retry_params_name": "default", }, "CreateTag": { @@ -127,11 +137,6 @@ "retry_codes_name": "non_idempotent", "retry_params_name": "default", }, - "DeleteTag": { - "timeout_millis": 60000, - "retry_codes_name": "idempotent", - "retry_params_name": "default", - }, "ListTags": { "timeout_millis": 60000, "retry_codes_name": "idempotent", @@ -142,11 +147,6 @@ "retry_codes_name": "non_idempotent", "retry_params_name": "default", }, - "GetIamPolicy": { - "timeout_millis": 60000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default", - }, "TestIamPermissions": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", diff --git a/google/cloud/datacatalog_v1beta1/gapic/enums.py b/google/cloud/datacatalog_v1beta1/gapic/enums.py index a5dc5516..ebec5ac2 100644 --- a/google/cloud/datacatalog_v1beta1/gapic/enums.py +++ b/google/cloud/datacatalog_v1beta1/gapic/enums.py @@ -21,45 +21,18 @@ class EntryType(enum.IntEnum): """ - Protocol Buffers - Google's data interchange format Copyright 2008 - Google Inc. All rights reserved. - https://developers.google.com/protocol-buffers/ - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - :: - - * Redistributions of source code must retain the above copyright - - notice, this list of conditions and the following disclaimer. \* - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. \* - Neither the name of Google Inc. nor the names of its contributors may be - used to endorse or promote products derived from this software without - specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER - OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + Entry resources in Data Catalog can be of different types e.g. a + BigQuery Table entry is of type ``TABLE``. This enum describes all the + possible types Data Catalog contains. Attributes: - ENTRY_TYPE_UNSPECIFIED (int): Default unknown type + ENTRY_TYPE_UNSPECIFIED (int): Default unknown type. TABLE (int): Output only. The type of entry that has a GoogleSQL schema, including logical views. MODEL (int): Output only. The type of models. + https://cloud.google.com/bigquery-ml/docs/bigqueryml-intro DATA_STREAM (int): Output only. An entry type which is used for streaming entries. Example: - Cloud Pub/Sub topic. + Pub/Sub topic. FILESET (int): An entry type which is a set of files or objects. Example: Cloud Storage fileset. """ @@ -93,20 +66,9 @@ class SearchResultType(enum.IntEnum): Attributes: SEARCH_RESULT_TYPE_UNSPECIFIED (int): Default unknown type. - ENTRY (int): A designation of a specific field behavior (required, output only, - etc.) in protobuf messages. - - Examples: - - string name = 1 [(google.api.field_behavior) = REQUIRED]; State state = - 1 [(google.api.field_behavior) = OUTPUT_ONLY]; google.protobuf.Duration - ttl = 1 [(google.api.field_behavior) = INPUT_ONLY]; - google.protobuf.Timestamp expire_time = 1 [(google.api.field_behavior) = - OUTPUT_ONLY, (google.api.field_behavior) = IMMUTABLE]; - TAG_TEMPLATE (int): Request message for ``CreateEntry``. - ENTRY_GROUP (int): Optional. A column's mode indicates whether the values in this - column are required, nullable, etc. Only ``NULLABLE``, ``REQUIRED`` and - ``REPEATED`` are supported. Default mode is ``NULLABLE``. + ENTRY (int): An ``Entry``. + TAG_TEMPLATE (int): A ``TagTemplate``. + ENTRY_GROUP (int): An ``EntryGroup``. """ SEARCH_RESULT_TYPE_UNSPECIFIED = 0 diff --git a/google/cloud/datacatalog_v1beta1/gapic/policy_tag_manager_client.py b/google/cloud/datacatalog_v1beta1/gapic/policy_tag_manager_client.py index a40da15a..4d49ce44 100644 --- a/google/cloud/datacatalog_v1beta1/gapic/policy_tag_manager_client.py +++ b/google/cloud/datacatalog_v1beta1/gapic/policy_tag_manager_client.py @@ -16,6 +16,7 @@ """Accesses the google.cloud.datacatalog.v1beta1 PolicyTagManager API.""" +import functools import pkg_resources import warnings @@ -26,6 +27,8 @@ import google.api_core.gapic_v1.method import google.api_core.gapic_v1.routing_header import google.api_core.grpc_helpers +import google.api_core.page_iterator +import google.api_core.path_template import grpc from google.cloud.datacatalog_v1beta1.gapic import enums @@ -83,6 +86,36 @@ def from_service_account_file(cls, filename, *args, **kwargs): from_service_account_json = from_service_account_file + @classmethod + def location_path(cls, project, location): + """Return a fully-qualified location string.""" + return google.api_core.path_template.expand( + "projects/{project}/locations/{location}", + project=project, + location=location, + ) + + @classmethod + def policy_tag_path(cls, project, location, taxonomy, policy_tag): + """Return a fully-qualified policy_tag string.""" + return google.api_core.path_template.expand( + "projects/{project}/locations/{location}/taxonomies/{taxonomy}/policyTags/{policy_tag}", + project=project, + location=location, + taxonomy=taxonomy, + policy_tag=policy_tag, + ) + + @classmethod + def taxonomy_path(cls, project, location, taxonomy): + """Return a fully-qualified taxonomy string.""" + return google.api_core.path_template.expand( + "projects/{project}/locations/{location}/taxonomies/{taxonomy}", + project=project, + location=location, + taxonomy=taxonomy, + ) + def __init__( self, transport=None, @@ -198,7 +231,7 @@ def __init__( # Service calls def create_taxonomy( self, - parent=None, + parent, taxonomy=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, @@ -212,7 +245,9 @@ def create_taxonomy( >>> >>> client = datacatalog_v1beta1.PolicyTagManagerClient() >>> - >>> response = client.create_taxonomy() + >>> parent = client.location_path('[PROJECT]', '[LOCATION]') + >>> + >>> response = client.create_taxonomy(parent) Args: parent (str): Required. Resource name of the project that the taxonomy will belong to. @@ -272,7 +307,7 @@ def create_taxonomy( def delete_taxonomy( self, - name=None, + name, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, @@ -286,7 +321,9 @@ def delete_taxonomy( >>> >>> client = datacatalog_v1beta1.PolicyTagManagerClient() >>> - >>> client.delete_taxonomy() + >>> name = client.taxonomy_path('[PROJECT]', '[LOCATION]', '[TAXONOMY]') + >>> + >>> client.delete_taxonomy(name) Args: name (str): Required. Resource name of the taxonomy to be deleted. All policy tags in @@ -355,16 +392,15 @@ def update_taxonomy( >>> response = client.update_taxonomy() Args: - taxonomy (Union[dict, ~google.cloud.datacatalog_v1beta1.types.Taxonomy]): Request message for ``CreateEntryGroup``. + taxonomy (Union[dict, ~google.cloud.datacatalog_v1beta1.types.Taxonomy]): The taxonomy to update. Only description, display_name, and + activated policy types can be updated. If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.datacatalog_v1beta1.types.Taxonomy` - update_mask (Union[dict, ~google.cloud.datacatalog_v1beta1.types.FieldMask]): Required. The name of the project this entry group is in. Example: - - - projects/{project_id}/locations/{location} - - Note that this EntryGroup and its child resources may not actually be - stored in the location in this name. + update_mask (Union[dict, ~google.cloud.datacatalog_v1beta1.types.FieldMask]): The update mask applies to the resource. For the ``FieldMask`` + definition, see + https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask + If not set, defaults to all of the fields that are allowed to update. If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.datacatalog_v1beta1.types.FieldMask` @@ -420,9 +456,8 @@ def update_taxonomy( def list_taxonomies( self, - parent=None, + parent, page_size=None, - page_token=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, @@ -436,14 +471,29 @@ def list_taxonomies( >>> >>> client = datacatalog_v1beta1.PolicyTagManagerClient() >>> - >>> response = client.list_taxonomies() + >>> parent = client.location_path('[PROJECT]', '[LOCATION]') + >>> + >>> # Iterate over all results + >>> for element in client.list_taxonomies(parent): + ... # process element + ... pass + >>> + >>> + >>> # Alternatively: + >>> + >>> # Iterate over results one page at a time + >>> for page in client.list_taxonomies(parent).pages: + ... for element in page: + ... # process element + ... pass Args: parent (str): Required. Resource name of the project to list the taxonomies of. - page_size (int): The maximum number of items to return. Must be a value between 1 and 1000. - If not set, defaults to 50. - page_token (str): Input and output type names. These are resolved in the same way as - FieldDescriptorProto.type_name, but must refer to a message type. + page_size (int): The maximum number of resources contained in the + underlying API response. If page streaming is performed per- + resource, this parameter does not affect the return value. If page + streaming is performed per-page, this determines the maximum number + of resources in a page. retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. @@ -454,7 +504,10 @@ def list_taxonomies( that is provided to the method. Returns: - A :class:`~google.cloud.datacatalog_v1beta1.types.ListTaxonomiesResponse` instance. + A :class:`~google.api_core.page_iterator.PageIterator` instance. + An iterable of :class:`~google.cloud.datacatalog_v1beta1.types.Taxonomy` instances. + You can also iterate over the pages of the response + using its `pages` property. Raises: google.api_core.exceptions.GoogleAPICallError: If the request @@ -475,7 +528,7 @@ def list_taxonomies( ) request = policytagmanager_pb2.ListTaxonomiesRequest( - parent=parent, page_size=page_size, page_token=page_token + parent=parent, page_size=page_size ) if metadata is None: metadata = [] @@ -490,13 +543,24 @@ def list_taxonomies( ) metadata.append(routing_metadata) - return self._inner_api_calls["list_taxonomies"]( - request, retry=retry, timeout=timeout, metadata=metadata + iterator = google.api_core.page_iterator.GRPCIterator( + client=None, + method=functools.partial( + self._inner_api_calls["list_taxonomies"], + retry=retry, + timeout=timeout, + metadata=metadata, + ), + request=request, + items_field="taxonomies", + request_token_field="page_token", + response_token_field="next_page_token", ) + return iterator def get_taxonomy( self, - name=None, + name, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, @@ -509,7 +573,9 @@ def get_taxonomy( >>> >>> client = datacatalog_v1beta1.PolicyTagManagerClient() >>> - >>> response = client.get_taxonomy() + >>> name = client.taxonomy_path('[PROJECT]', '[LOCATION]', '[TAXONOMY]') + >>> + >>> response = client.get_taxonomy(name) Args: name (str): Required. Resource name of the requested taxonomy. @@ -563,7 +629,7 @@ def get_taxonomy( def create_policy_tag( self, - parent=None, + parent, policy_tag=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, @@ -577,7 +643,9 @@ def create_policy_tag( >>> >>> client = datacatalog_v1beta1.PolicyTagManagerClient() >>> - >>> response = client.create_policy_tag() + >>> parent = client.taxonomy_path('[PROJECT]', '[LOCATION]', '[TAXONOMY]') + >>> + >>> response = client.create_policy_tag(parent) Args: parent (str): Required. Resource name of the taxonomy that the policy tag will belong to. @@ -637,7 +705,7 @@ def create_policy_tag( def delete_policy_tag( self, - name=None, + name, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, @@ -650,7 +718,9 @@ def delete_policy_tag( >>> >>> client = datacatalog_v1beta1.PolicyTagManagerClient() >>> - >>> client.delete_policy_tag() + >>> name = client.policy_tag_path('[PROJECT]', '[LOCATION]', '[TAXONOMY]', '[POLICY_TAG]') + >>> + >>> client.delete_policy_tag(name) Args: name (str): Required. Resource name of the policy tag to be deleted. All of its descendant @@ -719,18 +789,18 @@ def update_policy_tag( >>> response = client.update_policy_tag() Args: - policy_tag (Union[dict, ~google.cloud.datacatalog_v1beta1.types.PolicyTag]): Resources like Entry can have schemas associated with them. This - scope allows users to attach tags to an individual column based on that - schema. - - For attaching a tag to a nested column, use ``.`` to separate the column - names. Example: - - - ``outer_column.inner_column`` + policy_tag (Union[dict, ~google.cloud.datacatalog_v1beta1.types.PolicyTag]): The policy tag to update. Only the description, display_name, and + parent_policy_tag fields can be updated. If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.datacatalog_v1beta1.types.PolicyTag` - update_mask (Union[dict, ~google.cloud.datacatalog_v1beta1.types.FieldMask]): Associates ``members`` with a ``role``. + update_mask (Union[dict, ~google.cloud.datacatalog_v1beta1.types.FieldMask]): The update mask applies to the resource. Only display_name, + description and parent_policy_tag can be updated and thus can be listed + in the mask. If update_mask is not provided, all allowed fields (i.e. + display_name, description and parent) will be updated. For more + information including the ``FieldMask`` definition, see + https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask + If not set, defaults to all of the fields that are allowed to update. If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.datacatalog_v1beta1.types.FieldMask` @@ -786,9 +856,8 @@ def update_policy_tag( def list_policy_tags( self, - parent=None, + parent, page_size=None, - page_token=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, @@ -801,28 +870,29 @@ def list_policy_tags( >>> >>> client = datacatalog_v1beta1.PolicyTagManagerClient() >>> - >>> response = client.list_policy_tags() + >>> parent = client.taxonomy_path('[PROJECT]', '[LOCATION]', '[TAXONOMY]') + >>> + >>> # Iterate over all results + >>> for element in client.list_policy_tags(parent): + ... # process element + ... pass + >>> + >>> + >>> # Alternatively: + >>> + >>> # Iterate over results one page at a time + >>> for page in client.list_policy_tags(parent).pages: + ... for element in page: + ... # process element + ... pass Args: parent (str): Required. Resource name of the taxonomy to list the policy tags of. - page_size (int): The maximum number of items to return. Must be a value between 1 and 1000. - If not set, defaults to 50. - page_token (str): Sets the access control policy for a resource. Replaces any existing - policy. Supported resources are: - - - Tag templates. - - Entries. - - Entry groups. Note, this method cannot be used to manage policies for - BigQuery, Cloud Pub/Sub and any external Google Cloud Platform - resources synced to Cloud Data Catalog. - - Callers must have following Google IAM permission - - - ``datacatalog.tagTemplates.setIamPolicy`` to set policies on tag - templates. - - ``datacatalog.entries.setIamPolicy`` to set policies on entries. - - ``datacatalog.entryGroups.setIamPolicy`` to set policies on entry - groups. + page_size (int): The maximum number of resources contained in the + underlying API response. If page streaming is performed per- + resource, this parameter does not affect the return value. If page + streaming is performed per-page, this determines the maximum number + of resources in a page. retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. @@ -833,7 +903,10 @@ def list_policy_tags( that is provided to the method. Returns: - A :class:`~google.cloud.datacatalog_v1beta1.types.ListPolicyTagsResponse` instance. + A :class:`~google.api_core.page_iterator.PageIterator` instance. + An iterable of :class:`~google.cloud.datacatalog_v1beta1.types.PolicyTag` instances. + You can also iterate over the pages of the response + using its `pages` property. Raises: google.api_core.exceptions.GoogleAPICallError: If the request @@ -854,7 +927,7 @@ def list_policy_tags( ) request = policytagmanager_pb2.ListPolicyTagsRequest( - parent=parent, page_size=page_size, page_token=page_token + parent=parent, page_size=page_size ) if metadata is None: metadata = [] @@ -869,13 +942,24 @@ def list_policy_tags( ) metadata.append(routing_metadata) - return self._inner_api_calls["list_policy_tags"]( - request, retry=retry, timeout=timeout, metadata=metadata + iterator = google.api_core.page_iterator.GRPCIterator( + client=None, + method=functools.partial( + self._inner_api_calls["list_policy_tags"], + retry=retry, + timeout=timeout, + metadata=metadata, + ), + request=request, + items_field="policy_tags", + request_token_field="page_token", + response_token_field="next_page_token", ) + return iterator def get_policy_tag( self, - name=None, + name, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, @@ -888,7 +972,9 @@ def get_policy_tag( >>> >>> client = datacatalog_v1beta1.PolicyTagManagerClient() >>> - >>> response = client.get_policy_tag() + >>> name = client.policy_tag_path('[PROJECT]', '[LOCATION]', '[TAXONOMY]', '[POLICY_TAG]') + >>> + >>> response = client.get_policy_tag(name) Args: name (str): Required. Resource name of the requested policy tag. @@ -942,7 +1028,7 @@ def get_policy_tag( def get_iam_policy( self, - resource=None, + resource, options_=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, @@ -956,16 +1042,16 @@ def get_iam_policy( >>> >>> client = datacatalog_v1beta1.PolicyTagManagerClient() >>> - >>> response = client.get_iam_policy() + >>> # TODO: Initialize `resource`: + >>> resource = '' + >>> + >>> response = client.get_iam_policy(resource) Args: resource (str): REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field. - options_ (Union[dict, ~google.cloud.datacatalog_v1beta1.types.GetPolicyOptions]): Renames a field in a tag template. The user should enable the Data - Catalog API in the project identified by the ``name`` parameter (see - `Data Catalog Resource - Project `__ - for more information). + options_ (Union[dict, ~google.cloud.datacatalog_v1beta1.types.GetPolicyOptions]): OPTIONAL: A ``GetPolicyOptions`` object for specifying options to + ``GetIamPolicy``. This field is only used by Cloud IAM. If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.datacatalog_v1beta1.types.GetPolicyOptions` @@ -1021,8 +1107,8 @@ def get_iam_policy( def set_iam_policy( self, - resource=None, - policy=None, + resource, + policy, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, @@ -1035,13 +1121,21 @@ def set_iam_policy( >>> >>> client = datacatalog_v1beta1.PolicyTagManagerClient() >>> - >>> response = client.set_iam_policy() + >>> # TODO: Initialize `resource`: + >>> resource = '' + >>> + >>> # TODO: Initialize `policy`: + >>> policy = {} + >>> + >>> response = client.set_iam_policy(resource, policy) Args: resource (str): REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field. - policy (Union[dict, ~google.cloud.datacatalog_v1beta1.types.Policy]): Required. The name of the entry group. For example, - ``projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}``. + policy (Union[dict, ~google.cloud.datacatalog_v1beta1.types.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. If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.datacatalog_v1beta1.types.Policy` @@ -1095,8 +1189,8 @@ def set_iam_policy( def test_iam_permissions( self, - resource=None, - permissions=None, + resource, + permissions, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, @@ -1110,13 +1204,21 @@ def test_iam_permissions( >>> >>> client = datacatalog_v1beta1.PolicyTagManagerClient() >>> - >>> response = client.test_iam_permissions() + >>> # TODO: Initialize `resource`: + >>> resource = '' + >>> + >>> # TODO: Initialize `permissions`: + >>> permissions = [] + >>> + >>> response = client.test_iam_permissions(resource, permissions) Args: resource (str): REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field. - permissions (list[str]): An annotation that describes a resource reference, see - ``ResourceReference``. + permissions (list[str]): 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 `__. retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration. diff --git a/google/cloud/datacatalog_v1beta1/gapic/policy_tag_manager_serialization_client.py b/google/cloud/datacatalog_v1beta1/gapic/policy_tag_manager_serialization_client.py index 2ff3a4c3..32356923 100644 --- a/google/cloud/datacatalog_v1beta1/gapic/policy_tag_manager_serialization_client.py +++ b/google/cloud/datacatalog_v1beta1/gapic/policy_tag_manager_serialization_client.py @@ -26,6 +26,7 @@ import google.api_core.gapic_v1.method import google.api_core.gapic_v1.routing_header import google.api_core.grpc_helpers +import google.api_core.path_template import google.api_core.protobuf_helpers import grpc @@ -90,6 +91,25 @@ def from_service_account_file(cls, filename, *args, **kwargs): from_service_account_json = from_service_account_file + @classmethod + def location_path(cls, project, location): + """Return a fully-qualified location string.""" + return google.api_core.path_template.expand( + "projects/{project}/locations/{location}", + project=project, + location=location, + ) + + @classmethod + def taxonomy_path(cls, project, location, taxonomy): + """Return a fully-qualified taxonomy string.""" + return google.api_core.path_template.expand( + "projects/{project}/locations/{location}/taxonomies/{taxonomy}", + project=project, + location=location, + taxonomy=taxonomy, + ) + def __init__( self, transport=None, @@ -205,7 +225,7 @@ def __init__( # Service calls def import_taxonomies( self, - parent=None, + parent, inline_source=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, @@ -223,7 +243,9 @@ def import_taxonomies( >>> >>> client = datacatalog_v1beta1.PolicyTagManagerSerializationClient() >>> - >>> response = client.import_taxonomies() + >>> parent = client.location_path('[PROJECT]', '[LOCATION]') + >>> + >>> response = client.import_taxonomies(parent) Args: parent (str): Required. Resource name of project that the newly created taxonomies will @@ -288,8 +310,8 @@ def import_taxonomies( def export_taxonomies( self, - parent=None, - taxonomies=None, + parent, + taxonomies, serialized_taxonomies=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, @@ -306,7 +328,12 @@ def export_taxonomies( >>> >>> client = datacatalog_v1beta1.PolicyTagManagerSerializationClient() >>> - >>> response = client.export_taxonomies() + >>> parent = client.location_path('[PROJECT]', '[LOCATION]') + >>> + >>> # TODO: Initialize `taxonomies`: + >>> taxonomies = [] + >>> + >>> response = client.export_taxonomies(parent, taxonomies) Args: parent (str): Required. Resource name of the project that taxonomies to be exported diff --git a/google/cloud/datacatalog_v1beta1/gapic/transports/data_catalog_grpc_transport.py b/google/cloud/datacatalog_v1beta1/gapic/transports/data_catalog_grpc_transport.py index 8ac41c97..4761aaa1 100644 --- a/google/cloud/datacatalog_v1beta1/gapic/transports/data_catalog_grpc_transport.py +++ b/google/cloud/datacatalog_v1beta1/gapic/transports/data_catalog_grpc_transport.py @@ -111,8 +111,22 @@ def channel(self): def search_catalog(self): """Return the gRPC stub for :meth:`DataCatalogClient.search_catalog`. - Output only. Resource name of this policy tag, whose format is: - "projects/{project_number}/locations/{location_id}/taxonomies/{taxonomy_id}/policyTags/{id}". + Searches Data Catalog for multiple resources like entries, tags that + match a query. + + This is a custom method + (https://cloud.google.com/apis/design/custom_methods) and does not + return the complete resource, only the resource identifier and high + level fields. Clients can subsequentally call ``Get`` methods. + + Note that Data Catalog search queries do not guarantee full recall. + Query results that match your query may not be returned, even in + subsequent result pages. Also note that results returned (and not + returned) can vary across repeated search queries. + + See `Data Catalog Search + Syntax `__ + for more information. Returns: Callable: A callable which accepts the appropriate @@ -122,119 +136,195 @@ def search_catalog(self): return self._stubs["data_catalog_stub"].SearchCatalog @property - def create_entry_group(self): - """Return the gRPC stub for :meth:`DataCatalogClient.create_entry_group`. + def delete_entry_group(self): + """Return the gRPC stub for :meth:`DataCatalogClient.delete_entry_group`. - Request message for ``LookupEntry``. + Deletes an EntryGroup. Only entry groups that do not contain entries + can be deleted. Users should enable the Data Catalog API in the project + identified by the ``name`` parameter (see [Data Catalog Resource + Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Returns: Callable: A callable which accepts the appropriate deserialized request object and returns a deserialized response object. """ - return self._stubs["data_catalog_stub"].CreateEntryGroup + return self._stubs["data_catalog_stub"].DeleteEntryGroup @property - def get_entry_group(self): - """Return the gRPC stub for :meth:`DataCatalogClient.get_entry_group`. + def delete_entry(self): + """Return the gRPC stub for :meth:`DataCatalogClient.delete_entry`. - Gets an EntryGroup. + Deletes an existing entry. Only entries created through + ``CreateEntry`` method can be deleted. Users should enable the Data + Catalog API in the project identified by the ``name`` parameter (see + [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Returns: Callable: A callable which accepts the appropriate deserialized request object and returns a deserialized response object. """ - return self._stubs["data_catalog_stub"].GetEntryGroup + return self._stubs["data_catalog_stub"].DeleteEntry @property - def delete_entry_group(self): - """Return the gRPC stub for :meth:`DataCatalogClient.delete_entry_group`. + def get_entry(self): + """Return the gRPC stub for :meth:`DataCatalogClient.get_entry`. - Request message for ``GetEntry``. + Gets an entry. Returns: Callable: A callable which accepts the appropriate deserialized request object and returns a deserialized response object. """ - return self._stubs["data_catalog_stub"].DeleteEntryGroup + return self._stubs["data_catalog_stub"].GetEntry @property - def create_entry(self): - """Return the gRPC stub for :meth:`DataCatalogClient.create_entry`. + def lookup_entry(self): + """Return the gRPC stub for :meth:`DataCatalogClient.lookup_entry`. - For extensions, this is the name of the type being extended. It is - resolved in the same manner as type_name. + Get an entry by target resource name. This method allows clients to use + the resource name from the source Google Cloud Platform service to get the + Data Catalog Entry. Returns: Callable: A callable which accepts the appropriate deserialized request object and returns a deserialized response object. """ - return self._stubs["data_catalog_stub"].CreateEntry + return self._stubs["data_catalog_stub"].LookupEntry @property - def update_entry(self): - """Return the gRPC stub for :meth:`DataCatalogClient.update_entry`. + def delete_tag_template(self): + """Return the gRPC stub for :meth:`DataCatalogClient.delete_tag_template`. - A ``TagTemplate``. + Deletes a tag template and all tags using the template. Users should + enable the Data Catalog API in the project identified by the ``name`` + parameter (see [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Returns: Callable: A callable which accepts the appropriate deserialized request object and returns a deserialized response object. """ - return self._stubs["data_catalog_stub"].UpdateEntry + return self._stubs["data_catalog_stub"].DeleteTagTemplate @property - def delete_entry(self): - """Return the gRPC stub for :meth:`DataCatalogClient.delete_entry`. + def delete_tag_template_field(self): + """Return the gRPC stub for :meth:`DataCatalogClient.delete_tag_template_field`. - The full name of the Google Cloud Platform resource the Data Catalog - entry represents. See: - https://cloud.google.com/apis/design/resource_names#full_resource_name. - Full names are case-sensitive. + Deletes a field in a tag template and all uses of that field. Users + should enable the Data Catalog API in the project identified by the + ``name`` parameter (see [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). - Examples: + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs["data_catalog_stub"].DeleteTagTemplateField - - //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId - - //pubsub.googleapis.com/projects/projectId/topics/topicId + @property + def delete_tag(self): + """Return the gRPC stub for :meth:`DataCatalogClient.delete_tag`. + + Deletes a tag. Returns: Callable: A callable which accepts the appropriate deserialized request object and returns a deserialized response object. """ - return self._stubs["data_catalog_stub"].DeleteEntry + return self._stubs["data_catalog_stub"].DeleteTag @property - def get_entry(self): - """Return the gRPC stub for :meth:`DataCatalogClient.get_entry`. + def get_iam_policy(self): + """Return the gRPC stub for :meth:`DataCatalogClient.get_iam_policy`. - Gets an entry. + Gets the access control policy for a resource. A ``NOT_FOUND`` error + is returned if the resource does not exist. An empty policy is returned + if the resource exists but does not have a policy set on it. + + Supported resources are: + + - Tag templates. + - Entries. + - Entry groups. Note, this method cannot be used to manage policies for + BigQuery, Pub/Sub and any external Google Cloud Platform resources + synced to Data Catalog. + + Callers must have following Google IAM permission + + - ``datacatalog.tagTemplates.getIamPolicy`` to get policies on tag + templates. + - ``datacatalog.entries.getIamPolicy`` to get policies on entries. + - ``datacatalog.entryGroups.getIamPolicy`` to get policies on entry + groups. Returns: Callable: A callable which accepts the appropriate deserialized request object and returns a deserialized response object. """ - return self._stubs["data_catalog_stub"].GetEntry + return self._stubs["data_catalog_stub"].GetIamPolicy @property - def lookup_entry(self): - """Return the gRPC stub for :meth:`DataCatalogClient.lookup_entry`. + def create_entry_group(self): + """Return the gRPC stub for :meth:`DataCatalogClient.create_entry_group`. - Get an entry by target resource name. This method allows clients to use - the resource name from the source Google Cloud Platform service to get the - Data Catalog Entry. + A maximum of 10,000 entry groups may be created per organization + across all locations. + + Users should enable the Data Catalog API in the project identified by + the ``parent`` parameter (see [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Returns: Callable: A callable which accepts the appropriate deserialized request object and returns a deserialized response object. """ - return self._stubs["data_catalog_stub"].LookupEntry + return self._stubs["data_catalog_stub"].CreateEntryGroup + + @property + def update_entry_group(self): + """Return the gRPC stub for :meth:`DataCatalogClient.update_entry_group`. + + Updates an EntryGroup. The user should enable the Data Catalog API + in the project identified by the ``entry_group.name`` parameter (see + [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs["data_catalog_stub"].UpdateEntryGroup + + @property + def get_entry_group(self): + """Return the gRPC stub for :meth:`DataCatalogClient.get_entry_group`. + + Gets an EntryGroup. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs["data_catalog_stub"].GetEntryGroup @property def list_entry_groups(self): @@ -250,39 +340,65 @@ def list_entry_groups(self): return self._stubs["data_catalog_stub"].ListEntryGroups @property - def list_entries(self): - """Return the gRPC stub for :meth:`DataCatalogClient.list_entries`. + def create_entry(self): + """Return the gRPC stub for :meth:`DataCatalogClient.create_entry`. - Lists entries. + Creates an entry. Only entries of 'FILESET' type or user-specified + type can be created. + + Users should enable the Data Catalog API in the project identified by + the ``parent`` parameter (see [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). + + A maximum of 100,000 entries may be created per entry group. Returns: Callable: A callable which accepts the appropriate deserialized request object and returns a deserialized response object. """ - return self._stubs["data_catalog_stub"].ListEntries + return self._stubs["data_catalog_stub"].CreateEntry @property - def update_entry_group(self): - """Return the gRPC stub for :meth:`DataCatalogClient.update_entry_group`. + def update_entry(self): + """Return the gRPC stub for :meth:`DataCatalogClient.update_entry`. - An ``Entry``. + Updates an existing entry. Users should enable the Data Catalog API + in the project identified by the ``entry.name`` parameter (see [Data + Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Returns: Callable: A callable which accepts the appropriate deserialized request object and returns a deserialized response object. """ - return self._stubs["data_catalog_stub"].UpdateEntryGroup + return self._stubs["data_catalog_stub"].UpdateEntry + + @property + def list_entries(self): + """Return the gRPC stub for :meth:`DataCatalogClient.list_entries`. + + Lists entries. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs["data_catalog_stub"].ListEntries @property def create_tag_template(self): """Return the gRPC stub for :meth:`DataCatalogClient.create_tag_template`. - 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 `__. + Creates a tag template. The user should enable the Data Catalog API + in the project identified by the ``parent`` parameter (see `Data Catalog + Resource + Project `__ + for more information). Returns: Callable: A callable which accepts the appropriate @@ -308,8 +424,14 @@ def get_tag_template(self): def update_tag_template(self): """Return the gRPC stub for :meth:`DataCatalogClient.update_tag_template`. - An annotation that describes a resource definition, see - ``ResourceDescriptor``. + Updates a tag template. This method cannot be used to update the + fields of a template. The tag template fields are represented as + separate resources and should be updated using their own + create/update/delete methods. Users should enable the Data Catalog API + in the project identified by the ``tag_template.name`` parameter (see + [Data Catalog Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Returns: Callable: A callable which accepts the appropriate @@ -318,27 +440,15 @@ def update_tag_template(self): """ return self._stubs["data_catalog_stub"].UpdateTagTemplate - @property - def delete_tag_template(self): - """Return the gRPC stub for :meth:`DataCatalogClient.delete_tag_template`. - - The relative resource 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}`` - - Returns: - Callable: A callable which accepts the appropriate - deserialized request object and returns a - deserialized response object. - """ - return self._stubs["data_catalog_stub"].DeleteTagTemplate - @property def create_tag_template_field(self): """Return the gRPC stub for :meth:`DataCatalogClient.create_tag_template_field`. - An ``EntryGroup``. + Creates a field in a tag template. The user should enable the Data + Catalog API in the project identified by the ``parent`` parameter (see + `Data Catalog Resource + Project `__ + for more information). Returns: Callable: A callable which accepts the appropriate @@ -351,12 +461,12 @@ def create_tag_template_field(self): def update_tag_template_field(self): """Return the gRPC stub for :meth:`DataCatalogClient.update_tag_template_field`. - Creates a tag on an ``Entry``. Note: The project identified by the - ``parent`` parameter for the - `tag `__ - and the `tag - template `__ - used to create the tag must be from the same organization. + Updates a field in a tag template. This method cannot be used to + update the field type. Users should enable the Data Catalog API in the + project identified by the ``name`` parameter (see [Data Catalog Resource + Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). Returns: Callable: A callable which accepts the appropriate @@ -369,18 +479,11 @@ def update_tag_template_field(self): def rename_tag_template_field(self): """Return the gRPC stub for :meth:`DataCatalogClient.rename_tag_template_field`. - The SQL name of the entry. SQL names are case-sensitive. - - Examples: - - - ``cloud_pubsub.project_id.topic_id`` - - :literal:`pubsub.project_id.`topic.id.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`` - - ``*_id``\ s shoud satisfy the standard SQL rules for identifiers. - https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical. + Renames a field in a tag template. The user should enable the Data + Catalog API in the project identified by the ``name`` parameter (see + `Data Catalog Resource + Project `__ + for more information). Returns: Callable: A callable which accepts the appropriate @@ -389,144 +492,16 @@ def rename_tag_template_field(self): """ return self._stubs["data_catalog_stub"].RenameTagTemplateField - @property - def delete_tag_template_field(self): - """Return the gRPC stub for :meth:`DataCatalogClient.delete_tag_template_field`. - - A simple descriptor of a resource type. - - ResourceDescriptor annotates a resource message (either by means of a - protobuf annotation or use in the service config), and associates the - resource's schema, the resource type, and the pattern of the resource - name. - - Example: - - :: - - message Topic { - // Indicates this message defines a resource schema. - // Declares the resource type in the format of {service}/{kind}. - // For Kubernetes resources, the format is {api group}/{kind}. - option (google.api.resource) = { - type: "pubsub.googleapis.com/Topic" - name_descriptor: { - pattern: "projects/{project}/topics/{topic}" - parent_type: "cloudresourcemanager.googleapis.com/Project" - parent_name_extractor: "projects/{project}" - } - }; - } - - The ResourceDescriptor Yaml config will look like: - - :: - - resources: - - type: "pubsub.googleapis.com/Topic" - name_descriptor: - - pattern: "projects/{project}/topics/{topic}" - parent_type: "cloudresourcemanager.googleapis.com/Project" - parent_name_extractor: "projects/{project}" - - Sometimes, resources have multiple patterns, typically because they can - live under multiple parents. - - Example: - - :: - - message LogEntry { - option (google.api.resource) = { - type: "logging.googleapis.com/LogEntry" - name_descriptor: { - pattern: "projects/{project}/logs/{log}" - parent_type: "cloudresourcemanager.googleapis.com/Project" - parent_name_extractor: "projects/{project}" - } - name_descriptor: { - pattern: "folders/{folder}/logs/{log}" - parent_type: "cloudresourcemanager.googleapis.com/Folder" - parent_name_extractor: "folders/{folder}" - } - name_descriptor: { - pattern: "organizations/{organization}/logs/{log}" - parent_type: "cloudresourcemanager.googleapis.com/Organization" - parent_name_extractor: "organizations/{organization}" - } - name_descriptor: { - pattern: "billingAccounts/{billing_account}/logs/{log}" - parent_type: "billing.googleapis.com/BillingAccount" - parent_name_extractor: "billingAccounts/{billing_account}" - } - }; - } - - The ResourceDescriptor Yaml config will look like: - - :: - - resources: - - type: 'logging.googleapis.com/LogEntry' - name_descriptor: - - pattern: "projects/{project}/logs/{log}" - parent_type: "cloudresourcemanager.googleapis.com/Project" - parent_name_extractor: "projects/{project}" - - pattern: "folders/{folder}/logs/{log}" - parent_type: "cloudresourcemanager.googleapis.com/Folder" - parent_name_extractor: "folders/{folder}" - - pattern: "organizations/{organization}/logs/{log}" - parent_type: "cloudresourcemanager.googleapis.com/Organization" - parent_name_extractor: "organizations/{organization}" - - pattern: "billingAccounts/{billing_account}/logs/{log}" - parent_type: "billing.googleapis.com/BillingAccount" - parent_name_extractor: "billingAccounts/{billing_account}" - - For flexible resources, the resource name doesn't contain parent names, - but the resource itself has parents for policy evaluation. - - Example: - - :: - - message Shelf { - option (google.api.resource) = { - type: "library.googleapis.com/Shelf" - name_descriptor: { - pattern: "shelves/{shelf}" - parent_type: "cloudresourcemanager.googleapis.com/Project" - } - name_descriptor: { - pattern: "shelves/{shelf}" - parent_type: "cloudresourcemanager.googleapis.com/Folder" - } - }; - } - - The ResourceDescriptor Yaml config will look like: - - :: - - resources: - - type: 'library.googleapis.com/Shelf' - name_descriptor: - - pattern: "shelves/{shelf}" - parent_type: "cloudresourcemanager.googleapis.com/Project" - - pattern: "shelves/{shelf}" - parent_type: "cloudresourcemanager.googleapis.com/Folder" - - Returns: - Callable: A callable which accepts the appropriate - deserialized request object and returns a - deserialized response object. - """ - return self._stubs["data_catalog_stub"].DeleteTagTemplateField - @property def create_tag(self): """Return the gRPC stub for :meth:`DataCatalogClient.create_tag`. - Response message for ``ListTags``. + Creates a tag on an ``Entry``. Note: The project identified by the + ``parent`` parameter for the + `tag `__ + and the `tag + template `__ + used to create the tag must be from the same organization. Returns: Callable: A callable which accepts the appropriate @@ -548,24 +523,11 @@ def update_tag(self): """ return self._stubs["data_catalog_stub"].UpdateTag - @property - def delete_tag(self): - """Return the gRPC stub for :meth:`DataCatalogClient.delete_tag`. - - Deletes a tag. - - Returns: - Callable: A callable which accepts the appropriate - deserialized request object and returns a - deserialized response object. - """ - return self._stubs["data_catalog_stub"].DeleteTag - @property def list_tags(self): """Return the gRPC stub for :meth:`DataCatalogClient.list_tags`. - Request message for ``ExportTaxonomies``. + Lists the tags on an ``Entry``. Returns: Callable: A callable which accepts the appropriate @@ -578,41 +540,48 @@ def list_tags(self): def set_iam_policy(self): """Return the gRPC stub for :meth:`DataCatalogClient.set_iam_policy`. - Response message for ``TestIamPermissions`` method. - - Returns: - Callable: A callable which accepts the appropriate - deserialized request object and returns a - deserialized response object. - """ - return self._stubs["data_catalog_stub"].SetIamPolicy + Sets the access control policy for a resource. Replaces any existing + policy. Supported resources are: - @property - def get_iam_policy(self): - """Return the gRPC stub for :meth:`DataCatalogClient.get_iam_policy`. + - Tag templates. + - Entries. + - Entry groups. Note, this method cannot be used to manage policies for + BigQuery, Pub/Sub and any external Google Cloud Platform resources + synced to Data Catalog. - Entry Metadata. A Data Catalog Entry resource represents another - resource in Google Cloud Platform (such as a BigQuery dataset or a Cloud - Pub/Sub topic), or outside of Google Cloud Platform. Clients can use the - ``linked_resource`` field in the Entry resource to refer to the original - resource ID of the source system. + Callers must have following Google IAM permission - An Entry resource contains resource details, such as its schema. An - Entry can also be used to attach flexible metadata, such as a ``Tag``. + - ``datacatalog.tagTemplates.setIamPolicy`` to set policies on tag + templates. + - ``datacatalog.entries.setIamPolicy`` to set policies on entries. + - ``datacatalog.entryGroups.setIamPolicy`` to set policies on entry + groups. Returns: Callable: A callable which accepts the appropriate deserialized request object and returns a deserialized response object. """ - return self._stubs["data_catalog_stub"].GetIamPolicy + return self._stubs["data_catalog_stub"].SetIamPolicy @property def test_iam_permissions(self): """Return the gRPC stub for :meth:`DataCatalogClient.test_iam_permissions`. - If set, gives the index of a oneof in the containing type's - oneof_decl list. This field is a member of that oneof. + Returns the caller's permissions on a resource. If the resource does + not exist, an empty set of permissions is returned (We don't return a + ``NOT_FOUND`` error). + + Supported resources are: + + - Tag templates. + - Entries. + - Entry groups. Note, this method cannot be used to manage policies for + BigQuery, Pub/Sub and any external Google Cloud Platform resources + synced to Data Catalog. + + A caller is not required to have Google IAM permission to make this + request. Returns: Callable: A callable which accepts the appropriate diff --git a/google/cloud/datacatalog_v1beta1/proto/common_pb2.py b/google/cloud/datacatalog_v1beta1/proto/common_pb2.py index 7c003c5b..c3ee412c 100644 --- a/google/cloud/datacatalog_v1beta1/proto/common_pb2.py +++ b/google/cloud/datacatalog_v1beta1/proto/common_pb2.py @@ -17,8 +17,8 @@ name="google/cloud/datacatalog_v1beta1/proto/common.proto", package="google.cloud.datacatalog.v1beta1", syntax="proto3", - serialized_options=b"\n$com.google.cloud.datacatalog.v1beta1P\001ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\370\001\001", - serialized_pb=b"\n3google/cloud/datacatalog_v1beta1/proto/common.proto\x12 google.cloud.datacatalog.v1beta1*U\n\x10IntegratedSystem\x12!\n\x1dINTEGRATED_SYSTEM_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x42IGQUERY\x10\x01\x12\x10\n\x0c\x43LOUD_PUBSUB\x10\x02\x42x\n$com.google.cloud.datacatalog.v1beta1P\x01ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\xf8\x01\x01\x62\x06proto3", + serialized_options=b"\n$com.google.cloud.datacatalog.v1beta1P\001ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\370\001\001\252\002 Google.Cloud.DataCatalog.V1Beta1\312\002 Google\\Cloud\\DataCatalog\\V1beta1\352\002#Google::Cloud::DataCatalog::V1beta1", + serialized_pb=b"\n3google/cloud/datacatalog_v1beta1/proto/common.proto\x12 google.cloud.datacatalog.v1beta1*U\n\x10IntegratedSystem\x12!\n\x1dINTEGRATED_SYSTEM_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x42IGQUERY\x10\x01\x12\x10\n\x0c\x43LOUD_PUBSUB\x10\x02\x42\xe4\x01\n$com.google.cloud.datacatalog.v1beta1P\x01ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\xf8\x01\x01\xaa\x02 Google.Cloud.DataCatalog.V1Beta1\xca\x02 Google\\Cloud\\DataCatalog\\V1beta1\xea\x02#Google::Cloud::DataCatalog::V1beta1b\x06proto3", ) _INTEGRATEDSYSTEM = _descriptor.EnumDescriptor( diff --git a/google/cloud/datacatalog_v1beta1/proto/datacatalog_pb2.py b/google/cloud/datacatalog_v1beta1/proto/datacatalog_pb2.py index 9a36fadd..00ca7fda 100644 --- a/google/cloud/datacatalog_v1beta1/proto/datacatalog_pb2.py +++ b/google/cloud/datacatalog_v1beta1/proto/datacatalog_pb2.py @@ -48,8 +48,8 @@ name="google/cloud/datacatalog_v1beta1/proto/datacatalog.proto", package="google.cloud.datacatalog.v1beta1", syntax="proto3", - serialized_options=b"\n$com.google.cloud.datacatalog.v1beta1P\001ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\370\001\001", - serialized_pb=b'\n8google/cloud/datacatalog_v1beta1/proto/datacatalog.proto\x12 google.cloud.datacatalog.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x33google/cloud/datacatalog_v1beta1/proto/common.proto\x1a=google/cloud/datacatalog_v1beta1/proto/gcs_fileset_spec.proto\x1a\x33google/cloud/datacatalog_v1beta1/proto/schema.proto\x1a\x33google/cloud/datacatalog_v1beta1/proto/search.proto\x1a\x37google/cloud/datacatalog_v1beta1/proto/table_spec.proto\x1a\x31google/cloud/datacatalog_v1beta1/proto/tags.proto\x1a\x37google/cloud/datacatalog_v1beta1/proto/timestamps.proto\x1a\x1egoogle/iam/v1/iam_policy.proto\x1a\x1agoogle/iam/v1/policy.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto"\x9e\x02\n\x14SearchCatalogRequest\x12P\n\x05scope\x18\x06 \x01(\x0b\x32<.google.cloud.datacatalog.v1beta1.SearchCatalogRequest.ScopeB\x03\xe0\x41\x02\x12\x12\n\x05query\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x10\n\x08order_by\x18\x05 \x01(\t\x1a\x62\n\x05Scope\x12\x17\n\x0finclude_org_ids\x18\x02 \x03(\t\x12\x1b\n\x13include_project_ids\x18\x03 \x03(\t\x12#\n\x1binclude_gcp_public_datasets\x18\x07 \x01(\x08"x\n\x15SearchCatalogResponse\x12\x46\n\x07results\x18\x01 \x03(\x0b\x32\x35.google.cloud.datacatalog.v1beta1.SearchCatalogResult\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\t"\xb8\x01\n\x17\x43reateEntryGroupRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\x12%datacatalog.googleapis.com/EntryGroup\x12\x1b\n\x0e\x65ntry_group_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x41\n\x0b\x65ntry_group\x18\x02 \x01(\x0b\x32,.google.cloud.datacatalog.v1beta1.EntryGroup"\x92\x01\n\x17UpdateEntryGroupRequest\x12\x46\n\x0b\x65ntry_group\x18\x01 \x01(\x0b\x32,.google.cloud.datacatalog.v1beta1.EntryGroupB\x03\xe0\x41\x02\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"\x82\x01\n\x14GetEntryGroupRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%datacatalog.googleapis.com/EntryGroup\x12-\n\tread_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"j\n\x17\x44\x65leteEntryGroupRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%datacatalog.googleapis.com/EntryGroup\x12\x12\n\x05\x66orce\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01"\x88\x01\n\x16ListEntryGroupsRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%datacatalog.googleapis.com/EntryGroup\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01"v\n\x17ListEntryGroupsResponse\x12\x42\n\x0c\x65ntry_groups\x18\x01 \x03(\x0b\x32,.google.cloud.datacatalog.v1beta1.EntryGroup\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"\xa7\x01\n\x12\x43reateEntryRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%datacatalog.googleapis.com/EntryGroup\x12\x15\n\x08\x65ntry_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12;\n\x05\x65ntry\x18\x02 \x01(\x0b\x32\'.google.cloud.datacatalog.v1beta1.EntryB\x03\xe0\x41\x02"\x82\x01\n\x12UpdateEntryRequest\x12;\n\x05\x65ntry\x18\x01 \x01(\x0b\x32\'.google.cloud.datacatalog.v1beta1.EntryB\x03\xe0\x41\x02\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"L\n\x12\x44\x65leteEntryRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41"\n datacatalog.googleapis.com/Entry"I\n\x0fGetEntryRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41"\n datacatalog.googleapis.com/Entry"V\n\x12LookupEntryRequest\x12\x19\n\x0flinked_resource\x18\x01 \x01(\tH\x00\x12\x16\n\x0csql_resource\x18\x03 \x01(\tH\x00\x42\r\n\x0btarget_name"\x8f\x07\n\x05\x45ntry\x12\x38\n\x04name\x18\x01 \x01(\tB*\xfa\x41\'\n%datacatalog.googleapis.com/EntryGroup\x12\x17\n\x0flinked_resource\x18\t \x01(\t\x12;\n\x04type\x18\x02 \x01(\x0e\x32+.google.cloud.datacatalog.v1beta1.EntryTypeH\x00\x12\x1d\n\x13user_specified_type\x18\x10 \x01(\tH\x00\x12T\n\x11integrated_system\x18\x11 \x01(\x0e\x32\x32.google.cloud.datacatalog.v1beta1.IntegratedSystemB\x03\xe0\x41\x03H\x01\x12\x1f\n\x15user_specified_system\x18\x12 \x01(\tH\x01\x12L\n\x10gcs_fileset_spec\x18\x06 \x01(\x0b\x32\x30.google.cloud.datacatalog.v1beta1.GcsFilesetSpecH\x02\x12R\n\x13\x62igquery_table_spec\x18\x0c \x01(\x0b\x32\x33.google.cloud.datacatalog.v1beta1.BigQueryTableSpecH\x02\x12_\n\x1a\x62igquery_date_sharded_spec\x18\x0f \x01(\x0b\x32\x39.google.cloud.datacatalog.v1beta1.BigQueryDateShardedSpecH\x02\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x38\n\x06schema\x18\x05 \x01(\x0b\x32(.google.cloud.datacatalog.v1beta1.Schema\x12Y\n\x18source_system_timestamps\x18\x07 \x01(\x0b\x32\x32.google.cloud.datacatalog.v1beta1.SystemTimestampsB\x03\xe0\x41\x03:x\xea\x41u\n datacatalog.googleapis.com/Entry\x12Qprojects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}B\x0c\n\nentry_typeB\x08\n\x06systemB\x0b\n\ttype_spec"\x8e\x02\n\nEntryGroup\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12X\n\x17\x64\x61ta_catalog_timestamps\x18\x04 \x01(\x0b\x32\x32.google.cloud.datacatalog.v1beta1.SystemTimestampsB\x03\xe0\x41\x03:m\xea\x41j\n%datacatalog.googleapis.com/EntryGroup\x12\x41projects/{project}/locations/{location}/entryGroups/{entry_group}"\xc2\x01\n\x18\x43reateTagTemplateRequest\x12>\n\x06parent\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\x12&datacatalog.googleapis.com/TagTemplate\x12\x1c\n\x0ftag_template_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12H\n\x0ctag_template\x18\x02 \x01(\x0b\x32-.google.cloud.datacatalog.v1beta1.TagTemplateB\x03\xe0\x41\x02"U\n\x15GetTagTemplateRequest\x12<\n\x04name\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&datacatalog.googleapis.com/TagTemplate"\x95\x01\n\x18UpdateTagTemplateRequest\x12H\n\x0ctag_template\x18\x01 \x01(\x0b\x32-.google.cloud.datacatalog.v1beta1.TagTemplateB\x03\xe0\x41\x02\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"l\n\x18\x44\x65leteTagTemplateRequest\x12<\n\x04name\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&datacatalog.googleapis.com/TagTemplate\x12\x12\n\x05\x66orce\x18\x02 \x01(\x08\x42\x03\xe0\x41\x02"\x83\x01\n\x10\x43reateTagRequest\x12\x36\n\x06parent\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1e\x64\x61tacatalog.googleapis.com/Tag\x12\x37\n\x03tag\x18\x02 \x01(\x0b\x32%.google.cloud.datacatalog.v1beta1.TagB\x03\xe0\x41\x02"|\n\x10UpdateTagRequest\x12\x37\n\x03tag\x18\x01 \x01(\x0b\x32%.google.cloud.datacatalog.v1beta1.TagB\x03\xe0\x41\x02\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"H\n\x10\x44\x65leteTagRequest\x12\x34\n\x04name\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \x12\x1e\x64\x61tacatalog.googleapis.com/Tag"\xd8\x01\n\x1d\x43reateTagTemplateFieldRequest\x12>\n\x06parent\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&datacatalog.googleapis.com/TagTemplate\x12"\n\x15tag_template_field_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12S\n\x12tag_template_field\x18\x03 \x01(\x0b\x32\x32.google.cloud.datacatalog.v1beta1.TagTemplateFieldB\x03\xe0\x41\x02"\xed\x01\n\x1dUpdateTagTemplateFieldRequest\x12\x41\n\x04name\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+datacatalog.googleapis.com/TagTemplateField\x12S\n\x12tag_template_field\x18\x02 \x01(\x0b\x32\x32.google.cloud.datacatalog.v1beta1.TagTemplateFieldB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01"\x8a\x01\n\x1dRenameTagTemplateFieldRequest\x12\x41\n\x04name\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+datacatalog.googleapis.com/TagTemplateField\x12&\n\x19new_tag_template_field_id\x18\x02 \x01(\tB\x03\xe0\x41\x02"v\n\x1d\x44\x65leteTagTemplateFieldRequest\x12\x41\n\x04name\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+datacatalog.googleapis.com/TagTemplateField\x12\x12\n\x05\x66orce\x18\x02 \x01(\x08\x42\x03\xe0\x41\x02"p\n\x0fListTagsRequest\x12\x36\n\x06parent\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \x12\x1e\x64\x61tacatalog.googleapis.com/Tag\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t"`\n\x10ListTagsResponse\x12\x33\n\x04tags\x18\x01 \x03(\x0b\x32%.google.cloud.datacatalog.v1beta1.Tag\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"\xa9\x01\n\x12ListEntriesRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%datacatalog.googleapis.com/EntryGroup\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12-\n\tread_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"h\n\x13ListEntriesResponse\x12\x38\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\'.google.cloud.datacatalog.v1beta1.Entry\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t*[\n\tEntryType\x12\x1a\n\x16\x45NTRY_TYPE_UNSPECIFIED\x10\x00\x12\t\n\x05TABLE\x10\x02\x12\t\n\x05MODEL\x10\x05\x12\x0f\n\x0b\x44\x41TA_STREAM\x10\x03\x12\x0b\n\x07\x46ILESET\x10\x04\x32\x9f\x32\n\x0b\x44\x61taCatalog\x12\xb2\x01\n\rSearchCatalog\x12\x36.google.cloud.datacatalog.v1beta1.SearchCatalogRequest\x1a\x37.google.cloud.datacatalog.v1beta1.SearchCatalogResponse"0\x82\xd3\xe4\x93\x02\x1c"\x17/v1beta1/catalog:search:\x01*\xda\x41\x0bscope,query\x12\xea\x01\n\x10\x43reateEntryGroup\x12\x39.google.cloud.datacatalog.v1beta1.CreateEntryGroupRequest\x1a,.google.cloud.datacatalog.v1beta1.EntryGroup"m\x82\xd3\xe4\x93\x02\x43"4/v1beta1/{parent=projects/*/locations/*}/entryGroups:\x0b\x65ntry_group\xda\x41!parent,entry_group_id,entry_group\x12\xfa\x01\n\x10UpdateEntryGroup\x12\x39.google.cloud.datacatalog.v1beta1.UpdateEntryGroupRequest\x1a,.google.cloud.datacatalog.v1beta1.EntryGroup"}\x82\xd3\xe4\x93\x02O2@/v1beta1/{entry_group.name=projects/*/locations/*/entryGroups/*}:\x0b\x65ntry_group\xda\x41\x0b\x65ntry_group\xda\x41\x17\x65ntry_group,update_mask\x12\xcb\x01\n\rGetEntryGroup\x12\x36.google.cloud.datacatalog.v1beta1.GetEntryGroupRequest\x1a,.google.cloud.datacatalog.v1beta1.EntryGroup"T\x82\xd3\xe4\x93\x02\x36\x12\x34/v1beta1/{name=projects/*/locations/*/entryGroups/*}\xda\x41\x04name\xda\x41\x0ename,read_mask\x12\xaa\x01\n\x10\x44\x65leteEntryGroup\x12\x39.google.cloud.datacatalog.v1beta1.DeleteEntryGroupRequest\x1a\x16.google.protobuf.Empty"C\x82\xd3\xe4\x93\x02\x36*4/v1beta1/{name=projects/*/locations/*/entryGroups/*}\xda\x41\x04name\x12\xcd\x01\n\x0fListEntryGroups\x12\x38.google.cloud.datacatalog.v1beta1.ListEntryGroupsRequest\x1a\x39.google.cloud.datacatalog.v1beta1.ListEntryGroupsResponse"E\x82\xd3\xe4\x93\x02\x36\x12\x34/v1beta1/{parent=projects/*/locations/*}/entryGroups\xda\x41\x06parent\x12\xd3\x01\n\x0b\x43reateEntry\x12\x34.google.cloud.datacatalog.v1beta1.CreateEntryRequest\x1a\'.google.cloud.datacatalog.v1beta1.Entry"e\x82\xd3\xe4\x93\x02G">/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/entries:\x05\x65ntry\xda\x41\x15parent,entry_id,entry\x12\xdd\x01\n\x0bUpdateEntry\x12\x34.google.cloud.datacatalog.v1beta1.UpdateEntryRequest\x1a\'.google.cloud.datacatalog.v1beta1.Entry"o\x82\xd3\xe4\x93\x02M2D/v1beta1/{entry.name=projects/*/locations/*/entryGroups/*/entries/*}:\x05\x65ntry\xda\x41\x05\x65ntry\xda\x41\x11\x65ntry,update_mask\x12\xaa\x01\n\x0b\x44\x65leteEntry\x12\x34.google.cloud.datacatalog.v1beta1.DeleteEntryRequest\x1a\x16.google.protobuf.Empty"M\x82\xd3\xe4\x93\x02@*>/v1beta1/{name=projects/*/locations/*/entryGroups/*/entries/*}\xda\x41\x04name\x12\xb5\x01\n\x08GetEntry\x12\x31.google.cloud.datacatalog.v1beta1.GetEntryRequest\x1a\'.google.cloud.datacatalog.v1beta1.Entry"M\x82\xd3\xe4\x93\x02@\x12>/v1beta1/{name=projects/*/locations/*/entryGroups/*/entries/*}\xda\x41\x04name\x12\x8d\x01\n\x0bLookupEntry\x12\x34.google.cloud.datacatalog.v1beta1.LookupEntryRequest\x1a\'.google.cloud.datacatalog.v1beta1.Entry"\x1f\x82\xd3\xe4\x93\x02\x19\x12\x17/v1beta1/entries:lookup\x12\xcb\x01\n\x0bListEntries\x12\x34.google.cloud.datacatalog.v1beta1.ListEntriesRequest\x1a\x35.google.cloud.datacatalog.v1beta1.ListEntriesResponse"O\x82\xd3\xe4\x93\x02@\x12>/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/entries\xda\x41\x06parent\x12\xf1\x01\n\x11\x43reateTagTemplate\x12:.google.cloud.datacatalog.v1beta1.CreateTagTemplateRequest\x1a-.google.cloud.datacatalog.v1beta1.TagTemplate"q\x82\xd3\xe4\x93\x02\x45"5/v1beta1/{parent=projects/*/locations/*}/tagTemplates:\x0ctag_template\xda\x41#parent,tag_template_id,tag_template\x12\xbe\x01\n\x0eGetTagTemplate\x12\x37.google.cloud.datacatalog.v1beta1.GetTagTemplateRequest\x1a-.google.cloud.datacatalog.v1beta1.TagTemplate"D\x82\xd3\xe4\x93\x02\x37\x12\x35/v1beta1/{name=projects/*/locations/*/tagTemplates/*}\xda\x41\x04name\x12\x83\x02\n\x11UpdateTagTemplate\x12:.google.cloud.datacatalog.v1beta1.UpdateTagTemplateRequest\x1a-.google.cloud.datacatalog.v1beta1.TagTemplate"\x82\x01\x82\xd3\xe4\x93\x02R2B/v1beta1/{tag_template.name=projects/*/locations/*/tagTemplates/*}:\x0ctag_template\xda\x41\x0ctag_template\xda\x41\x18tag_template,update_mask\x12\xb3\x01\n\x11\x44\x65leteTagTemplate\x12:.google.cloud.datacatalog.v1beta1.DeleteTagTemplateRequest\x1a\x16.google.protobuf.Empty"J\x82\xd3\xe4\x93\x02\x37*5/v1beta1/{name=projects/*/locations/*/tagTemplates/*}\xda\x41\nname,force\x12\x9c\x02\n\x16\x43reateTagTemplateField\x12?.google.cloud.datacatalog.v1beta1.CreateTagTemplateFieldRequest\x1a\x32.google.cloud.datacatalog.v1beta1.TagTemplateField"\x8c\x01\x82\xd3\xe4\x93\x02T">/v1beta1/{parent=projects/*/locations/*/tagTemplates/*}/fields:\x12tag_template_field\xda\x41/parent,tag_template_field_id,tag_template_field\x12\xaa\x02\n\x16UpdateTagTemplateField\x12?.google.cloud.datacatalog.v1beta1.UpdateTagTemplateFieldRequest\x1a\x32.google.cloud.datacatalog.v1beta1.TagTemplateField"\x9a\x01\x82\xd3\xe4\x93\x02T2>/v1beta1/{name=projects/*/locations/*/tagTemplates/*/fields/*}:\x12tag_template_field\xda\x41\x17name,tag_template_field\xda\x41#name,tag_template_field,update_mask\x12\x80\x02\n\x16RenameTagTemplateField\x12?.google.cloud.datacatalog.v1beta1.RenameTagTemplateFieldRequest\x1a\x32.google.cloud.datacatalog.v1beta1.TagTemplateField"q\x82\xd3\xe4\x93\x02J"E/v1beta1/{name=projects/*/locations/*/tagTemplates/*/fields/*}:rename:\x01*\xda\x41\x1ename,new_tag_template_field_id\x12\xc6\x01\n\x16\x44\x65leteTagTemplateField\x12?.google.cloud.datacatalog.v1beta1.DeleteTagTemplateFieldRequest\x1a\x16.google.protobuf.Empty"S\x82\xd3\xe4\x93\x02@*>/v1beta1/{name=projects/*/locations/*/tagTemplates/*/fields/*}\xda\x41\nname,force\x12\x8d\x02\n\tCreateTag\x12\x32.google.cloud.datacatalog.v1beta1.CreateTagRequest\x1a%.google.cloud.datacatalog.v1beta1.Tag"\xa4\x01\x82\xd3\xe4\x93\x02\x90\x01"E/v1beta1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags:\x03tagZB";/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/tags:\x03tag\xda\x41\nparent,tag\x12\xa0\x02\n\tUpdateTag\x12\x32.google.cloud.datacatalog.v1beta1.UpdateTagRequest\x1a%.google.cloud.datacatalog.v1beta1.Tag"\xb7\x01\x82\xd3\xe4\x93\x02\x98\x01\x32I/v1beta1/{tag.name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}:\x03tagZF2?/v1beta1/{tag.name=projects/*/locations/*/entryGroups/*/tags/*}:\x03tag\xda\x41\x03tag\xda\x41\x0ftag,update_mask\x12\xee\x01\n\tDeleteTag\x12\x32.google.cloud.datacatalog.v1beta1.DeleteTagRequest\x1a\x16.google.protobuf.Empty"\x94\x01\x82\xd3\xe4\x93\x02\x86\x01*E/v1beta1/{name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}Z=*;/v1beta1/{name=projects/*/locations/*/entryGroups/*/tags/*}\xda\x41\x04name\x12\x8a\x02\n\x08ListTags\x12\x31.google.cloud.datacatalog.v1beta1.ListTagsRequest\x1a\x32.google.cloud.datacatalog.v1beta1.ListTagsResponse"\x96\x01\x82\xd3\xe4\x93\x02\x86\x01\x12\x45/v1beta1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tagsZ=\x12;/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/tags\xda\x41\x06parent\x12\xea\x01\n\x0cSetIamPolicy\x12".google.iam.v1.SetIamPolicyRequest\x1a\x15.google.iam.v1.Policy"\x9e\x01\x82\xd3\xe4\x93\x02\x97\x01"F/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:setIamPolicy:\x01*ZJ"E/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:setIamPolicy:\x01*\x12\xc0\x02\n\x0cGetIamPolicy\x12".google.iam.v1.GetIamPolicyRequest\x1a\x15.google.iam.v1.Policy"\xf4\x01\x82\xd3\xe4\x93\x02\xed\x01"F/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:getIamPolicy:\x01*ZJ"E/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:getIamPolicy:\x01*ZT"O/v1beta1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:getIamPolicy:\x01*\x12\xf2\x02\n\x12TestIamPermissions\x12(.google.iam.v1.TestIamPermissionsRequest\x1a).google.iam.v1.TestIamPermissionsResponse"\x86\x02\x82\xd3\xe4\x93\x02\xff\x01"L/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:testIamPermissions:\x01*ZP"K/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:testIamPermissions:\x01*ZZ"U/v1beta1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:testIamPermissions:\x01*\x1aN\xca\x41\x1a\x64\x61tacatalog.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformBx\n$com.google.cloud.datacatalog.v1beta1P\x01ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\xf8\x01\x01\x62\x06proto3', + serialized_options=b"\n$com.google.cloud.datacatalog.v1beta1P\001ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\370\001\001\252\002 Google.Cloud.DataCatalog.V1Beta1\312\002 Google\\Cloud\\DataCatalog\\V1beta1\352\002#Google::Cloud::DataCatalog::V1beta1", + serialized_pb=b'\n8google/cloud/datacatalog_v1beta1/proto/datacatalog.proto\x12 google.cloud.datacatalog.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x33google/cloud/datacatalog_v1beta1/proto/common.proto\x1a=google/cloud/datacatalog_v1beta1/proto/gcs_fileset_spec.proto\x1a\x33google/cloud/datacatalog_v1beta1/proto/schema.proto\x1a\x33google/cloud/datacatalog_v1beta1/proto/search.proto\x1a\x37google/cloud/datacatalog_v1beta1/proto/table_spec.proto\x1a\x31google/cloud/datacatalog_v1beta1/proto/tags.proto\x1a\x37google/cloud/datacatalog_v1beta1/proto/timestamps.proto\x1a\x1egoogle/iam/v1/iam_policy.proto\x1a\x1agoogle/iam/v1/policy.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto"\x9e\x02\n\x14SearchCatalogRequest\x12P\n\x05scope\x18\x06 \x01(\x0b\x32<.google.cloud.datacatalog.v1beta1.SearchCatalogRequest.ScopeB\x03\xe0\x41\x02\x12\x12\n\x05query\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x10\n\x08order_by\x18\x05 \x01(\t\x1a\x62\n\x05Scope\x12\x17\n\x0finclude_org_ids\x18\x02 \x03(\t\x12\x1b\n\x13include_project_ids\x18\x03 \x03(\t\x12#\n\x1binclude_gcp_public_datasets\x18\x07 \x01(\x08"x\n\x15SearchCatalogResponse\x12\x46\n\x07results\x18\x01 \x03(\x0b\x32\x35.google.cloud.datacatalog.v1beta1.SearchCatalogResult\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\t"\xb8\x01\n\x17\x43reateEntryGroupRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\x12%datacatalog.googleapis.com/EntryGroup\x12\x1b\n\x0e\x65ntry_group_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x41\n\x0b\x65ntry_group\x18\x02 \x01(\x0b\x32,.google.cloud.datacatalog.v1beta1.EntryGroup"\x92\x01\n\x17UpdateEntryGroupRequest\x12\x46\n\x0b\x65ntry_group\x18\x01 \x01(\x0b\x32,.google.cloud.datacatalog.v1beta1.EntryGroupB\x03\xe0\x41\x02\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"\x82\x01\n\x14GetEntryGroupRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%datacatalog.googleapis.com/EntryGroup\x12-\n\tread_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"j\n\x17\x44\x65leteEntryGroupRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%datacatalog.googleapis.com/EntryGroup\x12\x12\n\x05\x66orce\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01"\x88\x01\n\x16ListEntryGroupsRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%datacatalog.googleapis.com/EntryGroup\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01"v\n\x17ListEntryGroupsResponse\x12\x42\n\x0c\x65ntry_groups\x18\x01 \x03(\x0b\x32,.google.cloud.datacatalog.v1beta1.EntryGroup\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"\xa7\x01\n\x12\x43reateEntryRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%datacatalog.googleapis.com/EntryGroup\x12\x15\n\x08\x65ntry_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12;\n\x05\x65ntry\x18\x02 \x01(\x0b\x32\'.google.cloud.datacatalog.v1beta1.EntryB\x03\xe0\x41\x02"\x82\x01\n\x12UpdateEntryRequest\x12;\n\x05\x65ntry\x18\x01 \x01(\x0b\x32\'.google.cloud.datacatalog.v1beta1.EntryB\x03\xe0\x41\x02\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"L\n\x12\x44\x65leteEntryRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41"\n datacatalog.googleapis.com/Entry"I\n\x0fGetEntryRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41"\n datacatalog.googleapis.com/Entry"V\n\x12LookupEntryRequest\x12\x19\n\x0flinked_resource\x18\x01 \x01(\tH\x00\x12\x16\n\x0csql_resource\x18\x03 \x01(\tH\x00\x42\r\n\x0btarget_name"\x8f\x07\n\x05\x45ntry\x12\x38\n\x04name\x18\x01 \x01(\tB*\xfa\x41\'\n%datacatalog.googleapis.com/EntryGroup\x12\x17\n\x0flinked_resource\x18\t \x01(\t\x12;\n\x04type\x18\x02 \x01(\x0e\x32+.google.cloud.datacatalog.v1beta1.EntryTypeH\x00\x12\x1d\n\x13user_specified_type\x18\x10 \x01(\tH\x00\x12T\n\x11integrated_system\x18\x11 \x01(\x0e\x32\x32.google.cloud.datacatalog.v1beta1.IntegratedSystemB\x03\xe0\x41\x03H\x01\x12\x1f\n\x15user_specified_system\x18\x12 \x01(\tH\x01\x12L\n\x10gcs_fileset_spec\x18\x06 \x01(\x0b\x32\x30.google.cloud.datacatalog.v1beta1.GcsFilesetSpecH\x02\x12R\n\x13\x62igquery_table_spec\x18\x0c \x01(\x0b\x32\x33.google.cloud.datacatalog.v1beta1.BigQueryTableSpecH\x02\x12_\n\x1a\x62igquery_date_sharded_spec\x18\x0f \x01(\x0b\x32\x39.google.cloud.datacatalog.v1beta1.BigQueryDateShardedSpecH\x02\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x38\n\x06schema\x18\x05 \x01(\x0b\x32(.google.cloud.datacatalog.v1beta1.Schema\x12Y\n\x18source_system_timestamps\x18\x07 \x01(\x0b\x32\x32.google.cloud.datacatalog.v1beta1.SystemTimestampsB\x03\xe0\x41\x03:x\xea\x41u\n datacatalog.googleapis.com/Entry\x12Qprojects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}B\x0c\n\nentry_typeB\x08\n\x06systemB\x0b\n\ttype_spec"\x8e\x02\n\nEntryGroup\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12X\n\x17\x64\x61ta_catalog_timestamps\x18\x04 \x01(\x0b\x32\x32.google.cloud.datacatalog.v1beta1.SystemTimestampsB\x03\xe0\x41\x03:m\xea\x41j\n%datacatalog.googleapis.com/EntryGroup\x12\x41projects/{project}/locations/{location}/entryGroups/{entry_group}"\xc2\x01\n\x18\x43reateTagTemplateRequest\x12>\n\x06parent\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\x12&datacatalog.googleapis.com/TagTemplate\x12\x1c\n\x0ftag_template_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12H\n\x0ctag_template\x18\x02 \x01(\x0b\x32-.google.cloud.datacatalog.v1beta1.TagTemplateB\x03\xe0\x41\x02"U\n\x15GetTagTemplateRequest\x12<\n\x04name\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&datacatalog.googleapis.com/TagTemplate"\x95\x01\n\x18UpdateTagTemplateRequest\x12H\n\x0ctag_template\x18\x01 \x01(\x0b\x32-.google.cloud.datacatalog.v1beta1.TagTemplateB\x03\xe0\x41\x02\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"l\n\x18\x44\x65leteTagTemplateRequest\x12<\n\x04name\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&datacatalog.googleapis.com/TagTemplate\x12\x12\n\x05\x66orce\x18\x02 \x01(\x08\x42\x03\xe0\x41\x02"\x83\x01\n\x10\x43reateTagRequest\x12\x36\n\x06parent\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1e\x64\x61tacatalog.googleapis.com/Tag\x12\x37\n\x03tag\x18\x02 \x01(\x0b\x32%.google.cloud.datacatalog.v1beta1.TagB\x03\xe0\x41\x02"|\n\x10UpdateTagRequest\x12\x37\n\x03tag\x18\x01 \x01(\x0b\x32%.google.cloud.datacatalog.v1beta1.TagB\x03\xe0\x41\x02\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"H\n\x10\x44\x65leteTagRequest\x12\x34\n\x04name\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \x12\x1e\x64\x61tacatalog.googleapis.com/Tag"\xd8\x01\n\x1d\x43reateTagTemplateFieldRequest\x12>\n\x06parent\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&datacatalog.googleapis.com/TagTemplate\x12"\n\x15tag_template_field_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12S\n\x12tag_template_field\x18\x03 \x01(\x0b\x32\x32.google.cloud.datacatalog.v1beta1.TagTemplateFieldB\x03\xe0\x41\x02"\xed\x01\n\x1dUpdateTagTemplateFieldRequest\x12\x41\n\x04name\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+datacatalog.googleapis.com/TagTemplateField\x12S\n\x12tag_template_field\x18\x02 \x01(\x0b\x32\x32.google.cloud.datacatalog.v1beta1.TagTemplateFieldB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01"\x8a\x01\n\x1dRenameTagTemplateFieldRequest\x12\x41\n\x04name\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+datacatalog.googleapis.com/TagTemplateField\x12&\n\x19new_tag_template_field_id\x18\x02 \x01(\tB\x03\xe0\x41\x02"v\n\x1d\x44\x65leteTagTemplateFieldRequest\x12\x41\n\x04name\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+datacatalog.googleapis.com/TagTemplateField\x12\x12\n\x05\x66orce\x18\x02 \x01(\x08\x42\x03\xe0\x41\x02"p\n\x0fListTagsRequest\x12\x36\n\x06parent\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \x12\x1e\x64\x61tacatalog.googleapis.com/Tag\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t"`\n\x10ListTagsResponse\x12\x33\n\x04tags\x18\x01 \x03(\x0b\x32%.google.cloud.datacatalog.v1beta1.Tag\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"\xa9\x01\n\x12ListEntriesRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%datacatalog.googleapis.com/EntryGroup\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12-\n\tread_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"h\n\x13ListEntriesResponse\x12\x38\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\'.google.cloud.datacatalog.v1beta1.Entry\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t*[\n\tEntryType\x12\x1a\n\x16\x45NTRY_TYPE_UNSPECIFIED\x10\x00\x12\t\n\x05TABLE\x10\x02\x12\t\n\x05MODEL\x10\x05\x12\x0f\n\x0b\x44\x41TA_STREAM\x10\x03\x12\x0b\n\x07\x46ILESET\x10\x04\x32\xbc\x32\n\x0b\x44\x61taCatalog\x12\xb2\x01\n\rSearchCatalog\x12\x36.google.cloud.datacatalog.v1beta1.SearchCatalogRequest\x1a\x37.google.cloud.datacatalog.v1beta1.SearchCatalogResponse"0\x82\xd3\xe4\x93\x02\x1c"\x17/v1beta1/catalog:search:\x01*\xda\x41\x0bscope,query\x12\xea\x01\n\x10\x43reateEntryGroup\x12\x39.google.cloud.datacatalog.v1beta1.CreateEntryGroupRequest\x1a,.google.cloud.datacatalog.v1beta1.EntryGroup"m\x82\xd3\xe4\x93\x02\x43"4/v1beta1/{parent=projects/*/locations/*}/entryGroups:\x0b\x65ntry_group\xda\x41!parent,entry_group_id,entry_group\x12\xfa\x01\n\x10UpdateEntryGroup\x12\x39.google.cloud.datacatalog.v1beta1.UpdateEntryGroupRequest\x1a,.google.cloud.datacatalog.v1beta1.EntryGroup"}\x82\xd3\xe4\x93\x02O2@/v1beta1/{entry_group.name=projects/*/locations/*/entryGroups/*}:\x0b\x65ntry_group\xda\x41\x0b\x65ntry_group\xda\x41\x17\x65ntry_group,update_mask\x12\xcb\x01\n\rGetEntryGroup\x12\x36.google.cloud.datacatalog.v1beta1.GetEntryGroupRequest\x1a,.google.cloud.datacatalog.v1beta1.EntryGroup"T\x82\xd3\xe4\x93\x02\x36\x12\x34/v1beta1/{name=projects/*/locations/*/entryGroups/*}\xda\x41\x04name\xda\x41\x0ename,read_mask\x12\xaa\x01\n\x10\x44\x65leteEntryGroup\x12\x39.google.cloud.datacatalog.v1beta1.DeleteEntryGroupRequest\x1a\x16.google.protobuf.Empty"C\x82\xd3\xe4\x93\x02\x36*4/v1beta1/{name=projects/*/locations/*/entryGroups/*}\xda\x41\x04name\x12\xcd\x01\n\x0fListEntryGroups\x12\x38.google.cloud.datacatalog.v1beta1.ListEntryGroupsRequest\x1a\x39.google.cloud.datacatalog.v1beta1.ListEntryGroupsResponse"E\x82\xd3\xe4\x93\x02\x36\x12\x34/v1beta1/{parent=projects/*/locations/*}/entryGroups\xda\x41\x06parent\x12\xd3\x01\n\x0b\x43reateEntry\x12\x34.google.cloud.datacatalog.v1beta1.CreateEntryRequest\x1a\'.google.cloud.datacatalog.v1beta1.Entry"e\x82\xd3\xe4\x93\x02G">/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/entries:\x05\x65ntry\xda\x41\x15parent,entry_id,entry\x12\xdd\x01\n\x0bUpdateEntry\x12\x34.google.cloud.datacatalog.v1beta1.UpdateEntryRequest\x1a\'.google.cloud.datacatalog.v1beta1.Entry"o\x82\xd3\xe4\x93\x02M2D/v1beta1/{entry.name=projects/*/locations/*/entryGroups/*/entries/*}:\x05\x65ntry\xda\x41\x05\x65ntry\xda\x41\x11\x65ntry,update_mask\x12\xaa\x01\n\x0b\x44\x65leteEntry\x12\x34.google.cloud.datacatalog.v1beta1.DeleteEntryRequest\x1a\x16.google.protobuf.Empty"M\x82\xd3\xe4\x93\x02@*>/v1beta1/{name=projects/*/locations/*/entryGroups/*/entries/*}\xda\x41\x04name\x12\xb5\x01\n\x08GetEntry\x12\x31.google.cloud.datacatalog.v1beta1.GetEntryRequest\x1a\'.google.cloud.datacatalog.v1beta1.Entry"M\x82\xd3\xe4\x93\x02@\x12>/v1beta1/{name=projects/*/locations/*/entryGroups/*/entries/*}\xda\x41\x04name\x12\x8d\x01\n\x0bLookupEntry\x12\x34.google.cloud.datacatalog.v1beta1.LookupEntryRequest\x1a\'.google.cloud.datacatalog.v1beta1.Entry"\x1f\x82\xd3\xe4\x93\x02\x19\x12\x17/v1beta1/entries:lookup\x12\xcb\x01\n\x0bListEntries\x12\x34.google.cloud.datacatalog.v1beta1.ListEntriesRequest\x1a\x35.google.cloud.datacatalog.v1beta1.ListEntriesResponse"O\x82\xd3\xe4\x93\x02@\x12>/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/entries\xda\x41\x06parent\x12\xf1\x01\n\x11\x43reateTagTemplate\x12:.google.cloud.datacatalog.v1beta1.CreateTagTemplateRequest\x1a-.google.cloud.datacatalog.v1beta1.TagTemplate"q\x82\xd3\xe4\x93\x02\x45"5/v1beta1/{parent=projects/*/locations/*}/tagTemplates:\x0ctag_template\xda\x41#parent,tag_template_id,tag_template\x12\xbe\x01\n\x0eGetTagTemplate\x12\x37.google.cloud.datacatalog.v1beta1.GetTagTemplateRequest\x1a-.google.cloud.datacatalog.v1beta1.TagTemplate"D\x82\xd3\xe4\x93\x02\x37\x12\x35/v1beta1/{name=projects/*/locations/*/tagTemplates/*}\xda\x41\x04name\x12\x83\x02\n\x11UpdateTagTemplate\x12:.google.cloud.datacatalog.v1beta1.UpdateTagTemplateRequest\x1a-.google.cloud.datacatalog.v1beta1.TagTemplate"\x82\x01\x82\xd3\xe4\x93\x02R2B/v1beta1/{tag_template.name=projects/*/locations/*/tagTemplates/*}:\x0ctag_template\xda\x41\x0ctag_template\xda\x41\x18tag_template,update_mask\x12\xb3\x01\n\x11\x44\x65leteTagTemplate\x12:.google.cloud.datacatalog.v1beta1.DeleteTagTemplateRequest\x1a\x16.google.protobuf.Empty"J\x82\xd3\xe4\x93\x02\x37*5/v1beta1/{name=projects/*/locations/*/tagTemplates/*}\xda\x41\nname,force\x12\x9c\x02\n\x16\x43reateTagTemplateField\x12?.google.cloud.datacatalog.v1beta1.CreateTagTemplateFieldRequest\x1a\x32.google.cloud.datacatalog.v1beta1.TagTemplateField"\x8c\x01\x82\xd3\xe4\x93\x02T">/v1beta1/{parent=projects/*/locations/*/tagTemplates/*}/fields:\x12tag_template_field\xda\x41/parent,tag_template_field_id,tag_template_field\x12\xaa\x02\n\x16UpdateTagTemplateField\x12?.google.cloud.datacatalog.v1beta1.UpdateTagTemplateFieldRequest\x1a\x32.google.cloud.datacatalog.v1beta1.TagTemplateField"\x9a\x01\x82\xd3\xe4\x93\x02T2>/v1beta1/{name=projects/*/locations/*/tagTemplates/*/fields/*}:\x12tag_template_field\xda\x41\x17name,tag_template_field\xda\x41#name,tag_template_field,update_mask\x12\x80\x02\n\x16RenameTagTemplateField\x12?.google.cloud.datacatalog.v1beta1.RenameTagTemplateFieldRequest\x1a\x32.google.cloud.datacatalog.v1beta1.TagTemplateField"q\x82\xd3\xe4\x93\x02J"E/v1beta1/{name=projects/*/locations/*/tagTemplates/*/fields/*}:rename:\x01*\xda\x41\x1ename,new_tag_template_field_id\x12\xc6\x01\n\x16\x44\x65leteTagTemplateField\x12?.google.cloud.datacatalog.v1beta1.DeleteTagTemplateFieldRequest\x1a\x16.google.protobuf.Empty"S\x82\xd3\xe4\x93\x02@*>/v1beta1/{name=projects/*/locations/*/tagTemplates/*/fields/*}\xda\x41\nname,force\x12\x8d\x02\n\tCreateTag\x12\x32.google.cloud.datacatalog.v1beta1.CreateTagRequest\x1a%.google.cloud.datacatalog.v1beta1.Tag"\xa4\x01\x82\xd3\xe4\x93\x02\x90\x01"E/v1beta1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags:\x03tagZB";/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/tags:\x03tag\xda\x41\nparent,tag\x12\xa0\x02\n\tUpdateTag\x12\x32.google.cloud.datacatalog.v1beta1.UpdateTagRequest\x1a%.google.cloud.datacatalog.v1beta1.Tag"\xb7\x01\x82\xd3\xe4\x93\x02\x98\x01\x32I/v1beta1/{tag.name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}:\x03tagZF2?/v1beta1/{tag.name=projects/*/locations/*/entryGroups/*/tags/*}:\x03tag\xda\x41\x03tag\xda\x41\x0ftag,update_mask\x12\xee\x01\n\tDeleteTag\x12\x32.google.cloud.datacatalog.v1beta1.DeleteTagRequest\x1a\x16.google.protobuf.Empty"\x94\x01\x82\xd3\xe4\x93\x02\x86\x01*E/v1beta1/{name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}Z=*;/v1beta1/{name=projects/*/locations/*/entryGroups/*/tags/*}\xda\x41\x04name\x12\x8a\x02\n\x08ListTags\x12\x31.google.cloud.datacatalog.v1beta1.ListTagsRequest\x1a\x32.google.cloud.datacatalog.v1beta1.ListTagsResponse"\x96\x01\x82\xd3\xe4\x93\x02\x86\x01\x12\x45/v1beta1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tagsZ=\x12;/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/tags\xda\x41\x06parent\x12\xfc\x01\n\x0cSetIamPolicy\x12".google.iam.v1.SetIamPolicyRequest\x1a\x15.google.iam.v1.Policy"\xb0\x01\x82\xd3\xe4\x93\x02\x97\x01"F/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:setIamPolicy:\x01*ZJ"E/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:setIamPolicy:\x01*\xda\x41\x0fresource,policy\x12\xcb\x02\n\x0cGetIamPolicy\x12".google.iam.v1.GetIamPolicyRequest\x1a\x15.google.iam.v1.Policy"\xff\x01\x82\xd3\xe4\x93\x02\xed\x01"F/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:getIamPolicy:\x01*ZJ"E/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:getIamPolicy:\x01*ZT"O/v1beta1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:getIamPolicy:\x01*\xda\x41\x08resource\x12\xf2\x02\n\x12TestIamPermissions\x12(.google.iam.v1.TestIamPermissionsRequest\x1a).google.iam.v1.TestIamPermissionsResponse"\x86\x02\x82\xd3\xe4\x93\x02\xff\x01"L/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:testIamPermissions:\x01*ZP"K/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:testIamPermissions:\x01*ZZ"U/v1beta1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:testIamPermissions:\x01*\x1aN\xca\x41\x1a\x64\x61tacatalog.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xe4\x01\n$com.google.cloud.datacatalog.v1beta1P\x01ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\xf8\x01\x01\xaa\x02 Google.Cloud.DataCatalog.V1Beta1\xca\x02 Google\\Cloud\\DataCatalog\\V1beta1\xea\x02#Google::Cloud::DataCatalog::V1beta1b\x06proto3', dependencies=[ google_dot_api_dot_annotations__pb2.DESCRIPTOR, google_dot_api_dot_client__pb2.DESCRIPTOR, @@ -2501,22 +2501,19 @@ { "DESCRIPTOR": _SEARCHCATALOGREQUEST_SCOPE, "__module__": "google.cloud.datacatalog_v1beta1.proto.datacatalog_pb2", - "__doc__": """ + "__doc__": """The criteria that select the subspace used for query + matching. + + Attributes: include_org_ids: - Data Catalog tries to automatically choose the right corpus of - data to search through. You can ensure an organization is - included by adding it to ``include_org_ids``. You can ensure a - project’s org is included with ``include_project_ids``. You - must specify at least one organization using - ``include_org_ids`` or ``include_project_ids`` in all search - requests. List of organization IDs to search within. To find - your organization ID, follow instructions in + The list of organization IDs to search within. To find your + organization ID, follow instructions in https://cloud.google.com/resource-manager/docs/creating- managing-organization. include_project_ids: - List of project IDs to search within. To learn more about the - distinction between project names/IDs/numbers, go to + The list of project IDs to search within. To learn more about + the distinction between project names/IDs/numbers, go to https://cloud.google.com/docs/overview/#projects. include_gcp_public_datasets: If ``true``, include Google Cloud Platform (GCP) public @@ -2535,15 +2532,18 @@ Attributes: scope: - Required. The scope of this search request. + Required. The scope of this search request. A ``scope`` that + has empty ``include_org_ids``, ``include_project_ids`` AND + false ``include_gcp_public_datasets`` is considered invalid. + Data Catalog will return an error in such a case. query: Required. The query string in search query syntax. The query must be non-empty. Query strings can be simple as “x” or more qualified as: - name:x - column:x - description:y Note: Query tokens need to have a minimum of 3 characters for substring matching to work correctly. See `Data Catalog Search - Syntax `__ for - more information. + Syntax `__ for more information. page_size: Number of results in the search page. If <=0 then defaults to 10. Max limit for page_size is 1000. Throws an invalid @@ -2861,14 +2861,15 @@ //pubsub.googleapis.com/projects/projectId/topics/topicId sql_resource: The SQL name of the entry. SQL names are case-sensitive. - Examples: - ``cloud_pubsub.project_id.topic_id`` - + Examples: - ``pubsub.project_id.topic_id`` - :literal:`pubsub.project_id.`topic.id.with.dots\`` - ``bigquery.table.project_id.dataset_id.table_id`` - ``bigquery.dataset.project_id.dataset_id`` - ``datacatalog.en try.project_id.location_id.entry_group_id.entry_id`` ``*_id``\ s shoud satisfy the standard SQL rules for - identifiers. https://cloud.google.com/bigquery/docs/reference - /standard-sql/lexical. + identifiers. + https://cloud.google.com/bigquery/docs/reference/standard- + sql/lexical. """, # @@protoc_insertion_point(class_scope:google.cloud.datacatalog.v1beta1.LookupEntryRequest) }, @@ -2883,8 +2884,8 @@ "__module__": "google.cloud.datacatalog_v1beta1.proto.datacatalog_pb2", "__doc__": """Entry Metadata. A Data Catalog Entry resource represents another resource in Google Cloud Platform (such as a BigQuery dataset or - a Cloud Pub/Sub topic), or outside of Google Cloud Platform. Clients can - use the ``linked_resource`` field in the Entry resource to refer to the + a Pub/Sub topic), or outside of Google Cloud Platform. Clients can use + the ``linked_resource`` field in the Entry resource to refer to the original resource ID of the source system. An Entry resource contains resource details, such as its schema. An @@ -2930,7 +2931,7 @@ The source system of the entry. integrated_system: Output only. This field indicates the entry’s source system - that Data Catalog integrates with, such as BigQuery or Cloud + that Data Catalog integrates with, such as BigQuery or Pub/Sub. user_specified_system: This field indicates the entry’s source system that Data @@ -3022,9 +3023,9 @@ Attributes: parent: Required. The name of the project and the template location - `region `__. NOTE: - Currently, only the ``us-central1 region`` is supported. - Example: - projects/{project_id}/locations/us-central1 + [region](https://cloud.google.com/data- + catalog/docs/concepts/regions. Example: - + projects/{project_id}/locations/us-central1 tag_template_id: Required. The id of the tag template to create. tag_template: @@ -3188,9 +3189,9 @@ Attributes: parent: Required. The name of the project and the template location - `region `__. NOTE: - Currently, only the ``us-central1 region`` is supported. - Example: - projects/{project_id}/locations/us- + `region `__. Example: - + projects/{project_id}/locations/us- central1/tagTemplates/{tag_template_id} tag_template_field_id: Required. The ID of the tag template field to create. Field @@ -3457,7 +3458,7 @@ index=0, serialized_options=b"\312A\032datacatalog.googleapis.com\322A.https://www.googleapis.com/auth/cloud-platform", serialized_start=5881, - serialized_end=12312, + serialized_end=12341, methods=[ _descriptor.MethodDescriptor( name="SearchCatalog", @@ -3682,7 +3683,7 @@ containing_service=None, input_type=google_dot_iam_dot_v1_dot_iam__policy__pb2._SETIAMPOLICYREQUEST, output_type=google_dot_iam_dot_v1_dot_policy__pb2._POLICY, - serialized_options=b'\202\323\344\223\002\227\001"F/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:setIamPolicy:\001*ZJ"E/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:setIamPolicy:\001*', + serialized_options=b'\202\323\344\223\002\227\001"F/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:setIamPolicy:\001*ZJ"E/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:setIamPolicy:\001*\332A\017resource,policy', ), _descriptor.MethodDescriptor( name="GetIamPolicy", @@ -3691,7 +3692,7 @@ containing_service=None, input_type=google_dot_iam_dot_v1_dot_iam__policy__pb2._GETIAMPOLICYREQUEST, output_type=google_dot_iam_dot_v1_dot_policy__pb2._POLICY, - serialized_options=b'\202\323\344\223\002\355\001"F/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:getIamPolicy:\001*ZJ"E/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:getIamPolicy:\001*ZT"O/v1beta1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:getIamPolicy:\001*', + serialized_options=b'\202\323\344\223\002\355\001"F/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:getIamPolicy:\001*ZJ"E/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:getIamPolicy:\001*ZT"O/v1beta1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:getIamPolicy:\001*\332A\010resource', ), _descriptor.MethodDescriptor( name="TestIamPermissions", diff --git a/google/cloud/datacatalog_v1beta1/proto/datacatalog_pb2_grpc.py b/google/cloud/datacatalog_v1beta1/proto/datacatalog_pb2_grpc.py index c84f45d5..e62a806a 100644 --- a/google/cloud/datacatalog_v1beta1/proto/datacatalog_pb2_grpc.py +++ b/google/cloud/datacatalog_v1beta1/proto/datacatalog_pb2_grpc.py @@ -180,31 +180,21 @@ def SearchCatalog(self, request, context): across repeated search queries. See [Data Catalog Search - Syntax](/data-catalog/docs/how-to/search-reference) for more information. + Syntax](https://cloud.google.com/data-catalog/docs/how-to/search-reference) + for more information. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") raise NotImplementedError("Method not implemented!") def CreateEntryGroup(self, request, context): - """Creates an EntryGroup. - - An entry group contains logically related entries together with Cloud - Identity and Access Management policies that specify the users who can - create, edit, and view entries within the entry group. - - Data Catalog automatically creates an entry group for BigQuery entries - ("@bigquery") and Pub/Sub topics ("@pubsub"). Users create their own entry - group to contain Cloud Storage fileset entries or custom type entries, - and the IAM policies associated with those entries. Entry groups, like - entries, can be searched. - - A maximum of 10,000 entry groups may be created per organization across all + """A maximum of 10,000 entry groups may be created per organization across all locations. Users should enable the Data Catalog API in the project identified by the `parent` parameter (see [Data Catalog Resource Project] - (/data-catalog/docs/concepts/resource-project) for more information). + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for + more information). """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -213,8 +203,9 @@ def CreateEntryGroup(self, request, context): def UpdateEntryGroup(self, request, context): """Updates an EntryGroup. The user should enable the Data Catalog API in the project identified by the `entry_group.name` parameter (see [Data Catalog - Resource Project] (/data-catalog/docs/concepts/resource-project) for more - information). + Resource Project] + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for + more information). """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -231,7 +222,8 @@ def DeleteEntryGroup(self, request, context): """Deletes an EntryGroup. Only entry groups that do not contain entries can be deleted. Users should enable the Data Catalog API in the project identified by the `name` parameter (see [Data Catalog Resource Project] - (/data-catalog/docs/concepts/resource-project) for more information). + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for + more information). """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -250,7 +242,8 @@ def CreateEntry(self, request, context): Users should enable the Data Catalog API in the project identified by the `parent` parameter (see [Data Catalog Resource Project] - (/data-catalog/docs/concepts/resource-project) for more information). + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for + more information). A maximum of 100,000 entries may be created per entry group. """ @@ -262,7 +255,8 @@ def UpdateEntry(self, request, context): """Updates an existing entry. Users should enable the Data Catalog API in the project identified by the `entry.name` parameter (see [Data Catalog Resource Project] - (/data-catalog/docs/concepts/resource-project) for more information). + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for + more information). """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -274,7 +268,8 @@ def DeleteEntry(self, request, context): method can be deleted. Users should enable the Data Catalog API in the project identified by the `name` parameter (see [Data Catalog Resource Project] - (/data-catalog/docs/concepts/resource-project) for more information). + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for + more information). """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -306,8 +301,9 @@ def ListEntries(self, request, context): def CreateTagTemplate(self, request, context): """Creates a tag template. The user should enable the Data Catalog API in the project identified by the `parent` parameter (see [Data Catalog - Resource Project](/data-catalog/docs/concepts/resource-project) for more - information). + Resource + Project](https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -326,7 +322,8 @@ def UpdateTagTemplate(self, request, context): and should be updated using their own create/update/delete methods. Users should enable the Data Catalog API in the project identified by the `tag_template.name` parameter (see [Data Catalog Resource Project] - (/data-catalog/docs/concepts/resource-project) for more information). + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for + more information). """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -336,7 +333,8 @@ def DeleteTagTemplate(self, request, context): """Deletes a tag template and all tags using the template. Users should enable the Data Catalog API in the project identified by the `name` parameter (see [Data Catalog Resource Project] - (/data-catalog/docs/concepts/resource-project) for more information). + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for + more information). """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -346,8 +344,8 @@ def CreateTagTemplateField(self, request, context): """Creates a field in a tag template. The user should enable the Data Catalog API in the project identified by the `parent` parameter (see [Data Catalog Resource - Project](/data-catalog/docs/concepts/resource-project) for more - information). + Project](https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -357,7 +355,8 @@ def UpdateTagTemplateField(self, request, context): """Updates a field in a tag template. This method cannot be used to update the field type. Users should enable the Data Catalog API in the project identified by the `name` parameter (see [Data Catalog Resource Project] - (/data-catalog/docs/concepts/resource-project) for more information). + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for + more information). """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -366,8 +365,9 @@ def UpdateTagTemplateField(self, request, context): def RenameTagTemplateField(self, request, context): """Renames a field in a tag template. The user should enable the Data Catalog API in the project identified by the `name` parameter (see [Data Catalog - Resource Project](/data-catalog/docs/concepts/resource-project) for more - information). + Resource + Project](https://cloud.google.com/data-catalog/docs/concepts/resource-project) + for more information). """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -377,7 +377,8 @@ def DeleteTagTemplateField(self, request, context): """Deletes a field in a tag template and all uses of that field. Users should enable the Data Catalog API in the project identified by the `name` parameter (see [Data Catalog Resource Project] - (/data-catalog/docs/concepts/resource-project) for more information). + (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for + more information). """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -386,10 +387,10 @@ def DeleteTagTemplateField(self, request, context): def CreateTag(self, request, context): """Creates a tag on an [Entry][google.cloud.datacatalog.v1beta1.Entry]. Note: The project identified by the `parent` parameter for the - [tag](/data-catalog/docs/reference/rest/v1beta1/projects.locations.entryGroups.entries.tags/create#path-parameters) + [tag](https://cloud.google.com/data-catalog/docs/reference/rest/v1beta1/projects.locations.entryGroups.entries.tags/create#path-parameters) and the [tag - template](/data-catalog/docs/reference/rest/v1beta1/projects.locations.tagTemplates/create#path-parameters) + template](https://cloud.google.com/data-catalog/docs/reference/rest/v1beta1/projects.locations.tagTemplates/create#path-parameters) used to create the tag must be from the same organization. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) @@ -424,9 +425,8 @@ def SetIamPolicy(self, request, context): - Tag templates. - Entries. - Entry groups. - Note, this method cannot be used to manage policies for BigQuery, Cloud - Pub/Sub and any external Google Cloud Platform resources synced to Cloud - Data Catalog. + Note, this method cannot be used to manage policies for BigQuery, Pub/Sub + and any external Google Cloud Platform resources synced to Data Catalog. Callers must have following Google IAM permission - `datacatalog.tagTemplates.setIamPolicy` to set policies on tag @@ -447,9 +447,8 @@ def GetIamPolicy(self, request, context): - Tag templates. - Entries. - Entry groups. - Note, this method cannot be used to manage policies for BigQuery, Cloud - Pub/Sub and any external Google Cloud Platform resources synced to Cloud - Data Catalog. + Note, this method cannot be used to manage policies for BigQuery, Pub/Sub + and any external Google Cloud Platform resources synced to Data Catalog. Callers must have following Google IAM permission - `datacatalog.tagTemplates.getIamPolicy` to get policies on tag @@ -470,9 +469,8 @@ def TestIamPermissions(self, request, context): - Tag templates. - Entries. - Entry groups. - Note, this method cannot be used to manage policies for BigQuery, Cloud - Pub/Sub and any external Google Cloud Platform resources synced to Cloud - Data Catalog. + Note, this method cannot be used to manage policies for BigQuery, Pub/Sub + and any external Google Cloud Platform resources synced to Data Catalog. A caller is not required to have Google IAM permission to make this request. diff --git a/google/cloud/datacatalog_v1beta1/proto/gcs_fileset_spec_pb2.py b/google/cloud/datacatalog_v1beta1/proto/gcs_fileset_spec_pb2.py index 3ef851c5..a28beffd 100644 --- a/google/cloud/datacatalog_v1beta1/proto/gcs_fileset_spec_pb2.py +++ b/google/cloud/datacatalog_v1beta1/proto/gcs_fileset_spec_pb2.py @@ -22,8 +22,8 @@ name="google/cloud/datacatalog_v1beta1/proto/gcs_fileset_spec.proto", package="google.cloud.datacatalog.v1beta1", syntax="proto3", - serialized_options=b"\n$com.google.cloud.datacatalog.v1beta1P\001ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\370\001\001", - serialized_pb=b'\n=google/cloud/datacatalog_v1beta1/proto/gcs_fileset_spec.proto\x12 google.cloud.datacatalog.v1beta1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x37google/cloud/datacatalog_v1beta1/proto/timestamps.proto"\x7f\n\x0eGcsFilesetSpec\x12\x1a\n\rfile_patterns\x18\x01 \x03(\tB\x03\xe0\x41\x02\x12Q\n\x15sample_gcs_file_specs\x18\x02 \x03(\x0b\x32-.google.cloud.datacatalog.v1beta1.GcsFileSpecB\x03\xe0\x41\x03"\x8f\x01\n\x0bGcsFileSpec\x12\x16\n\tfile_path\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12O\n\x0egcs_timestamps\x18\x02 \x01(\x0b\x32\x32.google.cloud.datacatalog.v1beta1.SystemTimestampsB\x03\xe0\x41\x03\x12\x17\n\nsize_bytes\x18\x04 \x01(\x03\x42\x03\xe0\x41\x03\x42x\n$com.google.cloud.datacatalog.v1beta1P\x01ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\xf8\x01\x01\x62\x06proto3', + serialized_options=b"\n$com.google.cloud.datacatalog.v1beta1P\001ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\370\001\001\252\002 Google.Cloud.DataCatalog.V1Beta1\312\002 Google\\Cloud\\DataCatalog\\V1beta1\352\002#Google::Cloud::DataCatalog::V1beta1", + serialized_pb=b'\n=google/cloud/datacatalog_v1beta1/proto/gcs_fileset_spec.proto\x12 google.cloud.datacatalog.v1beta1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x37google/cloud/datacatalog_v1beta1/proto/timestamps.proto"\x7f\n\x0eGcsFilesetSpec\x12\x1a\n\rfile_patterns\x18\x01 \x03(\tB\x03\xe0\x41\x02\x12Q\n\x15sample_gcs_file_specs\x18\x02 \x03(\x0b\x32-.google.cloud.datacatalog.v1beta1.GcsFileSpecB\x03\xe0\x41\x03"\x8f\x01\n\x0bGcsFileSpec\x12\x16\n\tfile_path\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12O\n\x0egcs_timestamps\x18\x02 \x01(\x0b\x32\x32.google.cloud.datacatalog.v1beta1.SystemTimestampsB\x03\xe0\x41\x03\x12\x17\n\nsize_bytes\x18\x04 \x01(\x03\x42\x03\xe0\x41\x03\x42\xe4\x01\n$com.google.cloud.datacatalog.v1beta1P\x01ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\xf8\x01\x01\xaa\x02 Google.Cloud.DataCatalog.V1Beta1\xca\x02 Google\\Cloud\\DataCatalog\\V1beta1\xea\x02#Google::Cloud::DataCatalog::V1beta1b\x06proto3', dependencies=[ google_dot_api_dot_field__behavior__pb2.DESCRIPTOR, google_dot_cloud_dot_datacatalog__v1beta1_dot_proto_dot_timestamps__pb2.DESCRIPTOR, diff --git a/google/cloud/datacatalog_v1beta1/proto/policytagmanager_pb2.py b/google/cloud/datacatalog_v1beta1/proto/policytagmanager_pb2.py index ce0a321f..0667e324 100644 --- a/google/cloud/datacatalog_v1beta1/proto/policytagmanager_pb2.py +++ b/google/cloud/datacatalog_v1beta1/proto/policytagmanager_pb2.py @@ -29,8 +29,8 @@ name="google/cloud/datacatalog_v1beta1/proto/policytagmanager.proto", package="google.cloud.datacatalog.v1beta1", syntax="proto3", - serialized_options=b"\n$com.google.cloud.datacatalog.v1beta1B\025PolicyTagManagerProtoP\001ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\370\001\001", - serialized_pb=b'\n=google/cloud/datacatalog_v1beta1/proto/policytagmanager.proto\x12 google.cloud.datacatalog.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x37google/cloud/datacatalog_v1beta1/proto/timestamps.proto\x1a\x1egoogle/iam/v1/iam_policy.proto\x1a\x1agoogle/iam/v1/policy.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto"\xe3\x02\n\x08Taxonomy\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12Z\n\x16\x61\x63tivated_policy_types\x18\x06 \x03(\x0e\x32\x35.google.cloud.datacatalog.v1beta1.Taxonomy.PolicyTypeB\x03\xe0\x41\x01"J\n\nPolicyType\x12\x1b\n\x17POLICY_TYPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1b\x46INE_GRAINED_ACCESS_CONTROL\x10\x01:g\xea\x41\x64\n#datacatalog.googleapis.com/Taxonomy\x12=projects/{project}/locations/{location}/taxonomies/{taxonomy}"\x8c\x02\n\tPolicyTag\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x19\n\x11parent_policy_tag\x18\x04 \x01(\t\x12\x1e\n\x11\x63hild_policy_tags\x18\x05 \x03(\tB\x03\xe0\x41\x03:\x80\x01\xea\x41}\n$datacatalog.googleapis.com/PolicyTag\x12Uprojects/{project}/locations/{location}/taxonomies/{taxonomy}/policyTags/{policy_tag}"\x92\x01\n\x15\x43reateTaxonomyRequest\x12;\n\x06parent\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\x12#datacatalog.googleapis.com/Taxonomy\x12<\n\x08taxonomy\x18\x02 \x01(\x0b\x32*.google.cloud.datacatalog.v1beta1.Taxonomy"R\n\x15\x44\x65leteTaxonomyRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#datacatalog.googleapis.com/Taxonomy"\x86\x01\n\x15UpdateTaxonomyRequest\x12<\n\x08taxonomy\x18\x01 \x01(\x0b\x32*.google.cloud.datacatalog.v1beta1.Taxonomy\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"{\n\x15ListTaxonomiesRequest\x12;\n\x06parent\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\x12#datacatalog.googleapis.com/Taxonomy\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t"q\n\x16ListTaxonomiesResponse\x12>\n\ntaxonomies\x18\x01 \x03(\x0b\x32*.google.cloud.datacatalog.v1beta1.Taxonomy\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"O\n\x12GetTaxonomyRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#datacatalog.googleapis.com/Taxonomy"\x97\x01\n\x16\x43reatePolicyTagRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$datacatalog.googleapis.com/PolicyTag\x12?\n\npolicy_tag\x18\x02 \x01(\x0b\x32+.google.cloud.datacatalog.v1beta1.PolicyTag"T\n\x16\x44\x65letePolicyTagRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$datacatalog.googleapis.com/PolicyTag"\x8a\x01\n\x16UpdatePolicyTagRequest\x12?\n\npolicy_tag\x18\x01 \x01(\x0b\x32+.google.cloud.datacatalog.v1beta1.PolicyTag\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"|\n\x15ListPolicyTagsRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$datacatalog.googleapis.com/PolicyTag\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t"s\n\x16ListPolicyTagsResponse\x12@\n\x0bpolicy_tags\x18\x01 \x03(\x0b\x32+.google.cloud.datacatalog.v1beta1.PolicyTag\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"Q\n\x13GetPolicyTagRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$datacatalog.googleapis.com/PolicyTag2\xe5\x16\n\x10PolicyTagManager\x12\xce\x01\n\x0e\x43reateTaxonomy\x12\x37.google.cloud.datacatalog.v1beta1.CreateTaxonomyRequest\x1a*.google.cloud.datacatalog.v1beta1.Taxonomy"W\x82\xd3\xe4\x93\x02?"3/v1beta1/{parent=projects/*/locations/*}/taxonomies:\x08taxonomy\xda\x41\x0fparent,taxonomy\x12\xa5\x01\n\x0e\x44\x65leteTaxonomy\x12\x37.google.cloud.datacatalog.v1beta1.DeleteTaxonomyRequest\x1a\x16.google.protobuf.Empty"B\x82\xd3\xe4\x93\x02\x35*3/v1beta1/{name=projects/*/locations/*/taxonomies/*}\xda\x41\x04name\x12\xd0\x01\n\x0eUpdateTaxonomy\x12\x37.google.cloud.datacatalog.v1beta1.UpdateTaxonomyRequest\x1a*.google.cloud.datacatalog.v1beta1.Taxonomy"Y\x82\xd3\xe4\x93\x02H2\n\ntaxonomies\x18\x01 \x03(\x0b\x32*.google.cloud.datacatalog.v1beta1.Taxonomy\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"O\n\x12GetTaxonomyRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#datacatalog.googleapis.com/Taxonomy"\x97\x01\n\x16\x43reatePolicyTagRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$datacatalog.googleapis.com/PolicyTag\x12?\n\npolicy_tag\x18\x02 \x01(\x0b\x32+.google.cloud.datacatalog.v1beta1.PolicyTag"T\n\x16\x44\x65letePolicyTagRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$datacatalog.googleapis.com/PolicyTag"\x8a\x01\n\x16UpdatePolicyTagRequest\x12?\n\npolicy_tag\x18\x01 \x01(\x0b\x32+.google.cloud.datacatalog.v1beta1.PolicyTag\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"|\n\x15ListPolicyTagsRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$datacatalog.googleapis.com/PolicyTag\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t"s\n\x16ListPolicyTagsResponse\x12@\n\x0bpolicy_tags\x18\x01 \x03(\x0b\x32+.google.cloud.datacatalog.v1beta1.PolicyTag\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"Q\n\x13GetPolicyTagRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$datacatalog.googleapis.com/PolicyTag2\xe5\x16\n\x10PolicyTagManager\x12\xce\x01\n\x0e\x43reateTaxonomy\x12\x37.google.cloud.datacatalog.v1beta1.CreateTaxonomyRequest\x1a*.google.cloud.datacatalog.v1beta1.Taxonomy"W\x82\xd3\xe4\x93\x02?"3/v1beta1/{parent=projects/*/locations/*}/taxonomies:\x08taxonomy\xda\x41\x0fparent,taxonomy\x12\xa5\x01\n\x0e\x44\x65leteTaxonomy\x12\x37.google.cloud.datacatalog.v1beta1.DeleteTaxonomyRequest\x1a\x16.google.protobuf.Empty"B\x82\xd3\xe4\x93\x02\x35*3/v1beta1/{name=projects/*/locations/*/taxonomies/*}\xda\x41\x04name\x12\xd0\x01\n\x0eUpdateTaxonomy\x12\x37.google.cloud.datacatalog.v1beta1.UpdateTaxonomyRequest\x1a*.google.cloud.datacatalog.v1beta1.Taxonomy"Y\x82\xd3\xe4\x93\x02H2\n\ntaxonomies\x18\x01 \x03(\x0b\x32*.google.cloud.datacatalog.v1beta1.Taxonomy"\xc7\x01\n\x17\x45xportTaxonomiesRequest\x12;\n\x06parent\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\x12#datacatalog.googleapis.com/Taxonomy\x12?\n\ntaxonomies\x18\x02 \x03(\tB+\xe0\x41\x02\xfa\x41%\n#datacatalog.googleapis.com/Taxonomy\x12\x1f\n\x15serialized_taxonomies\x18\x03 \x01(\x08H\x00\x42\r\n\x0b\x64\x65stination"d\n\x18\x45xportTaxonomiesResponse\x12H\n\ntaxonomies\x18\x01 \x03(\x0b\x32\x34.google.cloud.datacatalog.v1beta1.SerializedTaxonomy2\x92\x04\n\x1dPolicyTagManagerSerialization\x12\xd0\x01\n\x10ImportTaxonomies\x12\x39.google.cloud.datacatalog.v1beta1.ImportTaxonomiesRequest\x1a:.google.cloud.datacatalog.v1beta1.ImportTaxonomiesResponse"E\x82\xd3\xe4\x93\x02?":/v1beta1/{parent=projects/*/locations/*}/taxonomies:import:\x01*\x12\xcd\x01\n\x10\x45xportTaxonomies\x12\x39.google.cloud.datacatalog.v1beta1.ExportTaxonomiesRequest\x1a:.google.cloud.datacatalog.v1beta1.ExportTaxonomiesResponse"B\x82\xd3\xe4\x93\x02<\x12:/v1beta1/{parent=projects/*/locations/*}/taxonomies:export\x1aN\xca\x41\x1a\x64\x61tacatalog.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\x9c\x01\n$com.google.cloud.datacatalog.v1beta1B"PolicyTagManagerSerializationProtoP\x01ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\xf8\x01\x01\x62\x06proto3', + serialized_options=b'\n$com.google.cloud.datacatalog.v1beta1B"PolicyTagManagerSerializationProtoP\001ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\370\001\001\252\002 Google.Cloud.DataCatalog.V1Beta1\312\002 Google\\Cloud\\DataCatalog\\V1beta1\352\002#Google::Cloud::DataCatalog::V1beta1', + serialized_pb=b'\nJgoogle/cloud/datacatalog_v1beta1/proto/policytagmanagerserialization.proto\x12 google.cloud.datacatalog.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a=google/cloud/datacatalog_v1beta1/proto/policytagmanager.proto\x1a\x1agoogle/iam/v1/policy.proto\x1a\x17google/api/client.proto"\x90\x01\n\x12SerializedTaxonomy\x12\x19\n\x0c\x64isplay_name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12J\n\x0bpolicy_tags\x18\x03 \x03(\x0b\x32\x35.google.cloud.datacatalog.v1beta1.SerializedPolicyTag"\x97\x01\n\x13SerializedPolicyTag\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12P\n\x11\x63hild_policy_tags\x18\x04 \x03(\x0b\x32\x35.google.cloud.datacatalog.v1beta1.SerializedPolicyTag"\xa9\x01\n\x17ImportTaxonomiesRequest\x12;\n\x06parent\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\x12#datacatalog.googleapis.com/Taxonomy\x12G\n\rinline_source\x18\x02 \x01(\x0b\x32..google.cloud.datacatalog.v1beta1.InlineSourceH\x00\x42\x08\n\x06source"]\n\x0cInlineSource\x12M\n\ntaxonomies\x18\x01 \x03(\x0b\x32\x34.google.cloud.datacatalog.v1beta1.SerializedTaxonomyB\x03\xe0\x41\x02"Z\n\x18ImportTaxonomiesResponse\x12>\n\ntaxonomies\x18\x01 \x03(\x0b\x32*.google.cloud.datacatalog.v1beta1.Taxonomy"\xc7\x01\n\x17\x45xportTaxonomiesRequest\x12;\n\x06parent\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\x12#datacatalog.googleapis.com/Taxonomy\x12?\n\ntaxonomies\x18\x02 \x03(\tB+\xe0\x41\x02\xfa\x41%\n#datacatalog.googleapis.com/Taxonomy\x12\x1f\n\x15serialized_taxonomies\x18\x03 \x01(\x08H\x00\x42\r\n\x0b\x64\x65stination"d\n\x18\x45xportTaxonomiesResponse\x12H\n\ntaxonomies\x18\x01 \x03(\x0b\x32\x34.google.cloud.datacatalog.v1beta1.SerializedTaxonomy2\x92\x04\n\x1dPolicyTagManagerSerialization\x12\xd0\x01\n\x10ImportTaxonomies\x12\x39.google.cloud.datacatalog.v1beta1.ImportTaxonomiesRequest\x1a:.google.cloud.datacatalog.v1beta1.ImportTaxonomiesResponse"E\x82\xd3\xe4\x93\x02?":/v1beta1/{parent=projects/*/locations/*}/taxonomies:import:\x01*\x12\xcd\x01\n\x10\x45xportTaxonomies\x12\x39.google.cloud.datacatalog.v1beta1.ExportTaxonomiesRequest\x1a:.google.cloud.datacatalog.v1beta1.ExportTaxonomiesResponse"B\x82\xd3\xe4\x93\x02<\x12:/v1beta1/{parent=projects/*/locations/*}/taxonomies:export\x1aN\xca\x41\x1a\x64\x61tacatalog.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\x88\x02\n$com.google.cloud.datacatalog.v1beta1B"PolicyTagManagerSerializationProtoP\x01ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\xf8\x01\x01\xaa\x02 Google.Cloud.DataCatalog.V1Beta1\xca\x02 Google\\Cloud\\DataCatalog\\V1beta1\xea\x02#Google::Cloud::DataCatalog::V1beta1b\x06proto3', dependencies=[ google_dot_api_dot_annotations__pb2.DESCRIPTOR, google_dot_api_dot_field__behavior__pb2.DESCRIPTOR, diff --git a/google/cloud/datacatalog_v1beta1/proto/schema_pb2.py b/google/cloud/datacatalog_v1beta1/proto/schema_pb2.py index 61121e28..c326430c 100644 --- a/google/cloud/datacatalog_v1beta1/proto/schema_pb2.py +++ b/google/cloud/datacatalog_v1beta1/proto/schema_pb2.py @@ -19,8 +19,8 @@ name="google/cloud/datacatalog_v1beta1/proto/schema.proto", package="google.cloud.datacatalog.v1beta1", syntax="proto3", - serialized_options=b"\n$com.google.cloud.datacatalog.v1beta1P\001ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\370\001\001", - serialized_pb=b'\n3google/cloud/datacatalog_v1beta1/proto/schema.proto\x12 google.cloud.datacatalog.v1beta1\x1a\x1fgoogle/api/field_behavior.proto"N\n\x06Schema\x12\x44\n\x07\x63olumns\x18\x02 \x03(\x0b\x32..google.cloud.datacatalog.v1beta1.ColumnSchemaB\x03\xe0\x41\x02"\xac\x01\n\x0c\x43olumnSchema\x12\x13\n\x06\x63olumn\x18\x06 \x01(\tB\x03\xe0\x41\x02\x12\x11\n\x04type\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x11\n\x04mode\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12G\n\nsubcolumns\x18\x07 \x03(\x0b\x32..google.cloud.datacatalog.v1beta1.ColumnSchemaB\x03\xe0\x41\x01\x42x\n$com.google.cloud.datacatalog.v1beta1P\x01ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\xf8\x01\x01\x62\x06proto3', + serialized_options=b"\n$com.google.cloud.datacatalog.v1beta1P\001ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\370\001\001\252\002 Google.Cloud.DataCatalog.V1Beta1\312\002 Google\\Cloud\\DataCatalog\\V1beta1\352\002#Google::Cloud::DataCatalog::V1beta1", + serialized_pb=b'\n3google/cloud/datacatalog_v1beta1/proto/schema.proto\x12 google.cloud.datacatalog.v1beta1\x1a\x1fgoogle/api/field_behavior.proto"N\n\x06Schema\x12\x44\n\x07\x63olumns\x18\x02 \x03(\x0b\x32..google.cloud.datacatalog.v1beta1.ColumnSchemaB\x03\xe0\x41\x02"\xac\x01\n\x0c\x43olumnSchema\x12\x13\n\x06\x63olumn\x18\x06 \x01(\tB\x03\xe0\x41\x02\x12\x11\n\x04type\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x11\n\x04mode\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12G\n\nsubcolumns\x18\x07 \x03(\x0b\x32..google.cloud.datacatalog.v1beta1.ColumnSchemaB\x03\xe0\x41\x01\x42\xe4\x01\n$com.google.cloud.datacatalog.v1beta1P\x01ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\xf8\x01\x01\xaa\x02 Google.Cloud.DataCatalog.V1Beta1\xca\x02 Google\\Cloud\\DataCatalog\\V1beta1\xea\x02#Google::Cloud::DataCatalog::V1beta1b\x06proto3', dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR], ) diff --git a/google/cloud/datacatalog_v1beta1/proto/search_pb2.py b/google/cloud/datacatalog_v1beta1/proto/search_pb2.py index 84dddbde..538d08b6 100644 --- a/google/cloud/datacatalog_v1beta1/proto/search_pb2.py +++ b/google/cloud/datacatalog_v1beta1/proto/search_pb2.py @@ -24,8 +24,8 @@ name="google/cloud/datacatalog_v1beta1/proto/search.proto", package="google.cloud.datacatalog.v1beta1", syntax="proto3", - serialized_options=b"\n$com.google.cloud.datacatalog.v1beta1P\001ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\370\001\001", - serialized_pb=b'\n3google/cloud/datacatalog_v1beta1/proto/search.proto\x12 google.cloud.datacatalog.v1beta1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x33google/cloud/datacatalog_v1beta1/proto/common.proto\x1a\x1fgoogle/protobuf/timestamp.proto"\xbd\x01\n\x13SearchCatalogResult\x12N\n\x12search_result_type\x18\x01 \x01(\x0e\x32\x32.google.cloud.datacatalog.v1beta1.SearchResultType\x12\x1d\n\x15search_result_subtype\x18\x02 \x01(\t\x12\x1e\n\x16relative_resource_name\x18\x03 \x01(\t\x12\x17\n\x0flinked_resource\x18\x04 \x01(\t*d\n\x10SearchResultType\x12"\n\x1eSEARCH_RESULT_TYPE_UNSPECIFIED\x10\x00\x12\t\n\x05\x45NTRY\x10\x01\x12\x10\n\x0cTAG_TEMPLATE\x10\x02\x12\x0f\n\x0b\x45NTRY_GROUP\x10\x03\x42x\n$com.google.cloud.datacatalog.v1beta1P\x01ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\xf8\x01\x01\x62\x06proto3', + serialized_options=b"\n$com.google.cloud.datacatalog.v1beta1P\001ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\370\001\001\252\002 Google.Cloud.DataCatalog.V1Beta1\312\002 Google\\Cloud\\DataCatalog\\V1beta1\352\002#Google::Cloud::DataCatalog::V1beta1", + serialized_pb=b'\n3google/cloud/datacatalog_v1beta1/proto/search.proto\x12 google.cloud.datacatalog.v1beta1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x33google/cloud/datacatalog_v1beta1/proto/common.proto\x1a\x1fgoogle/protobuf/timestamp.proto"\xbd\x01\n\x13SearchCatalogResult\x12N\n\x12search_result_type\x18\x01 \x01(\x0e\x32\x32.google.cloud.datacatalog.v1beta1.SearchResultType\x12\x1d\n\x15search_result_subtype\x18\x02 \x01(\t\x12\x1e\n\x16relative_resource_name\x18\x03 \x01(\t\x12\x17\n\x0flinked_resource\x18\x04 \x01(\t*d\n\x10SearchResultType\x12"\n\x1eSEARCH_RESULT_TYPE_UNSPECIFIED\x10\x00\x12\t\n\x05\x45NTRY\x10\x01\x12\x10\n\x0cTAG_TEMPLATE\x10\x02\x12\x0f\n\x0b\x45NTRY_GROUP\x10\x03\x42\xe4\x01\n$com.google.cloud.datacatalog.v1beta1P\x01ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\xf8\x01\x01\xaa\x02 Google.Cloud.DataCatalog.V1Beta1\xca\x02 Google\\Cloud\\DataCatalog\\V1beta1\xea\x02#Google::Cloud::DataCatalog::V1beta1b\x06proto3', dependencies=[ google_dot_api_dot_field__behavior__pb2.DESCRIPTOR, google_dot_cloud_dot_datacatalog__v1beta1_dot_proto_dot_common__pb2.DESCRIPTOR, diff --git a/google/cloud/datacatalog_v1beta1/proto/table_spec_pb2.py b/google/cloud/datacatalog_v1beta1/proto/table_spec_pb2.py index eea644a3..45f61624 100644 --- a/google/cloud/datacatalog_v1beta1/proto/table_spec_pb2.py +++ b/google/cloud/datacatalog_v1beta1/proto/table_spec_pb2.py @@ -21,8 +21,8 @@ name="google/cloud/datacatalog_v1beta1/proto/table_spec.proto", package="google.cloud.datacatalog.v1beta1", syntax="proto3", - serialized_options=b"\n$com.google.cloud.datacatalog.v1beta1P\001ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\370\001\001", - serialized_pb=b'\n7google/cloud/datacatalog_v1beta1/proto/table_spec.proto\x12 google.cloud.datacatalog.v1beta1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto"\xf7\x01\n\x11\x42igQueryTableSpec\x12Q\n\x11table_source_type\x18\x01 \x01(\x0e\x32\x31.google.cloud.datacatalog.v1beta1.TableSourceTypeB\x03\xe0\x41\x03\x12?\n\tview_spec\x18\x02 \x01(\x0b\x32*.google.cloud.datacatalog.v1beta1.ViewSpecH\x00\x12\x41\n\ntable_spec\x18\x03 \x01(\x0b\x32+.google.cloud.datacatalog.v1beta1.TableSpecH\x00\x42\x0b\n\ttype_spec"#\n\x08ViewSpec\x12\x17\n\nview_query\x18\x01 \x01(\tB\x03\xe0\x41\x03"L\n\tTableSpec\x12?\n\rgrouped_entry\x18\x01 \x01(\tB(\xe0\x41\x03\xfa\x41"\n datacatalog.googleapis.com/Entry"\x89\x01\n\x17\x42igQueryDateShardedSpec\x12\x39\n\x07\x64\x61taset\x18\x01 \x01(\tB(\xe0\x41\x03\xfa\x41"\n datacatalog.googleapis.com/Entry\x12\x19\n\x0ctable_prefix\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0bshard_count\x18\x03 \x01(\x03\x42\x03\xe0\x41\x03*[\n\x0fTableSourceType\x12!\n\x1dTABLE_SOURCE_TYPE_UNSPECIFIED\x10\x00\x12\x11\n\rBIGQUERY_VIEW\x10\x02\x12\x12\n\x0e\x42IGQUERY_TABLE\x10\x05\x42x\n$com.google.cloud.datacatalog.v1beta1P\x01ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\xf8\x01\x01\x62\x06proto3', + serialized_options=b"\n$com.google.cloud.datacatalog.v1beta1P\001ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\370\001\001\252\002 Google.Cloud.DataCatalog.V1Beta1\312\002 Google\\Cloud\\DataCatalog\\V1beta1\352\002#Google::Cloud::DataCatalog::V1beta1", + serialized_pb=b'\n7google/cloud/datacatalog_v1beta1/proto/table_spec.proto\x12 google.cloud.datacatalog.v1beta1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto"\xf7\x01\n\x11\x42igQueryTableSpec\x12Q\n\x11table_source_type\x18\x01 \x01(\x0e\x32\x31.google.cloud.datacatalog.v1beta1.TableSourceTypeB\x03\xe0\x41\x03\x12?\n\tview_spec\x18\x02 \x01(\x0b\x32*.google.cloud.datacatalog.v1beta1.ViewSpecH\x00\x12\x41\n\ntable_spec\x18\x03 \x01(\x0b\x32+.google.cloud.datacatalog.v1beta1.TableSpecH\x00\x42\x0b\n\ttype_spec"#\n\x08ViewSpec\x12\x17\n\nview_query\x18\x01 \x01(\tB\x03\xe0\x41\x03"L\n\tTableSpec\x12?\n\rgrouped_entry\x18\x01 \x01(\tB(\xe0\x41\x03\xfa\x41"\n datacatalog.googleapis.com/Entry"\x89\x01\n\x17\x42igQueryDateShardedSpec\x12\x39\n\x07\x64\x61taset\x18\x01 \x01(\tB(\xe0\x41\x03\xfa\x41"\n datacatalog.googleapis.com/Entry\x12\x19\n\x0ctable_prefix\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0bshard_count\x18\x03 \x01(\x03\x42\x03\xe0\x41\x03*[\n\x0fTableSourceType\x12!\n\x1dTABLE_SOURCE_TYPE_UNSPECIFIED\x10\x00\x12\x11\n\rBIGQUERY_VIEW\x10\x02\x12\x12\n\x0e\x42IGQUERY_TABLE\x10\x05\x42\xe4\x01\n$com.google.cloud.datacatalog.v1beta1P\x01ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\xf8\x01\x01\xaa\x02 Google.Cloud.DataCatalog.V1Beta1\xca\x02 Google\\Cloud\\DataCatalog\\V1beta1\xea\x02#Google::Cloud::DataCatalog::V1beta1b\x06proto3', dependencies=[ google_dot_api_dot_field__behavior__pb2.DESCRIPTOR, google_dot_api_dot_resource__pb2.DESCRIPTOR, diff --git a/google/cloud/datacatalog_v1beta1/proto/tags_pb2.py b/google/cloud/datacatalog_v1beta1/proto/tags_pb2.py index f9d484e6..12a5620f 100644 --- a/google/cloud/datacatalog_v1beta1/proto/tags_pb2.py +++ b/google/cloud/datacatalog_v1beta1/proto/tags_pb2.py @@ -21,8 +21,8 @@ name="google/cloud/datacatalog_v1beta1/proto/tags.proto", package="google.cloud.datacatalog.v1beta1", syntax="proto3", - serialized_options=b"\n$com.google.cloud.datacatalog.v1beta1P\001ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\370\001\001", - serialized_pb=b'\n1google/cloud/datacatalog_v1beta1/proto/tags.proto\x12 google.cloud.datacatalog.v1beta1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto"\x90\x03\n\x03Tag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x15\n\x08template\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12"\n\x15template_display_name\x18\x05 \x01(\tB\x03\xe0\x41\x03\x12\x10\n\x06\x63olumn\x18\x04 \x01(\tH\x00\x12\x46\n\x06\x66ields\x18\x03 \x03(\x0b\x32\x31.google.cloud.datacatalog.v1beta1.Tag.FieldsEntryB\x03\xe0\x41\x02\x1aY\n\x0b\x46ieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x39\n\x05value\x18\x02 \x01(\x0b\x32*.google.cloud.datacatalog.v1beta1.TagField:\x02\x38\x01:\x81\x01\xea\x41~\n\x1e\x64\x61tacatalog.googleapis.com/Tag\x12\\projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}/tags/{tag}B\x07\n\x05scope"\x99\x02\n\x08TagField\x12\x19\n\x0c\x64isplay_name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x16\n\x0c\x64ouble_value\x18\x02 \x01(\x01H\x00\x12\x16\n\x0cstring_value\x18\x03 \x01(\tH\x00\x12\x14\n\nbool_value\x18\x04 \x01(\x08H\x00\x12\x35\n\x0ftimestamp_value\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x12J\n\nenum_value\x18\x06 \x01(\x0b\x32\x34.google.cloud.datacatalog.v1beta1.TagField.EnumValueH\x00\x1a!\n\tEnumValue\x12\x14\n\x0c\x64isplay_name\x18\x01 \x01(\tB\x06\n\x04kind"\xd6\x02\n\x0bTagTemplate\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12N\n\x06\x66ields\x18\x03 \x03(\x0b\x32\x39.google.cloud.datacatalog.v1beta1.TagTemplate.FieldsEntryB\x03\xe0\x41\x02\x1a\x61\n\x0b\x46ieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x41\n\x05value\x18\x02 \x01(\x0b\x32\x32.google.cloud.datacatalog.v1beta1.TagTemplateField:\x02\x38\x01:p\xea\x41m\n&datacatalog.googleapis.com/TagTemplate\x12\x43projects/{project}/locations/{location}/tagTemplates/{tag_template}"\x98\x02\n\x10TagTemplateField\x12\x11\n\x04name\x18\x06 \x01(\tB\x03\xe0\x41\x03\x12\x14\n\x0c\x64isplay_name\x18\x01 \x01(\t\x12>\n\x04type\x18\x02 \x01(\x0b\x32+.google.cloud.datacatalog.v1beta1.FieldTypeB\x03\xe0\x41\x02\x12\x13\n\x0bis_required\x18\x03 \x01(\x08:\x85\x01\xea\x41\x81\x01\n+datacatalog.googleapis.com/TagTemplateField\x12Rprojects/{project}/locations/{location}/tagTemplates/{tag_template}/fields/{field}"\xa7\x03\n\tFieldType\x12S\n\x0eprimitive_type\x18\x01 \x01(\x0e\x32\x39.google.cloud.datacatalog.v1beta1.FieldType.PrimitiveTypeH\x00\x12I\n\tenum_type\x18\x02 \x01(\x0b\x32\x34.google.cloud.datacatalog.v1beta1.FieldType.EnumTypeH\x00\x1a\x8a\x01\n\x08\x45numType\x12V\n\x0e\x61llowed_values\x18\x01 \x03(\x0b\x32>.google.cloud.datacatalog.v1beta1.FieldType.EnumType.EnumValue\x1a&\n\tEnumValue\x12\x19\n\x0c\x64isplay_name\x18\x01 \x01(\tB\x03\xe0\x41\x02"`\n\rPrimitiveType\x12\x1e\n\x1aPRIMITIVE_TYPE_UNSPECIFIED\x10\x00\x12\n\n\x06\x44OUBLE\x10\x01\x12\n\n\x06STRING\x10\x02\x12\x08\n\x04\x42OOL\x10\x03\x12\r\n\tTIMESTAMP\x10\x04\x42\x0b\n\ttype_declBx\n$com.google.cloud.datacatalog.v1beta1P\x01ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\xf8\x01\x01\x62\x06proto3', + serialized_options=b"\n$com.google.cloud.datacatalog.v1beta1P\001ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\370\001\001\252\002 Google.Cloud.DataCatalog.V1Beta1\312\002 Google\\Cloud\\DataCatalog\\V1beta1\352\002#Google::Cloud::DataCatalog::V1beta1", + serialized_pb=b'\n1google/cloud/datacatalog_v1beta1/proto/tags.proto\x12 google.cloud.datacatalog.v1beta1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto"\x90\x03\n\x03Tag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x15\n\x08template\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12"\n\x15template_display_name\x18\x05 \x01(\tB\x03\xe0\x41\x03\x12\x10\n\x06\x63olumn\x18\x04 \x01(\tH\x00\x12\x46\n\x06\x66ields\x18\x03 \x03(\x0b\x32\x31.google.cloud.datacatalog.v1beta1.Tag.FieldsEntryB\x03\xe0\x41\x02\x1aY\n\x0b\x46ieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x39\n\x05value\x18\x02 \x01(\x0b\x32*.google.cloud.datacatalog.v1beta1.TagField:\x02\x38\x01:\x81\x01\xea\x41~\n\x1e\x64\x61tacatalog.googleapis.com/Tag\x12\\projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}/tags/{tag}B\x07\n\x05scope"\xad\x02\n\x08TagField\x12\x19\n\x0c\x64isplay_name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x16\n\x0c\x64ouble_value\x18\x02 \x01(\x01H\x00\x12\x16\n\x0cstring_value\x18\x03 \x01(\tH\x00\x12\x14\n\nbool_value\x18\x04 \x01(\x08H\x00\x12\x35\n\x0ftimestamp_value\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x12J\n\nenum_value\x18\x06 \x01(\x0b\x32\x34.google.cloud.datacatalog.v1beta1.TagField.EnumValueH\x00\x12\x12\n\x05order\x18\x07 \x01(\x05\x42\x03\xe0\x41\x03\x1a!\n\tEnumValue\x12\x14\n\x0c\x64isplay_name\x18\x01 \x01(\tB\x06\n\x04kind"\xd6\x02\n\x0bTagTemplate\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12N\n\x06\x66ields\x18\x03 \x03(\x0b\x32\x39.google.cloud.datacatalog.v1beta1.TagTemplate.FieldsEntryB\x03\xe0\x41\x02\x1a\x61\n\x0b\x46ieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x41\n\x05value\x18\x02 \x01(\x0b\x32\x32.google.cloud.datacatalog.v1beta1.TagTemplateField:\x02\x38\x01:p\xea\x41m\n&datacatalog.googleapis.com/TagTemplate\x12\x43projects/{project}/locations/{location}/tagTemplates/{tag_template}"\xa7\x02\n\x10TagTemplateField\x12\x11\n\x04name\x18\x06 \x01(\tB\x03\xe0\x41\x03\x12\x14\n\x0c\x64isplay_name\x18\x01 \x01(\t\x12>\n\x04type\x18\x02 \x01(\x0b\x32+.google.cloud.datacatalog.v1beta1.FieldTypeB\x03\xe0\x41\x02\x12\x13\n\x0bis_required\x18\x03 \x01(\x08\x12\r\n\x05order\x18\x05 \x01(\x05:\x85\x01\xea\x41\x81\x01\n+datacatalog.googleapis.com/TagTemplateField\x12Rprojects/{project}/locations/{location}/tagTemplates/{tag_template}/fields/{field}"\xa7\x03\n\tFieldType\x12S\n\x0eprimitive_type\x18\x01 \x01(\x0e\x32\x39.google.cloud.datacatalog.v1beta1.FieldType.PrimitiveTypeH\x00\x12I\n\tenum_type\x18\x02 \x01(\x0b\x32\x34.google.cloud.datacatalog.v1beta1.FieldType.EnumTypeH\x00\x1a\x8a\x01\n\x08\x45numType\x12V\n\x0e\x61llowed_values\x18\x01 \x03(\x0b\x32>.google.cloud.datacatalog.v1beta1.FieldType.EnumType.EnumValue\x1a&\n\tEnumValue\x12\x19\n\x0c\x64isplay_name\x18\x01 \x01(\tB\x03\xe0\x41\x02"`\n\rPrimitiveType\x12\x1e\n\x1aPRIMITIVE_TYPE_UNSPECIFIED\x10\x00\x12\n\n\x06\x44OUBLE\x10\x01\x12\n\n\x06STRING\x10\x02\x12\x08\n\x04\x42OOL\x10\x03\x12\r\n\tTIMESTAMP\x10\x04\x42\x0b\n\ttype_declB\xe4\x01\n$com.google.cloud.datacatalog.v1beta1P\x01ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\xf8\x01\x01\xaa\x02 Google.Cloud.DataCatalog.V1Beta1\xca\x02 Google\\Cloud\\DataCatalog\\V1beta1\xea\x02#Google::Cloud::DataCatalog::V1beta1b\x06proto3', dependencies=[ google_dot_api_dot_field__behavior__pb2.DESCRIPTOR, google_dot_api_dot_resource__pb2.DESCRIPTOR, @@ -59,8 +59,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=1810, - serialized_end=1906, + serialized_start=1845, + serialized_end=1941, ) _sym_db.RegisterEnumDescriptor(_FIELDTYPE_PRIMITIVETYPE) @@ -274,8 +274,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=824, - serialized_end=857, + serialized_start=844, + serialized_end=877, ) _TAGFIELD = _descriptor.Descriptor( @@ -393,6 +393,24 @@ serialized_options=None, file=DESCRIPTOR, ), + _descriptor.FieldDescriptor( + name="order", + full_name="google.cloud.datacatalog.v1beta1.TagField.order", + index=6, + number=7, + type=5, + cpp_type=1, + label=1, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=b"\340A\003", + file=DESCRIPTOR, + ), ], extensions=[], nested_types=[_TAGFIELD_ENUMVALUE], @@ -411,7 +429,7 @@ ) ], serialized_start=584, - serialized_end=865, + serialized_end=885, ) @@ -467,8 +485,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=999, - serialized_end=1096, + serialized_start=1019, + serialized_end=1116, ) _TAGTEMPLATE = _descriptor.Descriptor( @@ -541,8 +559,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=868, - serialized_end=1210, + serialized_start=888, + serialized_end=1230, ) @@ -625,6 +643,24 @@ serialized_options=None, file=DESCRIPTOR, ), + _descriptor.FieldDescriptor( + name="order", + full_name="google.cloud.datacatalog.v1beta1.TagTemplateField.order", + index=4, + number=5, + type=5, + cpp_type=1, + label=1, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + ), ], extensions=[], nested_types=[], @@ -634,8 +670,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1213, - serialized_end=1493, + serialized_start=1233, + serialized_end=1528, ) @@ -673,8 +709,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1770, - serialized_end=1808, + serialized_start=1805, + serialized_end=1843, ) _FIELDTYPE_ENUMTYPE = _descriptor.Descriptor( @@ -711,8 +747,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1670, - serialized_end=1808, + serialized_start=1705, + serialized_end=1843, ) _FIELDTYPE = _descriptor.Descriptor( @@ -775,8 +811,8 @@ fields=[], ) ], - serialized_start=1496, - serialized_end=1919, + serialized_start=1531, + serialized_end=1954, ) _TAG_FIELDSENTRY.fields_by_name["value"].message_type = _TAGFIELD @@ -860,7 +896,8 @@ "__doc__": """Tags are used to attach custom metadata to Data Catalog resources. Tags conform to the specifications within their tag template. - See `Data Catalog IAM `__ for + See `Data Catalog + IAM `__ for information on the permissions needed to create or view tags. @@ -945,6 +982,13 @@ Holds the value for a tag field with enum type. This value must be one of the allowed values in the definition of this enum. + order: + Output only. The order of this field with respect to other + fields in this tag. It can be set in [Tag][google.cloud.dataca + talog.v1beta1.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 do not have to be sequential. """, # @@protoc_insertion_point(class_scope:google.cloud.datacatalog.v1beta1.TagField) }, @@ -970,10 +1014,12 @@ "__doc__": """A tag template defines a tag, which can have one or more typed fields. The template is used to create and attach the tag to GCP resources. `Tag template - roles `__ provide - permissions to create, edit, and use the template (see, for example, the - `TagTemplate User `__ role, - which includes permission to use the tag template to tag resources. + roles `__ + provide permissions to create, edit, and use the template. See, for + example, the `TagTemplate + User `__ + role, which includes permission to use the tag template to tag + resources. Attributes: @@ -1025,6 +1071,12 @@ Required. The type of value this tag field can contain. is_required: Whether this is a required field. Defaults to false. + order: + The order of this field with respect to other fields in this + tag template. A higher value indicates a more important field. + The value can be negative. Multiple fields can have the same + order, and field orders within a tag do not have to be + sequential. """, # @@protoc_insertion_point(class_scope:google.cloud.datacatalog.v1beta1.TagTemplateField) }, @@ -1096,6 +1148,7 @@ _TAG.fields_by_name["fields"]._options = None _TAG._options = None _TAGFIELD.fields_by_name["display_name"]._options = None +_TAGFIELD.fields_by_name["order"]._options = None _TAGTEMPLATE_FIELDSENTRY._options = None _TAGTEMPLATE.fields_by_name["fields"]._options = None _TAGTEMPLATE._options = None diff --git a/google/cloud/datacatalog_v1beta1/proto/timestamps_pb2.py b/google/cloud/datacatalog_v1beta1/proto/timestamps_pb2.py index 6eedb85a..01c3b814 100644 --- a/google/cloud/datacatalog_v1beta1/proto/timestamps_pb2.py +++ b/google/cloud/datacatalog_v1beta1/proto/timestamps_pb2.py @@ -20,8 +20,8 @@ name="google/cloud/datacatalog_v1beta1/proto/timestamps.proto", package="google.cloud.datacatalog.v1beta1", syntax="proto3", - serialized_options=b"\n$com.google.cloud.datacatalog.v1beta1P\001ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\370\001\001", - serialized_pb=b'\n7google/cloud/datacatalog_v1beta1/proto/timestamps.proto\x12 google.cloud.datacatalog.v1beta1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto"\xaa\x01\n\x10SystemTimestamps\x12/\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x34\n\x0b\x65xpire_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x42x\n$com.google.cloud.datacatalog.v1beta1P\x01ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\xf8\x01\x01\x62\x06proto3', + serialized_options=b"\n$com.google.cloud.datacatalog.v1beta1P\001ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\370\001\001\252\002 Google.Cloud.DataCatalog.V1Beta1\312\002 Google\\Cloud\\DataCatalog\\V1beta1\352\002#Google::Cloud::DataCatalog::V1beta1", + serialized_pb=b'\n7google/cloud/datacatalog_v1beta1/proto/timestamps.proto\x12 google.cloud.datacatalog.v1beta1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto"\xaa\x01\n\x10SystemTimestamps\x12/\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x34\n\x0b\x65xpire_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x42\xe4\x01\n$com.google.cloud.datacatalog.v1beta1P\x01ZKgoogle.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog\xf8\x01\x01\xaa\x02 Google.Cloud.DataCatalog.V1Beta1\xca\x02 Google\\Cloud\\DataCatalog\\V1beta1\xea\x02#Google::Cloud::DataCatalog::V1beta1b\x06proto3', dependencies=[ google_dot_api_dot_field__behavior__pb2.DESCRIPTOR, google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR, @@ -121,8 +121,7 @@ { "DESCRIPTOR": _SYSTEMTIMESTAMPS, "__module__": "google.cloud.datacatalog_v1beta1.proto.timestamps_pb2", - "__doc__": """Timestamps about this resource according to a particular - system. + "__doc__": """Timestamps about this resource according to a particular system. Attributes: diff --git a/noxfile.py b/noxfile.py index 5a7bc23d..086ea16d 100644 --- a/noxfile.py +++ b/noxfile.py @@ -110,7 +110,7 @@ def system(session): # Install all test dependencies, then install this package into the # virtualenv's dist-packages. - session.install("mock", "pytest") + session.install("mock", "pytest", "google-cloud-testutils") session.install("-e", ".") # Run py.test against the system tests. diff --git a/synth.metadata b/synth.metadata index 6ce3841b..7d9fabc6 100644 --- a/synth.metadata +++ b/synth.metadata @@ -1,27 +1,25 @@ { - "updateTime": "2020-04-09T12:17:20.178566Z", "sources": [ { "git": { "name": ".", "remote": "https://github.com/googleapis/python-datacatalog.git", - "sha": "21629fed1f86bb1a2800b5213f59acc5d862e2f5" + "sha": "4ed1e336140e5f79d12be3785c0f157ba8756846" } }, { "git": { "name": "googleapis", "remote": "https://github.com/googleapis/googleapis.git", - "sha": "ee4ea76504aa60c2bff9b7c11269c155d8c21e0d", - "internalRef": "305619145", - "log": "ee4ea76504aa60c2bff9b7c11269c155d8c21e0d\ngapic-generator:\n- feat: Support extra plugin_args for php bazel rules rules (#3165)\n- feat: support '*' in resource definition (#3163)\n- fix: add null check and better error message when referenced resource is not found (#3169)\n\nresource name plugin:\n- support * annotation in resource def (#84)\n\nPiperOrigin-RevId: 305619145\n\ne4f4b23e07315492b533746e6a9255a1e6b3e748\nosconfig v1beta: fix the incorrect pattern for GuestPolicy resource and remove the obsolete history field.\n\nPiperOrigin-RevId: 305617619\n\nd741cd976975c745d0199987aff0e908b8352992\nchore: enable gapicv2 for firestore/v1 API\n\nNote that this contains breaking Java changes:\n com.google.cloud.firestore.v1.FirestoreClient: Method 'public void deleteDocument(com.google.firestore.v1.AnyPathName)' has been removed\n\nCommitter: @miraleung\nPiperOrigin-RevId: 305561906\n\n0d69cddaa23b556e7299f84ad55a02ec1cad55a9\nchore: enable gapicv2 for firestore/admin/v1 API\n\nCommitter: @miraleung\n\nThere are the following breaking changes due to the collection_id discrepancy between [1] and [2]\n\n1. https://github.com/googleapis/googleapis/blob/6f8350c0df231d7e742fa10dbf929f33047715c9/google/firestore/admin/v1/firestore_gapic.yaml#L24-L29\n2. https://github.com/googleapis/googleapis/blob/6f8350c0df231d7e742fa10dbf929f33047715c9/google/firestore/admin/v1/field.proto#L39\n```\ncom.google.firestore.admin.v1.FieldName: Method 'public java.lang.String getCollectionId()' has been removed\ncom.google.firestore.admin.v1.FieldName: Method 'public java.lang.String getFieldId()' has been removed\ncom.google.firestore.admin.v1.FieldName$Builder: Method 'public java.lang.String getCollectionId()' has been removed\ncom.google.firestore.admin.v1.FieldName$Builder: Method 'public java.lang.String getFieldId()' has been removed\ncom.google.firestore.admin.v1.FieldName$Builder: Method 'public com.google.firestore.admin.v1.FieldName$Builder setCollectionId(java.lang.String)' has been removed\ncom.google.firestore.admin.v1.FieldName$Builder: Method 'public com.google.firestore.admin.v1.FieldName$Builder setFieldId(java.lang.String)' has been removed\ncom.google.firestore.admin.v1.IndexName: Method 'public java.lang.String getCollectionId()' has been removed\ncom.google.firestore.admin.v1.IndexName: Method 'public java.lang.String getIndexId()' has been removed\ncom.google.firestore.admin.v1.IndexName$Builder: Method 'public java.lang.String getCollectionId()' has been removed\ncom.google.firestore.admin.v1.IndexName$Builder: Method 'public java.lang.String getIndexId()' has been removed\ncom.google.firestore.admin.v1.IndexName$Builder: Method 'public com.google.firestore.admin.v1.IndexName$Builder setCollectionId(java.lang.String)' has been removed\ncom.google.firestore.admin.v1.IndexName$Builder: Method 'public com.google.firestore.admin.v1.IndexName$Builder setIndexId(java.lang.String)' has been removed\n```\n\nPiperOrigin-RevId: 305561114\n\n6f8350c0df231d7e742fa10dbf929f33047715c9\nchore: enable gapicv2 for firestore/v1beta1 API\n\nCommitter: @miraleung\nPiperOrigin-RevId: 305537104\n\nd398d687aad9eab4c6ceee9cd5e012fa61f7e28c\ndocs: change relative URLs to absolute URLs to fix broken links.\n\nPiperOrigin-RevId: 305496764\n\n5520cb891a72ab0b0cbe3facaca7b012785f5b49\nchore: update gapic-generator to cd3c9ee7\n\nChanges include:\n* update generated nox file\n* fix generated license text alignment\n\nPiperOrigin-RevId: 305484038\n\nb20965f260d70e57b7dcd312cd356d6a81f31f8e\nUpdating retry configuration settings.\n\nPiperOrigin-RevId: 305431885\n\n83d7f20c06182cb6ada9a3b47daf17b2fd22b020\nMigrate dialogflow from gapic v1 to gapic v2.\nIncluding breaking changes (resource pattern change) introduced in cl/304043500.\n\ncommitter: @hzyi-google\nPiperOrigin-RevId: 305358314\n\nf8a97692250a6c781d87528995a5c72d41ca7762\nchore: enable gapic v2 and proto annotation for Grafeas API.\n\ncommitter: @noahdietz\nPiperOrigin-RevId: 305354660\n\nb1a5ca68468eb1587168972c9d15928e98ba92b0\nEnable gapicv2 for v1/osconfig\n\nCommitter: @miraleung\nPiperOrigin-RevId: 305351235\n\nc803327f9b1dd2583b070645b5b86e5e7ead3161\nEnable gapicv2 for osconfig/agentendpoint/v1beta\n\nCommitter: @miraleung\nPiperOrigin-RevId: 305350472\n\n99dddf1de598f95a71d3536f5c170d84f0c0ef87\nchore: enable gapicv2 for build/v1 API\n\nCommitter: @miraleung\nPiperOrigin-RevId: 305349884\n\nbf85ee3ed64951c14b19ef8577689f43ee6f0f41\nchore: enable gapicv2 for cloudbuild/v1 API\n\nCommitter: @miraleung\nPiperOrigin-RevId: 305349873\n\nf497c7aa912df121e11772767e667fdbc10a63d9\nchore: enable gapic v2 and proto annotation for Web Security Scanner v1alpha API.\n\ncommitter: @noahdietz\nPiperOrigin-RevId: 305349342\n\n0669a37c66d76bd413343da69420bb75c49062e7\nchore: rename unused GAPIC v1 configs for IAM to legacy\n\ncommitter: @noahdietz\nPiperOrigin-RevId: 305340308\n\naf7da29c24814a1c873c22f477e9dd8dd5a17b0b\nchore: set Ruby namespace in proto options\n\nPiperOrigin-RevId: 305330079\n\n3f767aa32b4b3313027d05b503aaba63e0c432a3\ndocs: Update an out-of-date external link.\n\nPiperOrigin-RevId: 305329485\n\n9ede34d093b9d786a974448fc7a3a17948c203e2\nchore: set Ruby namespace in proto options\n\nPiperOrigin-RevId: 305327985\n\n27daba50281357b676e1ba882422ebeab4ce4f92\nchore: set Ruby namespace in proto options\n\nPiperOrigin-RevId: 305327500\n\n82de0f6f04649651958b96fbc5b0b39dd4dbbd01\nFix: Add missing resource name definition (from the Compute API).\n\nPiperOrigin-RevId: 305324763\n\n744591190e828440f72745aef217f883afd1fd71\ndocs: change relative URLs to absolute URLs to fix broken links.\n\nPiperOrigin-RevId: 305323909\n\n1247c135ceaedfe04261d27a64aaecf78ffbae74\nchore: enable gapicv2 for videointelligence/v1beta2 API\n\nCommitter: @miraleung\nPiperOrigin-RevId: 305321976\n\n633c8b13227b9e3810749964d580e5be504db488\nchore: enable gapicv2 for videointelligence/v1p1beta1 API\n\nCommitter: @miraleung\nPiperOrigin-RevId: 305320877\n\n29aac60f121dc43382b37ff92f2dbb692d94143a\ndocs: fix broken link to policy reference documentation.\n\nPiperOrigin-RevId: 305319540\n\n54ddbbf14c489b8a2f0731aa39408c016f5a8387\nbazel: update gapic-generator-go to v0.13.0\n\nChanges include:\n* add clientHook feature\n\nPiperOrigin-RevId: 305289945\n\n823facb4ca6a4b36b817ce955a790dcb40cf808f\nchore: enable gapicv2 for videointelligence/v1p3beta1\n\nCommitter: @miraleung\nPiperOrigin-RevId: 305155214\n\n6b9c969d42bcb0f8206675bd868ed7d1ddcdaef9\nAdd API for bigqueryreservation v1.\n\nPiperOrigin-RevId: 305151484\n\n514f7d27811832a9f58b83d6f6305d894b097cf6\nchore: enable gapicv2 for phishingprotection/v1beta1 API\n\nCommitter: @miraleung\nPiperOrigin-RevId: 305126983\n\nff74d47d47280e6bbcbad1a7c82b1e0959c472ec\nfix: PHP-related fixes in BUILD.bazel and service.yamls\n\nThis PR also adds the rules for all 7 langauges in OsLogin and Kms BUILD.bazel files. Those build files were missing rules for 5 langagues, including PHP.\n\nThis PR is the prerequisite for migrating PHP synth.py scripts from artman to bazel.\n\nThe fixes in service.yaml fix regression made during proto annotation migration. This became visible only during PHP generation, because only PHP depends on the affected sections of the service.yaml config.\n\nPiperOrigin-RevId: 305108224\n\nfdbc7b1f63969307c71143a0c24fdfd02e739df6\nEnable gapicv2 for osconfig/agentendpoint/v1\n\nCommitter: @miraleung\nPiperOrigin-RevId: 305086443\n\n1490d30e1ae339570dd7826ba625a603ede91a08\nEnable gapicv2 for osconfig/v1beta\n\nCommitter: @miraleung\nPiperOrigin-RevId: 305069755\n\n7bf824e82e5c3549642b150dc4a9579602000f34\nEnable gapicv2 for iam/credentials/v1\n\nCommitter: @miraleung\nPiperOrigin-RevId: 305065283\n\n9ff6fd3b22f99167827e89aae7778408b5e82425\nUpdates Dataproc v1 API:\n- Adds Dataproc Jobs.SubmitJobAsOperation RPC\n- Adds SparkR and Presto job types to WorkflowTemplates\n- Adds new Optional Components\n- Clarifies usage of some APIs\n\nPiperOrigin-RevId: 305053617\n\ncad0f5137a70d0d14a8d9acbfcee98e4cd3e9662\nUpdates to Dataproc v1beta2 API:\n- Adds SparkR and Presto job types to WorkflowTemplates\n- Adds new Optional Components\n- Clarifies usage of some APIs\n\nPiperOrigin-RevId: 305053062\n\na005f045a301535eeb4c4b3fa7bb94eec9d22a8b\nAdd support for Cloud EKM to the Cloud KMS service and resource protos.\n\nPiperOrigin-RevId: 305026790\n\n5077b1e4674afdbbf11dac3f5f43d36285ba53ff\nchore: set Ruby namespace in proto options\n\nPiperOrigin-RevId: 304836531\n\nd6cb4997910eda04c0c66c0f2fd043eeaa0f660d\nchore: enable gapic v2 and proto annotation for documentai API.\n\ncommitter @summer-ji-eng\n\nPiperOrigin-RevId: 304724866\n\n490bc556608bfa5b1548c9374b06152fa33d657e\nEnable gapicv2 for devtools/remoteworkers/v1test2\n\nCommitter: @miraleung\nPiperOrigin-RevId: 304718691\n\n9f78ce31a5bd7f4a63e3cf0ddf28221557adb7ed\nEnable gapicv2 for managedidentities/v1beta1\n\nCommitter: @miraleung\nPiperOrigin-RevId: 304718676\n\n6e17d259b8e320bc51aa240cefef05ec753e2b83\ndocs: treat a dummy example URL as a string literal instead of a link\n\nPiperOrigin-RevId: 304716376\n\na8d76f99d3073aaccabdcc122c798a63e812c4fe\ndocs: change relative URLs to absolute URLs to fix broken links.\n\nPiperOrigin-RevId: 304702368\n\n65c749bc6a1d240416a0e6979381b67f97aff907\ndocs: fix formatting of some regexes and string literals.\n\nPiperOrigin-RevId: 304701150\n\n9119eefcd2b5ce845a680fa4ec4093ed733498f0\nchore: set Ruby namespace in proto options\n\nPiperOrigin-RevId: 304698702\n\n62a2a7cc33d3535638d220df238823eefcca930d\nchore: set Ruby namespace in proto options\n\nPiperOrigin-RevId: 304696461\n\n23848c8f64a5e81a239d6133378468185f1756dc\nchore: set Ruby namespace in proto options\n\nPiperOrigin-RevId: 304696192\n\n9514fa9e390a4c0715972c5b510cf4c10ad049a1\ndocs: change relative URLs to absolute URLs to fix broken links.\n\nPiperOrigin-RevId: 304695334\n\n0f7b1509a9a452808c3d07fe90fedfcea763d7d5\nfix: change config_schema_version to 2.0.0 for containeranalysis v1 gapic config.\n\ncommitter: @hzyi-google\nPiperOrigin-RevId: 304672648\n\n3d52f3c126fbfc31f067a7f54737b7f0dfbce163\nDialogflow weekly v2 library update:\n- Change `parent` field's resource_reference to specify child_type instead of type per client library generation requirement;\n- Change Session with its child resource pattern to support both projects/{project}/agent/sessions/{session} and projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session};\n- Fix `method_signature`\n- Regular documentation update\n\nImportant updates are also posted at:\nhttps://cloud.google.com/dialogflow/docs/release-notes\n\nPiperOrigin-RevId: 304635286\n\n4a6a01ce0ead505c245d11a2ce156de34800c58f\ndocs: change a relative URL to an absolute URL to fix broken links.\n\nPiperOrigin-RevId: 304633630\n\n1b969c28a6579265e89cd35e6c2ecacc89970e2d\nchore: set Ruby namespace in proto options\n\nPiperOrigin-RevId: 304620317\n\n5378173a889f9c7d83e36e52d38a6267190de692\nAdd v1beta2 SubmitJobAsOperation RPC to Dataproc.\n\nPiperOrigin-RevId: 304594381\n\n3d5d228a58bdf875e6147b228db3159010c735ee\nEnable visibility on the GetSnapshot and GetTopicSnapshots methods\n\nPiperOrigin-RevId: 304500143\n\n1346f5c11a0376bc82c5c03259b304de52671518\nRefresh public client library for Cloud Monitoring.\nIncrease default ListTimeSeries deadline to 90s.\n\nPiperOrigin-RevId: 304467075\n\n4a6cfccb4a32cb28db7366295d90078c6af3112f\ndocs: Fix link in monitoring summary description.\n\nPiperOrigin-RevId: 304438717\n\n6e2ea9a4b63a264090f1bd4b5b25766a3f634f3a\nfix: add interface name overrides back to logging gapic config.\n\ncommitter: @hzyi-google\nPiperOrigin-RevId: 304438432\n\n01f3ccbaa66cf3ae4e3b9fd140b1ecfbe54a3ed0\nFix: Add package/namespace options for C#, Ruby and PHP in remaining protos.\n\nPiperOrigin-RevId: 304416658\n\nb89abbf12cd3c086abddcd79adb0a653349f960a\nchore(google/maps): Rename nox.py to noxfile.py\n\nupstream wip fix here: https://github.com/googleapis/gapic-generator/pull/3156\n\nPiperOrigin-RevId: 304411146\n\nbbf26d7f11fae7789b13959bf100983c496c9807\nSynchronize new proto/yaml changes.\n\nPiperOrigin-RevId: 304409906\n\n75047719f704d61f405cac6d7439637ab36c1232\nfix Dataproc: add missing `REQUIRED` annotation.\n\nPiperOrigin-RevId: 304305096\n\n7e1b880fd5d477176cf9b0bb9b137b9bea56e787\nAdd Ruby/PHP namespace options\n\nPiperOrigin-RevId: 304288402\n\naba342359b6743353195ca53f944fe71e6fb6cd4\nchore: add java assembly target for accesscontextmanager BUILD.bazel\n\nPiperOrigin-RevId: 304207684\n\ndc65f39f33cb139b3a2244199a3e722a4d94b679\nFor Secret Manager v1 and v1beta1, noted Secret ID character limitations.\n\nPiperOrigin-RevId: 304035052\n\n2ee8c4d06db823c29a127709e66c35e38b6e98ab\nchore(deps): Update gax-java dependency\nThis is to integrate java11 incompatibility fix\n\nPiperOrigin-RevId: 304032057\n\nb5c94cec71ea9b840dc0110a0275323313ecc85a\nchore: add java assembly target for orgpolicy BUILD.bazel\n\nPiperOrigin-RevId: 304021854\n\n690f4d6344197fde775230cec165a9db3b3929c7\nchore: use the latest protoc-java-resource-name-plugin in third_party/googleapis WORKSPACE.\n- trace up only one level when calculating parent types with singleton resource names\n\nPiperOrigin-RevId: 304007414\n\n87144228bd9920b824996355f27891310fad5a32\nEnable gapic v2 for DLP.\n\nCommitter: @hzyi-google\nPiperOrigin-RevId: 303999064\n\n17cfae00f2bb51cb1683f017da7e295a1b0f01a8\nAdd a new AuthorizationType for Data Source Definition.\n\nPiperOrigin-RevId: 303992863\n\n6da3d64919c006ef40cad2026f1e39084253afe2\nfix(google/maps): Change importpath to developers.google.com/maps/go.\n\nPiperOrigin-RevId: 303976942\n\n2983dccde54f0ce31793e1e628379616c468aea0\nbuild(google/maps): only modify root build.gradle with ext plugin\n\nPiperOrigin-RevId: 303975876\n\n00f0a285f2716ce57e98afe500e450b17b556ff8\nfix: Integerate gapic-generator java_gapic rules Java11 fix\n\nPiperOrigin-RevId: 303899179\n\na62857d26bd2ae15aec13a9244989e4104195b63\nfix: add proto_package to the artman config of dataproc v1beta2 to make artman smoketest pass.\n\nPiperOrigin-RevId: 303853989\n\nf260ba248df934fd4ddc22950fb529a59d79e0b5\nchore: use the latest gapic-generator in googleapis WORKSPACE.\n- PHP multi-pattern resource name support.\n- Trace up only one level when calculating parent types with singleton resource names\n\nPiperOrigin-RevId: 303836059\n\n89c7d455fffa5d8a7e73c2f4da43a74605ed72a6\nfeat: Add client library options to OsConfigService v1 patch APIs.\n\nPiperOrigin-RevId: 303831150\n\na45b0a2a8f6f497547ab531a4da978c76441d076\ndataproc: add back non-default retry parameters.\ncommitter: @hzyi-google\n\nPiperOrigin-RevId: 303830177\n\nad895ce95f1f6d2261fbbc3e8897958294e4f017\nenable gapic v2 for containeranalysis.\ncommitter: @hzyi-google\n\nPiperOrigin-RevId: 303821111\n\nbaf83e521834b67397839bcbe2d7864b49e38787\nAdding \"resource_reference\" annotations to services.\n\nPiperOrigin-RevId: 303791704\n\n7be2811ad17013a5ea24cd75dfd9e399dd6e18fe\nfix: Update gapic-generator version to pickup discogapic fixes\n\nPiperOrigin-RevId: 303545940\n\nb655808b3481a92f478ae2f828a6ce8220e40f32\ncloudasset: add org policy and access context manager protos to client libraries.\n\nPiperOrigin-RevId: 303527638\n\nd8c5da9a9471659b51d5862dd2ea7ad3c4bc49ef\nPopulate BAZEL.build files for AccessContextManager.\n\nPiperOrigin-RevId: 303526825\n\ncf9db7161cb9d4dbef06cd8bf5354ec485e51e2d\nPopulate BAZEL.build files for OrgPolicy.\n\nPiperOrigin-RevId: 303526702\n\n558b800ed594acc02555cc560fbb39c0e42bc438\nchore: turn on gapic v2 for Dataproc API.\nfix:\n- add missing method signatures\n- remove resource_reference not on a string field\n- adjust resource name pattern orders\n\nPiperOrigin-RevId: 303431167\n\n8eb444cf5ff63f68d826acbb37b2ac3da58655fb\nAdd logging protos for Recommender v1beta1.\n\nPiperOrigin-RevId: 303426030\n\n" + "sha": "89e89786896d256c70f43e68a975470c4f4f220e", + "internalRef": "311239362" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "7f8e62aa3edd225f76347a16f92e400661fdfb52" + "sha": "84c4156c49be9dcabacc8fd7b0585b6fd789ae47" } } ], diff --git a/tests/unit/gapic/v1beta1/test_data_catalog_client_v1beta1.py b/tests/unit/gapic/v1beta1/test_data_catalog_client_v1beta1.py index 7077f28c..fd900fd1 100644 --- a/tests/unit/gapic/v1beta1/test_data_catalog_client_v1beta1.py +++ b/tests/unit/gapic/v1beta1/test_data_catalog_client_v1beta1.py @@ -112,17 +112,85 @@ def test_search_catalog_exception(self): with pytest.raises(CustomException): list(paged_list_response) - def test_create_entry_group(self): + def test_delete_entry_group(self): + channel = ChannelStub() + patch = mock.patch("google.api_core.grpc_helpers.create_channel") + with patch as create_channel: + create_channel.return_value = channel + client = datacatalog_v1beta1.DataCatalogClient() + + # Setup Request + name = client.entry_group_path("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]") + + client.delete_entry_group(name) + + assert len(channel.requests) == 1 + expected_request = datacatalog_pb2.DeleteEntryGroupRequest(name=name) + actual_request = channel.requests[0][1] + assert expected_request == actual_request + + def test_delete_entry_group_exception(self): + # Mock the API response + channel = ChannelStub(responses=[CustomException()]) + patch = mock.patch("google.api_core.grpc_helpers.create_channel") + with patch as create_channel: + create_channel.return_value = channel + client = datacatalog_v1beta1.DataCatalogClient() + + # Setup request + name = client.entry_group_path("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]") + + with pytest.raises(CustomException): + client.delete_entry_group(name) + + def test_delete_entry(self): + channel = ChannelStub() + patch = mock.patch("google.api_core.grpc_helpers.create_channel") + with patch as create_channel: + create_channel.return_value = channel + client = datacatalog_v1beta1.DataCatalogClient() + + # Setup Request + name = client.entry_path("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]", "[ENTRY]") + + client.delete_entry(name) + + assert len(channel.requests) == 1 + expected_request = datacatalog_pb2.DeleteEntryRequest(name=name) + actual_request = channel.requests[0][1] + assert expected_request == actual_request + + def test_delete_entry_exception(self): + # Mock the API response + channel = ChannelStub(responses=[CustomException()]) + patch = mock.patch("google.api_core.grpc_helpers.create_channel") + with patch as create_channel: + create_channel.return_value = channel + client = datacatalog_v1beta1.DataCatalogClient() + + # Setup request + name = client.entry_path("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]", "[ENTRY]") + + with pytest.raises(CustomException): + client.delete_entry(name) + + def test_get_entry(self): # Setup Expected Response - name = "name3373707" + name_2 = "name2-1052831874" + linked_resource = "linkedResource1544625012" + user_specified_type = "userSpecifiedType-940364963" + user_specified_system = "userSpecifiedSystem-1776119406" display_name = "displayName1615086568" description = "description-1724546052" expected_response = { - "name": name, + "name": name_2, + "linked_resource": linked_resource, + "user_specified_type": user_specified_type, + "user_specified_system": user_specified_system, "display_name": display_name, "description": description, } - expected_response = datacatalog_pb2.EntryGroup(**expected_response) + expected_response = datacatalog_pb2.Entry(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) @@ -132,21 +200,17 @@ def test_create_entry_group(self): client = datacatalog_v1beta1.DataCatalogClient() # Setup Request - parent = client.location_path("[PROJECT]", "[LOCATION]") - entry_group_id = "entryGroupId-43122680" - entry_group = {} + name = client.entry_path("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]", "[ENTRY]") - response = client.create_entry_group(parent, entry_group_id, entry_group) + response = client.get_entry(name) assert expected_response == response assert len(channel.requests) == 1 - expected_request = datacatalog_pb2.CreateEntryGroupRequest( - parent=parent, entry_group_id=entry_group_id, entry_group=entry_group - ) + expected_request = datacatalog_pb2.GetEntryRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request - def test_create_entry_group_exception(self): + def test_get_entry_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) patch = mock.patch("google.api_core.grpc_helpers.create_channel") @@ -155,24 +219,28 @@ def test_create_entry_group_exception(self): client = datacatalog_v1beta1.DataCatalogClient() # Setup request - parent = client.location_path("[PROJECT]", "[LOCATION]") - entry_group_id = "entryGroupId-43122680" - entry_group = {} + name = client.entry_path("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]", "[ENTRY]") with pytest.raises(CustomException): - client.create_entry_group(parent, entry_group_id, entry_group) + client.get_entry(name) - def test_get_entry_group(self): + def test_lookup_entry(self): # Setup Expected Response - name_2 = "name2-1052831874" + name = "name3373707" + linked_resource = "linkedResource1544625012" + user_specified_type = "userSpecifiedType-940364963" + user_specified_system = "userSpecifiedSystem-1776119406" display_name = "displayName1615086568" description = "description-1724546052" expected_response = { - "name": name_2, + "name": name, + "linked_resource": linked_resource, + "user_specified_type": user_specified_type, + "user_specified_system": user_specified_system, "display_name": display_name, "description": description, } - expected_response = datacatalog_pb2.EntryGroup(**expected_response) + expected_response = datacatalog_pb2.Entry(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) @@ -181,18 +249,46 @@ def test_get_entry_group(self): create_channel.return_value = channel client = datacatalog_v1beta1.DataCatalogClient() + response = client.lookup_entry() + assert expected_response == response + + assert len(channel.requests) == 1 + expected_request = datacatalog_pb2.LookupEntryRequest() + actual_request = channel.requests[0][1] + assert expected_request == actual_request + + def test_lookup_entry_exception(self): + # Mock the API response + channel = ChannelStub(responses=[CustomException()]) + patch = mock.patch("google.api_core.grpc_helpers.create_channel") + with patch as create_channel: + create_channel.return_value = channel + client = datacatalog_v1beta1.DataCatalogClient() + + with pytest.raises(CustomException): + client.lookup_entry() + + def test_delete_tag_template(self): + channel = ChannelStub() + patch = mock.patch("google.api_core.grpc_helpers.create_channel") + with patch as create_channel: + create_channel.return_value = channel + client = datacatalog_v1beta1.DataCatalogClient() + # Setup Request - name = client.entry_group_path("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]") + name = client.tag_template_path("[PROJECT]", "[LOCATION]", "[TAG_TEMPLATE]") + force = False - response = client.get_entry_group(name) - assert expected_response == response + client.delete_tag_template(name, force) assert len(channel.requests) == 1 - expected_request = datacatalog_pb2.GetEntryGroupRequest(name=name) + expected_request = datacatalog_pb2.DeleteTagTemplateRequest( + name=name, force=force + ) actual_request = channel.requests[0][1] assert expected_request == actual_request - def test_get_entry_group_exception(self): + def test_delete_tag_template_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) patch = mock.patch("google.api_core.grpc_helpers.create_channel") @@ -201,12 +297,13 @@ def test_get_entry_group_exception(self): client = datacatalog_v1beta1.DataCatalogClient() # Setup request - name = client.entry_group_path("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]") + name = client.tag_template_path("[PROJECT]", "[LOCATION]", "[TAG_TEMPLATE]") + force = False with pytest.raises(CustomException): - client.get_entry_group(name) + client.delete_tag_template(name, force) - def test_delete_entry_group(self): + def test_delete_tag_template_field(self): channel = ChannelStub() patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: @@ -214,16 +311,21 @@ def test_delete_entry_group(self): client = datacatalog_v1beta1.DataCatalogClient() # Setup Request - name = client.entry_group_path("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]") + name = client.tag_template_field_path( + "[PROJECT]", "[LOCATION]", "[TAG_TEMPLATE]", "[FIELD]" + ) + force = False - client.delete_entry_group(name) + client.delete_tag_template_field(name, force) assert len(channel.requests) == 1 - expected_request = datacatalog_pb2.DeleteEntryGroupRequest(name=name) + expected_request = datacatalog_pb2.DeleteTagTemplateFieldRequest( + name=name, force=force + ) actual_request = channel.requests[0][1] assert expected_request == actual_request - def test_delete_entry_group_exception(self): + def test_delete_tag_template_field_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) patch = mock.patch("google.api_core.grpc_helpers.create_channel") @@ -232,28 +334,95 @@ def test_delete_entry_group_exception(self): client = datacatalog_v1beta1.DataCatalogClient() # Setup request - name = client.entry_group_path("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]") + name = client.tag_template_field_path( + "[PROJECT]", "[LOCATION]", "[TAG_TEMPLATE]", "[FIELD]" + ) + force = False with pytest.raises(CustomException): - client.delete_entry_group(name) + client.delete_tag_template_field(name, force) - def test_create_entry(self): + def test_delete_tag(self): + channel = ChannelStub() + patch = mock.patch("google.api_core.grpc_helpers.create_channel") + with patch as create_channel: + create_channel.return_value = channel + client = datacatalog_v1beta1.DataCatalogClient() + + # Setup Request + name = client.entry_path("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]", "[ENTRY]") + + client.delete_tag(name) + + assert len(channel.requests) == 1 + expected_request = datacatalog_pb2.DeleteTagRequest(name=name) + actual_request = channel.requests[0][1] + assert expected_request == actual_request + + def test_delete_tag_exception(self): + # Mock the API response + channel = ChannelStub(responses=[CustomException()]) + patch = mock.patch("google.api_core.grpc_helpers.create_channel") + with patch as create_channel: + create_channel.return_value = channel + client = datacatalog_v1beta1.DataCatalogClient() + + # Setup request + name = client.entry_path("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]", "[ENTRY]") + + with pytest.raises(CustomException): + client.delete_tag(name) + + def test_get_iam_policy(self): + # Setup Expected Response + version = 351608024 + etag = b"21" + expected_response = {"version": version, "etag": etag} + expected_response = policy_pb2.Policy(**expected_response) + + # Mock the API response + channel = ChannelStub(responses=[expected_response]) + patch = mock.patch("google.api_core.grpc_helpers.create_channel") + with patch as create_channel: + create_channel.return_value = channel + client = datacatalog_v1beta1.DataCatalogClient() + + # Setup Request + resource = "resource-341064690" + + response = client.get_iam_policy(resource) + assert expected_response == response + + assert len(channel.requests) == 1 + expected_request = iam_policy_pb2.GetIamPolicyRequest(resource=resource) + actual_request = channel.requests[0][1] + assert expected_request == actual_request + + def test_get_iam_policy_exception(self): + # Mock the API response + channel = ChannelStub(responses=[CustomException()]) + patch = mock.patch("google.api_core.grpc_helpers.create_channel") + with patch as create_channel: + create_channel.return_value = channel + client = datacatalog_v1beta1.DataCatalogClient() + + # Setup request + resource = "resource-341064690" + + with pytest.raises(CustomException): + client.get_iam_policy(resource) + + def test_create_entry_group(self): # Setup Expected Response name = "name3373707" - linked_resource = "linkedResource1544625012" - user_specified_type = "userSpecifiedType-940364963" - user_specified_system = "userSpecifiedSystem-1776119406" display_name = "displayName1615086568" description = "description-1724546052" expected_response = { "name": name, - "linked_resource": linked_resource, - "user_specified_type": user_specified_type, - "user_specified_system": user_specified_system, "display_name": display_name, "description": description, } - expected_response = datacatalog_pb2.Entry(**expected_response) + expected_response = datacatalog_pb2.EntryGroup(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) @@ -263,21 +432,20 @@ def test_create_entry(self): client = datacatalog_v1beta1.DataCatalogClient() # Setup Request - parent = client.entry_group_path("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]") - entry_id = "entryId-2093663224" - entry = {} + parent = client.location_path("[PROJECT]", "[LOCATION]") + entry_group_id = "entryGroupId-43122680" - response = client.create_entry(parent, entry_id, entry) + response = client.create_entry_group(parent, entry_group_id) assert expected_response == response assert len(channel.requests) == 1 - expected_request = datacatalog_pb2.CreateEntryRequest( - parent=parent, entry_id=entry_id, entry=entry + expected_request = datacatalog_pb2.CreateEntryGroupRequest( + parent=parent, entry_group_id=entry_group_id ) actual_request = channel.requests[0][1] assert expected_request == actual_request - def test_create_entry_exception(self): + def test_create_entry_group_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) patch = mock.patch("google.api_core.grpc_helpers.create_channel") @@ -286,30 +454,23 @@ def test_create_entry_exception(self): client = datacatalog_v1beta1.DataCatalogClient() # Setup request - parent = client.entry_group_path("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]") - entry_id = "entryId-2093663224" - entry = {} + parent = client.location_path("[PROJECT]", "[LOCATION]") + entry_group_id = "entryGroupId-43122680" with pytest.raises(CustomException): - client.create_entry(parent, entry_id, entry) + client.create_entry_group(parent, entry_group_id) - def test_update_entry(self): + def test_update_entry_group(self): # Setup Expected Response name = "name3373707" - linked_resource = "linkedResource1544625012" - user_specified_type = "userSpecifiedType-940364963" - user_specified_system = "userSpecifiedSystem-1776119406" display_name = "displayName1615086568" description = "description-1724546052" expected_response = { "name": name, - "linked_resource": linked_resource, - "user_specified_type": user_specified_type, - "user_specified_system": user_specified_system, "display_name": display_name, "description": description, } - expected_response = datacatalog_pb2.Entry(**expected_response) + expected_response = datacatalog_pb2.EntryGroup(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) @@ -319,17 +480,19 @@ def test_update_entry(self): client = datacatalog_v1beta1.DataCatalogClient() # Setup Request - entry = {} + entry_group = {} - response = client.update_entry(entry) + response = client.update_entry_group(entry_group) assert expected_response == response assert len(channel.requests) == 1 - expected_request = datacatalog_pb2.UpdateEntryRequest(entry=entry) + expected_request = datacatalog_pb2.UpdateEntryGroupRequest( + entry_group=entry_group + ) actual_request = channel.requests[0][1] assert expected_request == actual_request - def test_update_entry_exception(self): + def test_update_entry_group_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) patch = mock.patch("google.api_core.grpc_helpers.create_channel") @@ -338,29 +501,42 @@ def test_update_entry_exception(self): client = datacatalog_v1beta1.DataCatalogClient() # Setup request - entry = {} + entry_group = {} with pytest.raises(CustomException): - client.update_entry(entry) + client.update_entry_group(entry_group) - def test_delete_entry(self): - channel = ChannelStub() + def test_get_entry_group(self): + # Setup Expected Response + name_2 = "name2-1052831874" + display_name = "displayName1615086568" + description = "description-1724546052" + expected_response = { + "name": name_2, + "display_name": display_name, + "description": description, + } + expected_response = datacatalog_pb2.EntryGroup(**expected_response) + + # Mock the API response + channel = ChannelStub(responses=[expected_response]) patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = datacatalog_v1beta1.DataCatalogClient() # Setup Request - name = client.entry_path("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]", "[ENTRY]") + name = client.entry_group_path("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]") - client.delete_entry(name) + response = client.get_entry_group(name) + assert expected_response == response assert len(channel.requests) == 1 - expected_request = datacatalog_pb2.DeleteEntryRequest(name=name) + expected_request = datacatalog_pb2.GetEntryGroupRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request - def test_delete_entry_exception(self): + def test_get_entry_group_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) patch = mock.patch("google.api_core.grpc_helpers.create_channel") @@ -369,28 +545,21 @@ def test_delete_entry_exception(self): client = datacatalog_v1beta1.DataCatalogClient() # Setup request - name = client.entry_path("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]", "[ENTRY]") + name = client.entry_group_path("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]") with pytest.raises(CustomException): - client.delete_entry(name) + client.get_entry_group(name) - def test_get_entry(self): + def test_list_entry_groups(self): # Setup Expected Response - name_2 = "name2-1052831874" - linked_resource = "linkedResource1544625012" - user_specified_type = "userSpecifiedType-940364963" - user_specified_system = "userSpecifiedSystem-1776119406" - display_name = "displayName1615086568" - description = "description-1724546052" + next_page_token = "" + entry_groups_element = {} + entry_groups = [entry_groups_element] expected_response = { - "name": name_2, - "linked_resource": linked_resource, - "user_specified_type": user_specified_type, - "user_specified_system": user_specified_system, - "display_name": display_name, - "description": description, + "next_page_token": next_page_token, + "entry_groups": entry_groups, } - expected_response = datacatalog_pb2.Entry(**expected_response) + expected_response = datacatalog_pb2.ListEntryGroupsResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) @@ -400,18 +569,20 @@ def test_get_entry(self): client = datacatalog_v1beta1.DataCatalogClient() # Setup Request - name = client.entry_path("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]", "[ENTRY]") + parent = client.entry_group_path("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]") - response = client.get_entry(name) - assert expected_response == response + paged_list_response = client.list_entry_groups(parent) + resources = list(paged_list_response) + assert len(resources) == 1 + + assert expected_response.entry_groups[0] == resources[0] assert len(channel.requests) == 1 - expected_request = datacatalog_pb2.GetEntryRequest(name=name) + expected_request = datacatalog_pb2.ListEntryGroupsRequest(parent=parent) actual_request = channel.requests[0][1] assert expected_request == actual_request - def test_get_entry_exception(self): - # Mock the API response + def test_list_entry_groups_exception(self): channel = ChannelStub(responses=[CustomException()]) patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: @@ -419,12 +590,13 @@ def test_get_entry_exception(self): client = datacatalog_v1beta1.DataCatalogClient() # Setup request - name = client.entry_path("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]", "[ENTRY]") + parent = client.entry_group_path("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]") + paged_list_response = client.list_entry_groups(parent) with pytest.raises(CustomException): - client.get_entry(name) + list(paged_list_response) - def test_lookup_entry(self): + def test_create_entry(self): # Setup Expected Response name = "name3373707" linked_resource = "linkedResource1544625012" @@ -449,15 +621,22 @@ def test_lookup_entry(self): create_channel.return_value = channel client = datacatalog_v1beta1.DataCatalogClient() - response = client.lookup_entry() + # Setup Request + parent = client.entry_group_path("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]") + entry_id = "entryId-2093663224" + entry = {} + + response = client.create_entry(parent, entry_id, entry) assert expected_response == response assert len(channel.requests) == 1 - expected_request = datacatalog_pb2.LookupEntryRequest() + expected_request = datacatalog_pb2.CreateEntryRequest( + parent=parent, entry_id=entry_id, entry=entry + ) actual_request = channel.requests[0][1] assert expected_request == actual_request - def test_lookup_entry_exception(self): + def test_create_entry_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) patch = mock.patch("google.api_core.grpc_helpers.create_channel") @@ -465,14 +644,31 @@ def test_lookup_entry_exception(self): create_channel.return_value = channel client = datacatalog_v1beta1.DataCatalogClient() + # Setup request + parent = client.entry_group_path("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]") + entry_id = "entryId-2093663224" + entry = {} + with pytest.raises(CustomException): - client.lookup_entry() + client.create_entry(parent, entry_id, entry) - def test_list_entry_groups(self): + def test_update_entry(self): # Setup Expected Response - next_page_token = "nextPageToken-1530815211" - expected_response = {"next_page_token": next_page_token} - expected_response = datacatalog_pb2.ListEntryGroupsResponse(**expected_response) + name = "name3373707" + linked_resource = "linkedResource1544625012" + user_specified_type = "userSpecifiedType-940364963" + user_specified_system = "userSpecifiedSystem-1776119406" + display_name = "displayName1615086568" + description = "description-1724546052" + expected_response = { + "name": name, + "linked_resource": linked_resource, + "user_specified_type": user_specified_type, + "user_specified_system": user_specified_system, + "display_name": display_name, + "description": description, + } + expected_response = datacatalog_pb2.Entry(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) @@ -482,17 +678,17 @@ def test_list_entry_groups(self): client = datacatalog_v1beta1.DataCatalogClient() # Setup Request - parent = client.location_path("[PROJECT]", "[LOCATION]") + entry = {} - response = client.list_entry_groups(parent) + response = client.update_entry(entry) assert expected_response == response assert len(channel.requests) == 1 - expected_request = datacatalog_pb2.ListEntryGroupsRequest(parent=parent) + expected_request = datacatalog_pb2.UpdateEntryRequest(entry=entry) actual_request = channel.requests[0][1] assert expected_request == actual_request - def test_list_entry_groups_exception(self): + def test_update_entry_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) patch = mock.patch("google.api_core.grpc_helpers.create_channel") @@ -501,15 +697,17 @@ def test_list_entry_groups_exception(self): client = datacatalog_v1beta1.DataCatalogClient() # Setup request - parent = client.location_path("[PROJECT]", "[LOCATION]") + entry = {} with pytest.raises(CustomException): - client.list_entry_groups(parent) + client.update_entry(entry) def test_list_entries(self): # Setup Expected Response - next_page_token = "nextPageToken-1530815211" - expected_response = {"next_page_token": next_page_token} + next_page_token = "" + entries_element = {} + entries = [entries_element] + expected_response = {"next_page_token": next_page_token, "entries": entries} expected_response = datacatalog_pb2.ListEntriesResponse(**expected_response) # Mock the API response @@ -522,8 +720,11 @@ def test_list_entries(self): # Setup Request parent = client.entry_group_path("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]") - response = client.list_entries(parent) - assert expected_response == response + paged_list_response = client.list_entries(parent) + resources = list(paged_list_response) + assert len(resources) == 1 + + assert expected_response.entries[0] == resources[0] assert len(channel.requests) == 1 expected_request = datacatalog_pb2.ListEntriesRequest(parent=parent) @@ -531,7 +732,6 @@ def test_list_entries(self): assert expected_request == actual_request def test_list_entries_exception(self): - # Mock the API response channel = ChannelStub(responses=[CustomException()]) patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: @@ -541,54 +741,9 @@ def test_list_entries_exception(self): # Setup request parent = client.entry_group_path("[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]") + paged_list_response = client.list_entries(parent) with pytest.raises(CustomException): - client.list_entries(parent) - - def test_update_entry_group(self): - # Setup Expected Response - name = "name3373707" - display_name = "displayName1615086568" - description = "description-1724546052" - expected_response = { - "name": name, - "display_name": display_name, - "description": description, - } - expected_response = datacatalog_pb2.EntryGroup(**expected_response) - - # Mock the API response - channel = ChannelStub(responses=[expected_response]) - patch = mock.patch("google.api_core.grpc_helpers.create_channel") - with patch as create_channel: - create_channel.return_value = channel - client = datacatalog_v1beta1.DataCatalogClient() - - # Setup Request - entry_group = {} - - response = client.update_entry_group(entry_group) - assert expected_response == response - - assert len(channel.requests) == 1 - expected_request = datacatalog_pb2.UpdateEntryGroupRequest( - entry_group=entry_group - ) - actual_request = channel.requests[0][1] - assert expected_request == actual_request - - def test_update_entry_group_exception(self): - # Mock the API response - channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch("google.api_core.grpc_helpers.create_channel") - with patch as create_channel: - create_channel.return_value = channel - client = datacatalog_v1beta1.DataCatalogClient() - - # Setup request - entry_group = {} - - with pytest.raises(CustomException): - client.update_entry_group(entry_group) + list(paged_list_response) def test_create_tag_template(self): # Setup Expected Response @@ -715,50 +870,17 @@ def test_update_tag_template_exception(self): with pytest.raises(CustomException): client.update_tag_template(tag_template) - def test_delete_tag_template(self): - channel = ChannelStub() - patch = mock.patch("google.api_core.grpc_helpers.create_channel") - with patch as create_channel: - create_channel.return_value = channel - client = datacatalog_v1beta1.DataCatalogClient() - - # Setup Request - name = client.tag_template_path("[PROJECT]", "[LOCATION]", "[TAG_TEMPLATE]") - force = False - - client.delete_tag_template(name, force) - - assert len(channel.requests) == 1 - expected_request = datacatalog_pb2.DeleteTagTemplateRequest( - name=name, force=force - ) - actual_request = channel.requests[0][1] - assert expected_request == actual_request - - def test_delete_tag_template_exception(self): - # Mock the API response - channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch("google.api_core.grpc_helpers.create_channel") - with patch as create_channel: - create_channel.return_value = channel - client = datacatalog_v1beta1.DataCatalogClient() - - # Setup request - name = client.tag_template_path("[PROJECT]", "[LOCATION]", "[TAG_TEMPLATE]") - force = False - - with pytest.raises(CustomException): - client.delete_tag_template(name, force) - def test_create_tag_template_field(self): # Setup Expected Response name = "name3373707" display_name = "displayName1615086568" is_required = True + order = 106006350 expected_response = { "name": name, "display_name": display_name, "is_required": is_required, + "order": order, } expected_response = tags_pb2.TagTemplateField(**expected_response) @@ -811,10 +933,12 @@ def test_update_tag_template_field(self): name_2 = "name2-1052831874" display_name = "displayName1615086568" is_required = True + order = 106006350 expected_response = { "name": name_2, "display_name": display_name, "is_required": is_required, + "order": order, } expected_response = tags_pb2.TagTemplateField(**expected_response) @@ -826,7 +950,9 @@ def test_update_tag_template_field(self): client = datacatalog_v1beta1.DataCatalogClient() # Setup Request - name = client.field_path("[PROJECT]", "[LOCATION]", "[TAG_TEMPLATE]", "[FIELD]") + name = client.tag_template_field_path( + "[PROJECT]", "[LOCATION]", "[TAG_TEMPLATE]", "[FIELD]" + ) tag_template_field = {} response = client.update_tag_template_field(name, tag_template_field) @@ -848,7 +974,9 @@ def test_update_tag_template_field_exception(self): client = datacatalog_v1beta1.DataCatalogClient() # Setup request - name = client.field_path("[PROJECT]", "[LOCATION]", "[TAG_TEMPLATE]", "[FIELD]") + name = client.tag_template_field_path( + "[PROJECT]", "[LOCATION]", "[TAG_TEMPLATE]", "[FIELD]" + ) tag_template_field = {} with pytest.raises(CustomException): @@ -859,10 +987,12 @@ def test_rename_tag_template_field(self): name_2 = "name2-1052831874" display_name = "displayName1615086568" is_required = True + order = 106006350 expected_response = { "name": name_2, "display_name": display_name, "is_required": is_required, + "order": order, } expected_response = tags_pb2.TagTemplateField(**expected_response) @@ -874,7 +1004,9 @@ def test_rename_tag_template_field(self): client = datacatalog_v1beta1.DataCatalogClient() # Setup Request - name = client.field_path("[PROJECT]", "[LOCATION]", "[TAG_TEMPLATE]", "[FIELD]") + name = client.tag_template_field_path( + "[PROJECT]", "[LOCATION]", "[TAG_TEMPLATE]", "[FIELD]" + ) new_tag_template_field_id = "newTagTemplateFieldId-1668354591" response = client.rename_tag_template_field(name, new_tag_template_field_id) @@ -896,47 +1028,14 @@ def test_rename_tag_template_field_exception(self): client = datacatalog_v1beta1.DataCatalogClient() # Setup request - name = client.field_path("[PROJECT]", "[LOCATION]", "[TAG_TEMPLATE]", "[FIELD]") + name = client.tag_template_field_path( + "[PROJECT]", "[LOCATION]", "[TAG_TEMPLATE]", "[FIELD]" + ) new_tag_template_field_id = "newTagTemplateFieldId-1668354591" with pytest.raises(CustomException): client.rename_tag_template_field(name, new_tag_template_field_id) - def test_delete_tag_template_field(self): - channel = ChannelStub() - patch = mock.patch("google.api_core.grpc_helpers.create_channel") - with patch as create_channel: - create_channel.return_value = channel - client = datacatalog_v1beta1.DataCatalogClient() - - # Setup Request - name = client.field_path("[PROJECT]", "[LOCATION]", "[TAG_TEMPLATE]", "[FIELD]") - force = False - - client.delete_tag_template_field(name, force) - - assert len(channel.requests) == 1 - expected_request = datacatalog_pb2.DeleteTagTemplateFieldRequest( - name=name, force=force - ) - actual_request = channel.requests[0][1] - assert expected_request == actual_request - - def test_delete_tag_template_field_exception(self): - # Mock the API response - channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch("google.api_core.grpc_helpers.create_channel") - with patch as create_channel: - create_channel.return_value = channel - client = datacatalog_v1beta1.DataCatalogClient() - - # Setup request - name = client.field_path("[PROJECT]", "[LOCATION]", "[TAG_TEMPLATE]", "[FIELD]") - force = False - - with pytest.raises(CustomException): - client.delete_tag_template_field(name, force) - def test_create_tag(self): # Setup Expected Response name = "name3373707" @@ -959,8 +1058,8 @@ def test_create_tag(self): client = datacatalog_v1beta1.DataCatalogClient() # Setup Request - parent = client.entry_path( - "[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]", "[ENTRY]" + parent = client.tag_path( + "[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]", "[ENTRY]", "[TAG]" ) tag = {} @@ -981,8 +1080,8 @@ def test_create_tag_exception(self): client = datacatalog_v1beta1.DataCatalogClient() # Setup request - parent = client.entry_path( - "[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]", "[ENTRY]" + parent = client.tag_path( + "[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]", "[ENTRY]", "[TAG]" ) tag = {} @@ -1035,41 +1134,6 @@ def test_update_tag_exception(self): with pytest.raises(CustomException): client.update_tag(tag) - def test_delete_tag(self): - channel = ChannelStub() - patch = mock.patch("google.api_core.grpc_helpers.create_channel") - with patch as create_channel: - create_channel.return_value = channel - client = datacatalog_v1beta1.DataCatalogClient() - - # Setup Request - name = client.tag_path( - "[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]", "[ENTRY]", "[TAG]" - ) - - client.delete_tag(name) - - assert len(channel.requests) == 1 - expected_request = datacatalog_pb2.DeleteTagRequest(name=name) - actual_request = channel.requests[0][1] - assert expected_request == actual_request - - def test_delete_tag_exception(self): - # Mock the API response - channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch("google.api_core.grpc_helpers.create_channel") - with patch as create_channel: - create_channel.return_value = channel - client = datacatalog_v1beta1.DataCatalogClient() - - # Setup request - name = client.tag_path( - "[PROJECT]", "[LOCATION]", "[ENTRY_GROUP]", "[ENTRY]", "[TAG]" - ) - - with pytest.raises(CustomException): - client.delete_tag(name) - def test_list_tags(self): # Setup Expected Response next_page_token = "" @@ -1132,7 +1196,7 @@ def test_set_iam_policy(self): client = datacatalog_v1beta1.DataCatalogClient() # Setup Request - resource = client.tag_template_path("[PROJECT]", "[LOCATION]", "[TAG_TEMPLATE]") + resource = "resource-341064690" policy = {} response = client.set_iam_policy(resource, policy) @@ -1154,51 +1218,12 @@ def test_set_iam_policy_exception(self): client = datacatalog_v1beta1.DataCatalogClient() # Setup request - resource = client.tag_template_path("[PROJECT]", "[LOCATION]", "[TAG_TEMPLATE]") + resource = "resource-341064690" policy = {} with pytest.raises(CustomException): client.set_iam_policy(resource, policy) - def test_get_iam_policy(self): - # Setup Expected Response - version = 351608024 - etag = b"21" - expected_response = {"version": version, "etag": etag} - expected_response = policy_pb2.Policy(**expected_response) - - # Mock the API response - channel = ChannelStub(responses=[expected_response]) - patch = mock.patch("google.api_core.grpc_helpers.create_channel") - with patch as create_channel: - create_channel.return_value = channel - client = datacatalog_v1beta1.DataCatalogClient() - - # Setup Request - resource = client.tag_template_path("[PROJECT]", "[LOCATION]", "[TAG_TEMPLATE]") - - response = client.get_iam_policy(resource) - assert expected_response == response - - assert len(channel.requests) == 1 - expected_request = iam_policy_pb2.GetIamPolicyRequest(resource=resource) - actual_request = channel.requests[0][1] - assert expected_request == actual_request - - def test_get_iam_policy_exception(self): - # Mock the API response - channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch("google.api_core.grpc_helpers.create_channel") - with patch as create_channel: - create_channel.return_value = channel - client = datacatalog_v1beta1.DataCatalogClient() - - # Setup request - resource = client.tag_template_path("[PROJECT]", "[LOCATION]", "[TAG_TEMPLATE]") - - with pytest.raises(CustomException): - client.get_iam_policy(resource) - def test_test_iam_permissions(self): # Setup Expected Response expected_response = {} @@ -1214,7 +1239,7 @@ def test_test_iam_permissions(self): client = datacatalog_v1beta1.DataCatalogClient() # Setup Request - resource = client.tag_template_path("[PROJECT]", "[LOCATION]", "[TAG_TEMPLATE]") + resource = "resource-341064690" permissions = [] response = client.test_iam_permissions(resource, permissions) @@ -1236,7 +1261,7 @@ def test_test_iam_permissions_exception(self): client = datacatalog_v1beta1.DataCatalogClient() # Setup request - resource = client.tag_template_path("[PROJECT]", "[LOCATION]", "[TAG_TEMPLATE]") + resource = "resource-341064690" permissions = [] with pytest.raises(CustomException): diff --git a/tests/unit/gapic/v1beta1/test_policy_tag_manager_client_v1beta1.py b/tests/unit/gapic/v1beta1/test_policy_tag_manager_client_v1beta1.py index 21295004..21a3e5b4 100644 --- a/tests/unit/gapic/v1beta1/test_policy_tag_manager_client_v1beta1.py +++ b/tests/unit/gapic/v1beta1/test_policy_tag_manager_client_v1beta1.py @@ -82,11 +82,14 @@ def test_create_taxonomy(self): create_channel.return_value = channel client = datacatalog_v1beta1.PolicyTagManagerClient() - response = client.create_taxonomy() + # Setup Request + parent = client.location_path("[PROJECT]", "[LOCATION]") + + response = client.create_taxonomy(parent) assert expected_response == response assert len(channel.requests) == 1 - expected_request = policytagmanager_pb2.CreateTaxonomyRequest() + expected_request = policytagmanager_pb2.CreateTaxonomyRequest(parent=parent) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -98,8 +101,11 @@ def test_create_taxonomy_exception(self): create_channel.return_value = channel client = datacatalog_v1beta1.PolicyTagManagerClient() + # Setup request + parent = client.location_path("[PROJECT]", "[LOCATION]") + with pytest.raises(CustomException): - client.create_taxonomy() + client.create_taxonomy(parent) def test_delete_taxonomy(self): channel = ChannelStub() @@ -108,10 +114,13 @@ def test_delete_taxonomy(self): create_channel.return_value = channel client = datacatalog_v1beta1.PolicyTagManagerClient() - client.delete_taxonomy() + # Setup Request + name = client.taxonomy_path("[PROJECT]", "[LOCATION]", "[TAXONOMY]") + + client.delete_taxonomy(name) assert len(channel.requests) == 1 - expected_request = policytagmanager_pb2.DeleteTaxonomyRequest() + expected_request = policytagmanager_pb2.DeleteTaxonomyRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -123,8 +132,11 @@ def test_delete_taxonomy_exception(self): create_channel.return_value = channel client = datacatalog_v1beta1.PolicyTagManagerClient() + # Setup request + name = client.taxonomy_path("[PROJECT]", "[LOCATION]", "[TAXONOMY]") + with pytest.raises(CustomException): - client.delete_taxonomy() + client.delete_taxonomy(name) def test_update_taxonomy(self): # Setup Expected Response @@ -166,8 +178,13 @@ def test_update_taxonomy_exception(self): def test_list_taxonomies(self): # Setup Expected Response - next_page_token = "nextPageToken-1530815211" - expected_response = {"next_page_token": next_page_token} + next_page_token = "" + taxonomies_element = {} + taxonomies = [taxonomies_element] + expected_response = { + "next_page_token": next_page_token, + "taxonomies": taxonomies, + } expected_response = policytagmanager_pb2.ListTaxonomiesResponse( **expected_response ) @@ -179,32 +196,41 @@ def test_list_taxonomies(self): create_channel.return_value = channel client = datacatalog_v1beta1.PolicyTagManagerClient() - response = client.list_taxonomies() - assert expected_response == response + # Setup Request + parent = client.location_path("[PROJECT]", "[LOCATION]") + + paged_list_response = client.list_taxonomies(parent) + resources = list(paged_list_response) + assert len(resources) == 1 + + assert expected_response.taxonomies[0] == resources[0] assert len(channel.requests) == 1 - expected_request = policytagmanager_pb2.ListTaxonomiesRequest() + expected_request = policytagmanager_pb2.ListTaxonomiesRequest(parent=parent) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_taxonomies_exception(self): - # Mock the API response channel = ChannelStub(responses=[CustomException()]) patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = datacatalog_v1beta1.PolicyTagManagerClient() + # Setup request + parent = client.location_path("[PROJECT]", "[LOCATION]") + + paged_list_response = client.list_taxonomies(parent) with pytest.raises(CustomException): - client.list_taxonomies() + list(paged_list_response) def test_get_taxonomy(self): # Setup Expected Response - name = "name3373707" + name_2 = "name2-1052831874" display_name = "displayName1615086568" description = "description-1724546052" expected_response = { - "name": name, + "name": name_2, "display_name": display_name, "description": description, } @@ -217,11 +243,14 @@ def test_get_taxonomy(self): create_channel.return_value = channel client = datacatalog_v1beta1.PolicyTagManagerClient() - response = client.get_taxonomy() + # Setup Request + name = client.taxonomy_path("[PROJECT]", "[LOCATION]", "[TAXONOMY]") + + response = client.get_taxonomy(name) assert expected_response == response assert len(channel.requests) == 1 - expected_request = policytagmanager_pb2.GetTaxonomyRequest() + expected_request = policytagmanager_pb2.GetTaxonomyRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -233,8 +262,11 @@ def test_get_taxonomy_exception(self): create_channel.return_value = channel client = datacatalog_v1beta1.PolicyTagManagerClient() + # Setup request + name = client.taxonomy_path("[PROJECT]", "[LOCATION]", "[TAXONOMY]") + with pytest.raises(CustomException): - client.get_taxonomy() + client.get_taxonomy(name) def test_create_policy_tag(self): # Setup Expected Response @@ -257,11 +289,14 @@ def test_create_policy_tag(self): create_channel.return_value = channel client = datacatalog_v1beta1.PolicyTagManagerClient() - response = client.create_policy_tag() + # Setup Request + parent = client.taxonomy_path("[PROJECT]", "[LOCATION]", "[TAXONOMY]") + + response = client.create_policy_tag(parent) assert expected_response == response assert len(channel.requests) == 1 - expected_request = policytagmanager_pb2.CreatePolicyTagRequest() + expected_request = policytagmanager_pb2.CreatePolicyTagRequest(parent=parent) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -273,8 +308,11 @@ def test_create_policy_tag_exception(self): create_channel.return_value = channel client = datacatalog_v1beta1.PolicyTagManagerClient() + # Setup request + parent = client.taxonomy_path("[PROJECT]", "[LOCATION]", "[TAXONOMY]") + with pytest.raises(CustomException): - client.create_policy_tag() + client.create_policy_tag(parent) def test_delete_policy_tag(self): channel = ChannelStub() @@ -283,10 +321,15 @@ def test_delete_policy_tag(self): create_channel.return_value = channel client = datacatalog_v1beta1.PolicyTagManagerClient() - client.delete_policy_tag() + # Setup Request + name = client.policy_tag_path( + "[PROJECT]", "[LOCATION]", "[TAXONOMY]", "[POLICY_TAG]" + ) + + client.delete_policy_tag(name) assert len(channel.requests) == 1 - expected_request = policytagmanager_pb2.DeletePolicyTagRequest() + expected_request = policytagmanager_pb2.DeletePolicyTagRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -298,8 +341,13 @@ def test_delete_policy_tag_exception(self): create_channel.return_value = channel client = datacatalog_v1beta1.PolicyTagManagerClient() + # Setup request + name = client.policy_tag_path( + "[PROJECT]", "[LOCATION]", "[TAXONOMY]", "[POLICY_TAG]" + ) + with pytest.raises(CustomException): - client.delete_policy_tag() + client.delete_policy_tag(name) def test_update_policy_tag(self): # Setup Expected Response @@ -343,8 +391,13 @@ def test_update_policy_tag_exception(self): def test_list_policy_tags(self): # Setup Expected Response - next_page_token = "nextPageToken-1530815211" - expected_response = {"next_page_token": next_page_token} + next_page_token = "" + policy_tags_element = {} + policy_tags = [policy_tags_element] + expected_response = { + "next_page_token": next_page_token, + "policy_tags": policy_tags, + } expected_response = policytagmanager_pb2.ListPolicyTagsResponse( **expected_response ) @@ -356,33 +409,42 @@ def test_list_policy_tags(self): create_channel.return_value = channel client = datacatalog_v1beta1.PolicyTagManagerClient() - response = client.list_policy_tags() - assert expected_response == response + # Setup Request + parent = client.taxonomy_path("[PROJECT]", "[LOCATION]", "[TAXONOMY]") + + paged_list_response = client.list_policy_tags(parent) + resources = list(paged_list_response) + assert len(resources) == 1 + + assert expected_response.policy_tags[0] == resources[0] assert len(channel.requests) == 1 - expected_request = policytagmanager_pb2.ListPolicyTagsRequest() + expected_request = policytagmanager_pb2.ListPolicyTagsRequest(parent=parent) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_policy_tags_exception(self): - # Mock the API response channel = ChannelStub(responses=[CustomException()]) patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = datacatalog_v1beta1.PolicyTagManagerClient() + # Setup request + parent = client.taxonomy_path("[PROJECT]", "[LOCATION]", "[TAXONOMY]") + + paged_list_response = client.list_policy_tags(parent) with pytest.raises(CustomException): - client.list_policy_tags() + list(paged_list_response) def test_get_policy_tag(self): # Setup Expected Response - name = "name3373707" + name_2 = "name2-1052831874" display_name = "displayName1615086568" description = "description-1724546052" parent_policy_tag = "parentPolicyTag2071382466" expected_response = { - "name": name, + "name": name_2, "display_name": display_name, "description": description, "parent_policy_tag": parent_policy_tag, @@ -396,11 +458,16 @@ def test_get_policy_tag(self): create_channel.return_value = channel client = datacatalog_v1beta1.PolicyTagManagerClient() - response = client.get_policy_tag() + # Setup Request + name = client.policy_tag_path( + "[PROJECT]", "[LOCATION]", "[TAXONOMY]", "[POLICY_TAG]" + ) + + response = client.get_policy_tag(name) assert expected_response == response assert len(channel.requests) == 1 - expected_request = policytagmanager_pb2.GetPolicyTagRequest() + expected_request = policytagmanager_pb2.GetPolicyTagRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -412,8 +479,13 @@ def test_get_policy_tag_exception(self): create_channel.return_value = channel client = datacatalog_v1beta1.PolicyTagManagerClient() + # Setup request + name = client.policy_tag_path( + "[PROJECT]", "[LOCATION]", "[TAXONOMY]", "[POLICY_TAG]" + ) + with pytest.raises(CustomException): - client.get_policy_tag() + client.get_policy_tag(name) def test_get_iam_policy(self): # Setup Expected Response @@ -429,11 +501,14 @@ def test_get_iam_policy(self): create_channel.return_value = channel client = datacatalog_v1beta1.PolicyTagManagerClient() - response = client.get_iam_policy() + # Setup Request + resource = "resource-341064690" + + response = client.get_iam_policy(resource) assert expected_response == response assert len(channel.requests) == 1 - expected_request = iam_policy_pb2.GetIamPolicyRequest() + expected_request = iam_policy_pb2.GetIamPolicyRequest(resource=resource) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -445,8 +520,11 @@ def test_get_iam_policy_exception(self): create_channel.return_value = channel client = datacatalog_v1beta1.PolicyTagManagerClient() + # Setup request + resource = "resource-341064690" + with pytest.raises(CustomException): - client.get_iam_policy() + client.get_iam_policy(resource) def test_set_iam_policy(self): # Setup Expected Response @@ -462,11 +540,17 @@ def test_set_iam_policy(self): create_channel.return_value = channel client = datacatalog_v1beta1.PolicyTagManagerClient() - response = client.set_iam_policy() + # Setup Request + resource = "resource-341064690" + policy = {} + + response = client.set_iam_policy(resource, policy) assert expected_response == response assert len(channel.requests) == 1 - expected_request = iam_policy_pb2.SetIamPolicyRequest() + expected_request = iam_policy_pb2.SetIamPolicyRequest( + resource=resource, policy=policy + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -478,8 +562,12 @@ def test_set_iam_policy_exception(self): create_channel.return_value = channel client = datacatalog_v1beta1.PolicyTagManagerClient() + # Setup request + resource = "resource-341064690" + policy = {} + with pytest.raises(CustomException): - client.set_iam_policy() + client.set_iam_policy(resource, policy) def test_test_iam_permissions(self): # Setup Expected Response @@ -495,11 +583,17 @@ def test_test_iam_permissions(self): create_channel.return_value = channel client = datacatalog_v1beta1.PolicyTagManagerClient() - response = client.test_iam_permissions() + # Setup Request + resource = "resource-341064690" + permissions = [] + + response = client.test_iam_permissions(resource, permissions) assert expected_response == response assert len(channel.requests) == 1 - expected_request = iam_policy_pb2.TestIamPermissionsRequest() + expected_request = iam_policy_pb2.TestIamPermissionsRequest( + resource=resource, permissions=permissions + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -511,5 +605,9 @@ def test_test_iam_permissions_exception(self): create_channel.return_value = channel client = datacatalog_v1beta1.PolicyTagManagerClient() + # Setup request + resource = "resource-341064690" + permissions = [] + with pytest.raises(CustomException): - client.test_iam_permissions() + client.test_iam_permissions(resource, permissions) diff --git a/tests/unit/gapic/v1beta1/test_policy_tag_manager_serialization_client_v1beta1.py b/tests/unit/gapic/v1beta1/test_policy_tag_manager_serialization_client_v1beta1.py index bf15fb6c..fc1f1206 100644 --- a/tests/unit/gapic/v1beta1/test_policy_tag_manager_serialization_client_v1beta1.py +++ b/tests/unit/gapic/v1beta1/test_policy_tag_manager_serialization_client_v1beta1.py @@ -74,11 +74,16 @@ def test_import_taxonomies(self): create_channel.return_value = channel client = datacatalog_v1beta1.PolicyTagManagerSerializationClient() - response = client.import_taxonomies() + # Setup Request + parent = client.location_path("[PROJECT]", "[LOCATION]") + + response = client.import_taxonomies(parent) assert expected_response == response assert len(channel.requests) == 1 - expected_request = policytagmanagerserialization_pb2.ImportTaxonomiesRequest() + expected_request = policytagmanagerserialization_pb2.ImportTaxonomiesRequest( + parent=parent + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -90,8 +95,11 @@ def test_import_taxonomies_exception(self): create_channel.return_value = channel client = datacatalog_v1beta1.PolicyTagManagerSerializationClient() + # Setup request + parent = client.location_path("[PROJECT]", "[LOCATION]") + with pytest.raises(CustomException): - client.import_taxonomies() + client.import_taxonomies(parent) def test_export_taxonomies(self): # Setup Expected Response @@ -107,11 +115,17 @@ def test_export_taxonomies(self): create_channel.return_value = channel client = datacatalog_v1beta1.PolicyTagManagerSerializationClient() - response = client.export_taxonomies() + # Setup Request + parent = client.location_path("[PROJECT]", "[LOCATION]") + taxonomies = [] + + response = client.export_taxonomies(parent, taxonomies) assert expected_response == response assert len(channel.requests) == 1 - expected_request = policytagmanagerserialization_pb2.ExportTaxonomiesRequest() + expected_request = policytagmanagerserialization_pb2.ExportTaxonomiesRequest( + parent=parent, taxonomies=taxonomies + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -123,5 +137,9 @@ def test_export_taxonomies_exception(self): create_channel.return_value = channel client = datacatalog_v1beta1.PolicyTagManagerSerializationClient() + # Setup request + parent = client.location_path("[PROJECT]", "[LOCATION]") + taxonomies = [] + with pytest.raises(CustomException): - client.export_taxonomies() + client.export_taxonomies(parent, taxonomies)