1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186 |
- // Copyright 2020 Google LLC
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- syntax = "proto3";
- package google.cloud.datacatalog.v1beta1;
- import "google/api/annotations.proto";
- import "google/api/client.proto";
- import "google/api/field_behavior.proto";
- import "google/api/resource.proto";
- import "google/cloud/datacatalog/v1beta1/common.proto";
- import "google/cloud/datacatalog/v1beta1/gcs_fileset_spec.proto";
- import "google/cloud/datacatalog/v1beta1/schema.proto";
- import "google/cloud/datacatalog/v1beta1/search.proto";
- import "google/cloud/datacatalog/v1beta1/table_spec.proto";
- import "google/cloud/datacatalog/v1beta1/tags.proto";
- import "google/cloud/datacatalog/v1beta1/timestamps.proto";
- import "google/iam/v1/iam_policy.proto";
- import "google/iam/v1/policy.proto";
- import "google/protobuf/empty.proto";
- import "google/protobuf/field_mask.proto";
- option cc_enable_arenas = true;
- option csharp_namespace = "Google.Cloud.DataCatalog.V1Beta1";
- option go_package = "google.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog";
- option java_multiple_files = true;
- option java_package = "com.google.cloud.datacatalog.v1beta1";
- option php_namespace = "Google\\Cloud\\DataCatalog\\V1beta1";
- option ruby_package = "Google::Cloud::DataCatalog::V1beta1";
- // Data Catalog API service allows clients to discover, understand, and manage
- // their data.
- service DataCatalog {
- option (google.api.default_host) = "datacatalog.googleapis.com";
- option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
- // 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](https://cloud.google.com/data-catalog/docs/how-to/search-reference)
- // for more information.
- rpc SearchCatalog(SearchCatalogRequest) returns (SearchCatalogResponse) {
- option (google.api.http) = {
- post: "/v1beta1/catalog:search"
- body: "*"
- };
- option (google.api.method_signature) = "scope,query";
- }
- // 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).
- rpc CreateEntryGroup(CreateEntryGroupRequest) returns (EntryGroup) {
- option (google.api.http) = {
- post: "/v1beta1/{parent=projects/*/locations/*}/entryGroups"
- body: "entry_group"
- };
- option (google.api.method_signature) = "parent,entry_group_id,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).
- rpc UpdateEntryGroup(UpdateEntryGroupRequest) returns (EntryGroup) {
- option (google.api.http) = {
- patch: "/v1beta1/{entry_group.name=projects/*/locations/*/entryGroups/*}"
- body: "entry_group"
- };
- option (google.api.method_signature) = "entry_group";
- option (google.api.method_signature) = "entry_group,update_mask";
- }
- // Gets an EntryGroup.
- rpc GetEntryGroup(GetEntryGroupRequest) returns (EntryGroup) {
- option (google.api.http) = {
- get: "/v1beta1/{name=projects/*/locations/*/entryGroups/*}"
- };
- option (google.api.method_signature) = "name";
- option (google.api.method_signature) = "name,read_mask";
- }
- // 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).
- rpc DeleteEntryGroup(DeleteEntryGroupRequest) returns (google.protobuf.Empty) {
- option (google.api.http) = {
- delete: "/v1beta1/{name=projects/*/locations/*/entryGroups/*}"
- };
- option (google.api.method_signature) = "name";
- }
- // Lists entry groups.
- rpc ListEntryGroups(ListEntryGroupsRequest) returns (ListEntryGroupsResponse) {
- option (google.api.http) = {
- get: "/v1beta1/{parent=projects/*/locations/*}/entryGroups"
- };
- option (google.api.method_signature) = "parent";
- }
- // 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.
- rpc CreateEntry(CreateEntryRequest) returns (Entry) {
- option (google.api.http) = {
- post: "/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/entries"
- body: "entry"
- };
- option (google.api.method_signature) = "parent,entry_id,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).
- rpc UpdateEntry(UpdateEntryRequest) returns (Entry) {
- option (google.api.http) = {
- patch: "/v1beta1/{entry.name=projects/*/locations/*/entryGroups/*/entries/*}"
- body: "entry"
- };
- option (google.api.method_signature) = "entry";
- option (google.api.method_signature) = "entry,update_mask";
- }
- // Deletes an existing entry. Only entries created through
- // [CreateEntry][google.cloud.datacatalog.v1beta1.DataCatalog.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).
- rpc DeleteEntry(DeleteEntryRequest) returns (google.protobuf.Empty) {
- option (google.api.http) = {
- delete: "/v1beta1/{name=projects/*/locations/*/entryGroups/*/entries/*}"
- };
- option (google.api.method_signature) = "name";
- }
- // Gets an entry.
- rpc GetEntry(GetEntryRequest) returns (Entry) {
- option (google.api.http) = {
- get: "/v1beta1/{name=projects/*/locations/*/entryGroups/*/entries/*}"
- };
- option (google.api.method_signature) = "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.
- rpc LookupEntry(LookupEntryRequest) returns (Entry) {
- option (google.api.http) = {
- get: "/v1beta1/entries:lookup"
- };
- }
- // Lists entries.
- rpc ListEntries(ListEntriesRequest) returns (ListEntriesResponse) {
- option (google.api.http) = {
- get: "/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/entries"
- };
- option (google.api.method_signature) = "parent";
- }
- // 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](https://cloud.google.com/data-catalog/docs/concepts/resource-project)
- // for more information).
- rpc CreateTagTemplate(CreateTagTemplateRequest) returns (TagTemplate) {
- option (google.api.http) = {
- post: "/v1beta1/{parent=projects/*/locations/*}/tagTemplates"
- body: "tag_template"
- };
- option (google.api.method_signature) = "parent,tag_template_id,tag_template";
- }
- // Gets a tag template.
- rpc GetTagTemplate(GetTagTemplateRequest) returns (TagTemplate) {
- option (google.api.http) = {
- get: "/v1beta1/{name=projects/*/locations/*/tagTemplates/*}"
- };
- option (google.api.method_signature) = "name";
- }
- // 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).
- rpc UpdateTagTemplate(UpdateTagTemplateRequest) returns (TagTemplate) {
- option (google.api.http) = {
- patch: "/v1beta1/{tag_template.name=projects/*/locations/*/tagTemplates/*}"
- body: "tag_template"
- };
- option (google.api.method_signature) = "tag_template";
- option (google.api.method_signature) = "tag_template,update_mask";
- }
- // 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).
- rpc DeleteTagTemplate(DeleteTagTemplateRequest) returns (google.protobuf.Empty) {
- option (google.api.http) = {
- delete: "/v1beta1/{name=projects/*/locations/*/tagTemplates/*}"
- };
- option (google.api.method_signature) = "name,force";
- }
- // 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](https://cloud.google.com/data-catalog/docs/concepts/resource-project)
- // for more information).
- rpc CreateTagTemplateField(CreateTagTemplateFieldRequest) returns (TagTemplateField) {
- option (google.api.http) = {
- post: "/v1beta1/{parent=projects/*/locations/*/tagTemplates/*}/fields"
- body: "tag_template_field"
- };
- option (google.api.method_signature) = "parent,tag_template_field_id,tag_template_field";
- }
- // 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).
- rpc UpdateTagTemplateField(UpdateTagTemplateFieldRequest) returns (TagTemplateField) {
- option (google.api.http) = {
- patch: "/v1beta1/{name=projects/*/locations/*/tagTemplates/*/fields/*}"
- body: "tag_template_field"
- };
- option (google.api.method_signature) = "name,tag_template_field";
- option (google.api.method_signature) = "name,tag_template_field,update_mask";
- }
- // 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](https://cloud.google.com/data-catalog/docs/concepts/resource-project)
- // for more information).
- rpc RenameTagTemplateField(RenameTagTemplateFieldRequest) returns (TagTemplateField) {
- option (google.api.http) = {
- post: "/v1beta1/{name=projects/*/locations/*/tagTemplates/*/fields/*}:rename"
- body: "*"
- };
- option (google.api.method_signature) = "name,new_tag_template_field_id";
- }
- // 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).
- rpc DeleteTagTemplateField(DeleteTagTemplateFieldRequest) returns (google.protobuf.Empty) {
- option (google.api.http) = {
- delete: "/v1beta1/{name=projects/*/locations/*/tagTemplates/*/fields/*}"
- };
- option (google.api.method_signature) = "name,force";
- }
- // Creates a tag on an [Entry][google.cloud.datacatalog.v1beta1.Entry].
- // Note: The project identified by the `parent` parameter for the
- // [tag](https://cloud.google.com/data-catalog/docs/reference/rest/v1beta1/projects.locations.entryGroups.entries.tags/create#path-parameters)
- // and the
- // [tag
- // 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.
- rpc CreateTag(CreateTagRequest) returns (Tag) {
- option (google.api.http) = {
- post: "/v1beta1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags"
- body: "tag"
- additional_bindings {
- post: "/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/tags"
- body: "tag"
- }
- };
- option (google.api.method_signature) = "parent,tag";
- }
- // Updates an existing tag.
- rpc UpdateTag(UpdateTagRequest) returns (Tag) {
- option (google.api.http) = {
- patch: "/v1beta1/{tag.name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}"
- body: "tag"
- additional_bindings {
- patch: "/v1beta1/{tag.name=projects/*/locations/*/entryGroups/*/tags/*}"
- body: "tag"
- }
- };
- option (google.api.method_signature) = "tag";
- option (google.api.method_signature) = "tag,update_mask";
- }
- // Deletes a tag.
- rpc DeleteTag(DeleteTagRequest) returns (google.protobuf.Empty) {
- option (google.api.http) = {
- delete: "/v1beta1/{name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}"
- additional_bindings {
- delete: "/v1beta1/{name=projects/*/locations/*/entryGroups/*/tags/*}"
- }
- };
- option (google.api.method_signature) = "name";
- }
- // Lists the tags on an [Entry][google.cloud.datacatalog.v1beta1.Entry].
- rpc ListTags(ListTagsRequest) returns (ListTagsResponse) {
- option (google.api.http) = {
- get: "/v1beta1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags"
- additional_bindings {
- get: "/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/tags"
- }
- };
- option (google.api.method_signature) = "parent";
- }
- // 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.
- rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) returns (google.iam.v1.Policy) {
- option (google.api.http) = {
- post: "/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:setIamPolicy"
- body: "*"
- additional_bindings {
- post: "/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:setIamPolicy"
- body: "*"
- }
- };
- option (google.api.method_signature) = "resource,policy";
- }
- // 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.
- rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) returns (google.iam.v1.Policy) {
- option (google.api.http) = {
- post: "/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:getIamPolicy"
- body: "*"
- additional_bindings {
- post: "/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:getIamPolicy"
- body: "*"
- }
- additional_bindings {
- post: "/v1beta1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:getIamPolicy"
- body: "*"
- }
- };
- option (google.api.method_signature) = "resource";
- }
- // 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.
- rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) returns (google.iam.v1.TestIamPermissionsResponse) {
- option (google.api.http) = {
- post: "/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:testIamPermissions"
- body: "*"
- additional_bindings {
- post: "/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:testIamPermissions"
- body: "*"
- }
- additional_bindings {
- post: "/v1beta1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:testIamPermissions"
- body: "*"
- }
- };
- }
- }
- // Request message for
- // [SearchCatalog][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog].
- message SearchCatalogRequest {
- // The criteria that select the subspace used for query matching.
- message Scope {
- // 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.
- repeated string include_org_ids = 2;
- // 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.
- repeated string include_project_ids = 3;
- // 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.
- bool include_gcp_public_datasets = 7;
- }
- // 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.
- Scope scope = 6 [(google.api.field_behavior) = REQUIRED];
- // 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](https://cloud.google.com/data-catalog/docs/how-to/search-reference)
- // for more information.
- string query = 1 [(google.api.field_behavior) = REQUIRED];
- // 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.
- int32 page_size = 2;
- // Optional. Pagination token returned in an earlier
- // [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1beta1.SearchCatalogResponse.next_page_token], which
- // indicates that this is a continuation of a prior
- // [SearchCatalogRequest][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog]
- // call, and that the system should return the next page of data. If empty,
- // the first page is returned.
- string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
- // 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.
- string order_by = 5;
- }
- // Response message for
- // [SearchCatalog][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog].
- message SearchCatalogResponse {
- // Search results.
- repeated SearchCatalogResult results = 1;
- // The token that can be used to retrieve the next page of results.
- string next_page_token = 3;
- }
- // Request message for
- // [CreateEntryGroup][google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntryGroup].
- message CreateEntryGroupRequest {
- // 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.
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "datacatalog.googleapis.com/EntryGroup"
- }
- ];
- // 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.
- string entry_group_id = 3 [(google.api.field_behavior) = REQUIRED];
- // The entry group to create. Defaults to an empty entry group.
- EntryGroup entry_group = 2;
- }
- // Request message for
- // [UpdateEntryGroup][google.cloud.datacatalog.v1beta1.DataCatalog.UpdateEntryGroup].
- message UpdateEntryGroupRequest {
- // Required. The updated entry group. "name" field must be set.
- EntryGroup entry_group = 1 [(google.api.field_behavior) = REQUIRED];
- // The fields to update on the entry group. If absent or empty, all modifiable
- // fields are updated.
- google.protobuf.FieldMask update_mask = 2;
- }
- // Request message for
- // [GetEntryGroup][google.cloud.datacatalog.v1beta1.DataCatalog.GetEntryGroup].
- message GetEntryGroupRequest {
- // Required. The name of the entry group. For example,
- // `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "datacatalog.googleapis.com/EntryGroup"
- }
- ];
- // The fields to return. If not set or empty, all fields are returned.
- google.protobuf.FieldMask read_mask = 2;
- }
- // Request message for
- // [DeleteEntryGroup][google.cloud.datacatalog.v1beta1.DataCatalog.DeleteEntryGroup].
- message DeleteEntryGroupRequest {
- // Required. The name of the entry group. For example,
- // `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "datacatalog.googleapis.com/EntryGroup"
- }
- ];
- // Optional. If true, deletes all entries in the entry group.
- bool force = 2 [(google.api.field_behavior) = OPTIONAL];
- }
- // Request message for
- // [ListEntryGroups][google.cloud.datacatalog.v1beta1.DataCatalog.ListEntryGroups].
- message ListEntryGroupsRequest {
- // Required. The name of the location that contains the entry groups, which can be
- // provided in URL format. Example:
- //
- // * projects/{project_id}/locations/{location}
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "datacatalog.googleapis.com/EntryGroup"
- }
- ];
- // Optional. The maximum number of items to return. Default is 10. Max limit is 1000.
- // Throws an invalid argument for `page_size > 1000`.
- int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
- // Optional. Token that specifies which page is requested. If empty, the first page is
- // returned.
- string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
- }
- // Response message for
- // [ListEntryGroups][google.cloud.datacatalog.v1beta1.DataCatalog.ListEntryGroups].
- message ListEntryGroupsResponse {
- // EntryGroup details.
- repeated EntryGroup entry_groups = 1;
- // Token to retrieve the next page of results. It is set to empty if no items
- // remain in results.
- string next_page_token = 2;
- }
- // Request message for
- // [CreateEntry][google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntry].
- message CreateEntryRequest {
- // 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.
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "datacatalog.googleapis.com/EntryGroup"
- }
- ];
- // Required. The id of the entry to create.
- string entry_id = 3 [(google.api.field_behavior) = REQUIRED];
- // Required. The entry to create.
- Entry entry = 2 [(google.api.field_behavior) = REQUIRED];
- }
- // Request message for
- // [UpdateEntry][google.cloud.datacatalog.v1beta1.DataCatalog.UpdateEntry].
- message UpdateEntryRequest {
- // Required. The updated entry. The "name" field must be set.
- Entry entry = 1 [(google.api.field_behavior) = REQUIRED];
- // The fields to update on the entry. If absent or empty, all modifiable
- // fields are updated.
- //
- // 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
- google.protobuf.FieldMask update_mask = 2;
- }
- // Request message for
- // [DeleteEntry][google.cloud.datacatalog.v1beta1.DataCatalog.DeleteEntry].
- message DeleteEntryRequest {
- // Required. The name of the entry. Example:
- //
- // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "datacatalog.googleapis.com/Entry"
- }
- ];
- }
- // Request message for
- // [GetEntry][google.cloud.datacatalog.v1beta1.DataCatalog.GetEntry].
- message GetEntryRequest {
- // Required. The name of the entry. Example:
- //
- // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "datacatalog.googleapis.com/Entry"
- }
- ];
- }
- // Request message for
- // [LookupEntry][google.cloud.datacatalog.v1beta1.DataCatalog.LookupEntry].
- message LookupEntryRequest {
- // Required. Represents either the Google Cloud Platform resource or SQL name
- // for a Google Cloud Platform resource.
- oneof target_name {
- // 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
- string linked_resource = 1;
- // The SQL name of the entry. SQL names are case-sensitive.
- //
- // Examples:
- //
- // * `pubsub.project_id.topic_id`
- // * ``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.
- string sql_resource = 3;
- }
- }
- // Entry Metadata.
- // A Data Catalog Entry resource represents another resource in Google
- // Cloud Platform (such as a BigQuery dataset or 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 Entry can
- // also be used to attach flexible metadata, such as a
- // [Tag][google.cloud.datacatalog.v1beta1.Tag].
- message Entry {
- option (google.api.resource) = {
- type: "datacatalog.googleapis.com/Entry"
- pattern: "projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}"
- };
- // The Data Catalog resource name of the entry in URL format. Example:
- //
- // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
- //
- // Note that this Entry and its child resources may not actually be stored in
- // the location in this name.
- string name = 1 [(google.api.resource_reference) = {
- type: "datacatalog.googleapis.com/EntryGroup"
- }];
- // The resource this metadata entry refers to.
- //
- // For Google Cloud Platform resources, `linked_resource` is the [full name of
- // the
- // resource](https://cloud.google.com/apis/design/resource_names#full_resource_name).
- // For example, the `linked_resource` for a table resource from BigQuery is:
- //
- // * //bigquery.googleapis.com/projects/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.
- string linked_resource = 9;
- // Required. Entry type.
- oneof entry_type {
- // The type of the entry.
- // Only used for Entries with types in the EntryType enum.
- EntryType type = 2;
- // 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`.
- string user_specified_type = 16;
- }
- // The source system of the entry.
- oneof system {
- // Output only. This field indicates the entry's source system that Data Catalog
- // integrates with, such as BigQuery or Pub/Sub.
- IntegratedSystem integrated_system = 17 [(google.api.field_behavior) = OUTPUT_ONLY];
- // 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.
- string user_specified_system = 18;
- }
- // Type specification information.
- oneof type_spec {
- // Specification that applies to a Cloud Storage fileset. This is only valid
- // on entries of type FILESET.
- GcsFilesetSpec gcs_fileset_spec = 6;
- // Specification that applies to a BigQuery table. This is only valid on
- // entries of type `TABLE`.
- BigQueryTableSpec bigquery_table_spec = 12;
- // Specification for a group of BigQuery tables with name pattern
- // `[prefix]YYYYMMDD`. Context:
- // https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding.
- BigQueryDateShardedSpec bigquery_date_sharded_spec = 15;
- }
- // Display information such as title and description. A short name to identify
- // the entry, for example, "Analytics Data - Jan 2011". Default value is an
- // empty string.
- string display_name = 3;
- // Entry description, which can consist of several sentences or paragraphs
- // that describe entry contents. Default value is an empty string.
- string description = 4;
- // Schema of the entry. An entry might not have any schema attached to it.
- Schema schema = 5;
- // Output only. Timestamps about the underlying resource, not about this Data Catalog
- // entry. 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
- // timestamp.
- SystemTimestamps source_system_timestamps = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
- }
- // EntryGroup Metadata.
- // An EntryGroup resource represents a logical grouping of zero or more
- // Data Catalog [Entry][google.cloud.datacatalog.v1beta1.Entry] resources.
- message EntryGroup {
- option (google.api.resource) = {
- type: "datacatalog.googleapis.com/EntryGroup"
- pattern: "projects/{project}/locations/{location}/entryGroups/{entry_group}"
- };
- // The resource name of the entry group in URL format. Example:
- //
- // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
- //
- // Note that this EntryGroup and its child resources may not actually be
- // stored in the location in this name.
- string name = 1;
- // A short name to identify the entry group, for example,
- // "analytics data - jan 2011". Default value is an empty string.
- string display_name = 2;
- // Entry group description, which can consist of several sentences or
- // paragraphs that describe entry group contents. Default value is an empty
- // string.
- string description = 3;
- // Output only. Timestamps about this EntryGroup. Default value is empty timestamps.
- SystemTimestamps data_catalog_timestamps = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
- }
- // Request message for
- // [CreateTagTemplate][google.cloud.datacatalog.v1beta1.DataCatalog.CreateTagTemplate].
- message CreateTagTemplateRequest {
- // 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
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "datacatalog.googleapis.com/TagTemplate"
- }
- ];
- // Required. The id of the tag template to create.
- string tag_template_id = 3 [(google.api.field_behavior) = REQUIRED];
- // Required. The tag template to create.
- TagTemplate tag_template = 2 [(google.api.field_behavior) = REQUIRED];
- }
- // Request message for
- // [GetTagTemplate][google.cloud.datacatalog.v1beta1.DataCatalog.GetTagTemplate].
- message GetTagTemplateRequest {
- // Required. The name of the tag template. Example:
- //
- // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "datacatalog.googleapis.com/TagTemplate"
- }
- ];
- }
- // Request message for
- // [UpdateTagTemplate][google.cloud.datacatalog.v1beta1.DataCatalog.UpdateTagTemplate].
- message UpdateTagTemplateRequest {
- // Required. The template to update. The "name" field must be set.
- TagTemplate tag_template = 1 [(google.api.field_behavior) = REQUIRED];
- // 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.
- google.protobuf.FieldMask update_mask = 2;
- }
- // Request message for
- // [DeleteTagTemplate][google.cloud.datacatalog.v1beta1.DataCatalog.DeleteTagTemplate].
- message DeleteTagTemplateRequest {
- // Required. The name of the tag template to delete. Example:
- //
- // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "datacatalog.googleapis.com/TagTemplate"
- }
- ];
- // 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.
- bool force = 2 [(google.api.field_behavior) = REQUIRED];
- }
- // Request message for
- // [CreateTag][google.cloud.datacatalog.v1beta1.DataCatalog.CreateTag].
- message CreateTagRequest {
- // 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.
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "datacatalog.googleapis.com/Tag"
- }
- ];
- // Required. The tag to create.
- Tag tag = 2 [(google.api.field_behavior) = REQUIRED];
- }
- // Request message for
- // [UpdateTag][google.cloud.datacatalog.v1beta1.DataCatalog.UpdateTag].
- message UpdateTagRequest {
- // Required. The updated tag. The "name" field must be set.
- Tag tag = 1 [(google.api.field_behavior) = REQUIRED];
- // 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`.
- google.protobuf.FieldMask update_mask = 2;
- }
- // Request message for
- // [DeleteTag][google.cloud.datacatalog.v1beta1.DataCatalog.DeleteTag].
- message DeleteTagRequest {
- // Required. The name of the tag to delete. Example:
- //
- // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "datacatalog.googleapis.com/Tag"
- }
- ];
- }
- // Request message for
- // [CreateTagTemplateField][google.cloud.datacatalog.v1beta1.DataCatalog.CreateTagTemplateField].
- message CreateTagTemplateFieldRequest {
- // 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/tagTemplates/{tag_template_id}
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "datacatalog.googleapis.com/TagTemplate"
- }
- ];
- // 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.
- string tag_template_field_id = 2 [(google.api.field_behavior) = REQUIRED];
- // Required. The tag template field to create.
- TagTemplateField tag_template_field = 3 [(google.api.field_behavior) = REQUIRED];
- }
- // Request message for
- // [UpdateTagTemplateField][google.cloud.datacatalog.v1beta1.DataCatalog.UpdateTagTemplateField].
- message UpdateTagTemplateFieldRequest {
- // Required. The name of the tag template field. Example:
- //
- // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "datacatalog.googleapis.com/TagTemplateField"
- }
- ];
- // Required. The template to update.
- TagTemplateField tag_template_field = 2 [(google.api.field_behavior) = REQUIRED];
- // 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.
- google.protobuf.FieldMask update_mask = 3 [(google.api.field_behavior) = OPTIONAL];
- }
- // Request message for
- // [RenameTagTemplateField][google.cloud.datacatalog.v1beta1.DataCatalog.RenameTagTemplateField].
- message RenameTagTemplateFieldRequest {
- // Required. The name of the tag template. Example:
- //
- // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "datacatalog.googleapis.com/TagTemplateField"
- }
- ];
- // Required. The new ID of this tag template field. For example, `my_new_field`.
- string new_tag_template_field_id = 2 [(google.api.field_behavior) = REQUIRED];
- }
- // Request message for
- // [DeleteTagTemplateField][google.cloud.datacatalog.v1beta1.DataCatalog.DeleteTagTemplateField].
- message DeleteTagTemplateFieldRequest {
- // Required. The name of the tag template field to delete. Example:
- //
- // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "datacatalog.googleapis.com/TagTemplateField"
- }
- ];
- // 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.
- bool force = 2 [(google.api.field_behavior) = REQUIRED];
- }
- // Request message for
- // [ListTags][google.cloud.datacatalog.v1beta1.DataCatalog.ListTags].
- message ListTagsRequest {
- // Required. The name of the Data Catalog resource to list the tags of. The resource
- // could be an [Entry][google.cloud.datacatalog.v1beta1.Entry] or an
- // [EntryGroup][google.cloud.datacatalog.v1beta1.EntryGroup].
- //
- // Examples:
- //
- // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
- // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "datacatalog.googleapis.com/Tag"
- }
- ];
- // The maximum number of tags to return. Default is 10. Max limit is 1000.
- int32 page_size = 2;
- // Token that specifies which page is requested. If empty, the first page is
- // returned.
- string page_token = 3;
- }
- // Response message for
- // [ListTags][google.cloud.datacatalog.v1beta1.DataCatalog.ListTags].
- message ListTagsResponse {
- // [Tag][google.cloud.datacatalog.v1beta1.Tag] details.
- repeated Tag tags = 1;
- // Token to retrieve the next page of results. It is set to empty if no items
- // remain in results.
- string next_page_token = 2;
- }
- // Request message for
- // [ListEntries][google.cloud.datacatalog.v1beta1.DataCatalog.ListEntries].
- message ListEntriesRequest {
- // 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}
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "datacatalog.googleapis.com/EntryGroup"
- }
- ];
- // The maximum number of items to return. Default is 10. Max limit is 1000.
- // Throws an invalid argument for `page_size > 1000`.
- int32 page_size = 2;
- // Token that specifies which page is requested. If empty, the first page is
- // returned.
- string page_token = 3;
- // 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.
- google.protobuf.FieldMask read_mask = 4;
- }
- // Response message for
- // [ListEntries][google.cloud.datacatalog.v1beta1.DataCatalog.ListEntries].
- message ListEntriesResponse {
- // Entry details.
- repeated Entry entries = 1;
- // Token to retrieve the next page of results. It is set to empty if no items
- // remain in results.
- string next_page_token = 2;
- }
- // 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.
- enum EntryType {
- // Default unknown type.
- ENTRY_TYPE_UNSPECIFIED = 0;
- // Output only. The type of entry that has a GoogleSQL schema, including
- // logical views.
- TABLE = 2;
- // Output only. The type of models.
- // https://cloud.google.com/bigquery-ml/docs/bigqueryml-intro
- MODEL = 5;
- // Output only. An entry type which is used for streaming entries. Example:
- // Pub/Sub topic.
- DATA_STREAM = 3;
- // An entry type which is a set of files or objects. Example:
- // Cloud Storage fileset.
- FILESET = 4;
- }
|