datacatalog.proto 46 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186
  1. // Copyright 2020 Google LLC
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. syntax = "proto3";
  15. package google.cloud.datacatalog.v1beta1;
  16. import "google/api/annotations.proto";
  17. import "google/api/client.proto";
  18. import "google/api/field_behavior.proto";
  19. import "google/api/resource.proto";
  20. import "google/cloud/datacatalog/v1beta1/common.proto";
  21. import "google/cloud/datacatalog/v1beta1/gcs_fileset_spec.proto";
  22. import "google/cloud/datacatalog/v1beta1/schema.proto";
  23. import "google/cloud/datacatalog/v1beta1/search.proto";
  24. import "google/cloud/datacatalog/v1beta1/table_spec.proto";
  25. import "google/cloud/datacatalog/v1beta1/tags.proto";
  26. import "google/cloud/datacatalog/v1beta1/timestamps.proto";
  27. import "google/iam/v1/iam_policy.proto";
  28. import "google/iam/v1/policy.proto";
  29. import "google/protobuf/empty.proto";
  30. import "google/protobuf/field_mask.proto";
  31. option cc_enable_arenas = true;
  32. option csharp_namespace = "Google.Cloud.DataCatalog.V1Beta1";
  33. option go_package = "google.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1;datacatalog";
  34. option java_multiple_files = true;
  35. option java_package = "com.google.cloud.datacatalog.v1beta1";
  36. option php_namespace = "Google\\Cloud\\DataCatalog\\V1beta1";
  37. option ruby_package = "Google::Cloud::DataCatalog::V1beta1";
  38. // Data Catalog API service allows clients to discover, understand, and manage
  39. // their data.
  40. service DataCatalog {
  41. option (google.api.default_host) = "datacatalog.googleapis.com";
  42. option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
  43. // Searches Data Catalog for multiple resources like entries, tags that
  44. // match a query.
  45. //
  46. // This is a custom method
  47. // (https://cloud.google.com/apis/design/custom_methods) and does not return
  48. // the complete resource, only the resource identifier and high level
  49. // fields. Clients can subsequentally call `Get` methods.
  50. //
  51. // Note that Data Catalog search queries do not guarantee full recall. Query
  52. // results that match your query may not be returned, even in subsequent
  53. // result pages. Also note that results returned (and not returned) can vary
  54. // across repeated search queries.
  55. //
  56. // See [Data Catalog Search
  57. // Syntax](https://cloud.google.com/data-catalog/docs/how-to/search-reference)
  58. // for more information.
  59. rpc SearchCatalog(SearchCatalogRequest) returns (SearchCatalogResponse) {
  60. option (google.api.http) = {
  61. post: "/v1beta1/catalog:search"
  62. body: "*"
  63. };
  64. option (google.api.method_signature) = "scope,query";
  65. }
  66. // A maximum of 10,000 entry groups may be created per organization across all
  67. // locations.
  68. //
  69. // Users should enable the Data Catalog API in the project identified by
  70. // the `parent` parameter (see [Data Catalog Resource Project]
  71. // (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
  72. // more information).
  73. rpc CreateEntryGroup(CreateEntryGroupRequest) returns (EntryGroup) {
  74. option (google.api.http) = {
  75. post: "/v1beta1/{parent=projects/*/locations/*}/entryGroups"
  76. body: "entry_group"
  77. };
  78. option (google.api.method_signature) = "parent,entry_group_id,entry_group";
  79. }
  80. // Updates an EntryGroup. The user should enable the Data Catalog API in the
  81. // project identified by the `entry_group.name` parameter (see [Data Catalog
  82. // Resource Project]
  83. // (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
  84. // more information).
  85. rpc UpdateEntryGroup(UpdateEntryGroupRequest) returns (EntryGroup) {
  86. option (google.api.http) = {
  87. patch: "/v1beta1/{entry_group.name=projects/*/locations/*/entryGroups/*}"
  88. body: "entry_group"
  89. };
  90. option (google.api.method_signature) = "entry_group";
  91. option (google.api.method_signature) = "entry_group,update_mask";
  92. }
  93. // Gets an EntryGroup.
  94. rpc GetEntryGroup(GetEntryGroupRequest) returns (EntryGroup) {
  95. option (google.api.http) = {
  96. get: "/v1beta1/{name=projects/*/locations/*/entryGroups/*}"
  97. };
  98. option (google.api.method_signature) = "name";
  99. option (google.api.method_signature) = "name,read_mask";
  100. }
  101. // Deletes an EntryGroup. Only entry groups that do not contain entries can be
  102. // deleted. Users should enable the Data Catalog API in the project
  103. // identified by the `name` parameter (see [Data Catalog Resource Project]
  104. // (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
  105. // more information).
  106. rpc DeleteEntryGroup(DeleteEntryGroupRequest) returns (google.protobuf.Empty) {
  107. option (google.api.http) = {
  108. delete: "/v1beta1/{name=projects/*/locations/*/entryGroups/*}"
  109. };
  110. option (google.api.method_signature) = "name";
  111. }
  112. // Lists entry groups.
  113. rpc ListEntryGroups(ListEntryGroupsRequest) returns (ListEntryGroupsResponse) {
  114. option (google.api.http) = {
  115. get: "/v1beta1/{parent=projects/*/locations/*}/entryGroups"
  116. };
  117. option (google.api.method_signature) = "parent";
  118. }
  119. // Creates an entry. Only entries of 'FILESET' type or user-specified type can
  120. // be created.
  121. //
  122. // Users should enable the Data Catalog API in the project identified by
  123. // the `parent` parameter (see [Data Catalog Resource Project]
  124. // (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
  125. // more information).
  126. //
  127. // A maximum of 100,000 entries may be created per entry group.
  128. rpc CreateEntry(CreateEntryRequest) returns (Entry) {
  129. option (google.api.http) = {
  130. post: "/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/entries"
  131. body: "entry"
  132. };
  133. option (google.api.method_signature) = "parent,entry_id,entry";
  134. }
  135. // Updates an existing entry.
  136. // Users should enable the Data Catalog API in the project identified by
  137. // the `entry.name` parameter (see [Data Catalog Resource Project]
  138. // (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
  139. // more information).
  140. rpc UpdateEntry(UpdateEntryRequest) returns (Entry) {
  141. option (google.api.http) = {
  142. patch: "/v1beta1/{entry.name=projects/*/locations/*/entryGroups/*/entries/*}"
  143. body: "entry"
  144. };
  145. option (google.api.method_signature) = "entry";
  146. option (google.api.method_signature) = "entry,update_mask";
  147. }
  148. // Deletes an existing entry. Only entries created through
  149. // [CreateEntry][google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntry]
  150. // method can be deleted.
  151. // Users should enable the Data Catalog API in the project identified by
  152. // the `name` parameter (see [Data Catalog Resource Project]
  153. // (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
  154. // more information).
  155. rpc DeleteEntry(DeleteEntryRequest) returns (google.protobuf.Empty) {
  156. option (google.api.http) = {
  157. delete: "/v1beta1/{name=projects/*/locations/*/entryGroups/*/entries/*}"
  158. };
  159. option (google.api.method_signature) = "name";
  160. }
  161. // Gets an entry.
  162. rpc GetEntry(GetEntryRequest) returns (Entry) {
  163. option (google.api.http) = {
  164. get: "/v1beta1/{name=projects/*/locations/*/entryGroups/*/entries/*}"
  165. };
  166. option (google.api.method_signature) = "name";
  167. }
  168. // Get an entry by target resource name. This method allows clients to use
  169. // the resource name from the source Google Cloud Platform service to get the
  170. // Data Catalog Entry.
  171. rpc LookupEntry(LookupEntryRequest) returns (Entry) {
  172. option (google.api.http) = {
  173. get: "/v1beta1/entries:lookup"
  174. };
  175. }
  176. // Lists entries.
  177. rpc ListEntries(ListEntriesRequest) returns (ListEntriesResponse) {
  178. option (google.api.http) = {
  179. get: "/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/entries"
  180. };
  181. option (google.api.method_signature) = "parent";
  182. }
  183. // Creates a tag template. The user should enable the Data Catalog API in
  184. // the project identified by the `parent` parameter (see [Data Catalog
  185. // Resource
  186. // Project](https://cloud.google.com/data-catalog/docs/concepts/resource-project)
  187. // for more information).
  188. rpc CreateTagTemplate(CreateTagTemplateRequest) returns (TagTemplate) {
  189. option (google.api.http) = {
  190. post: "/v1beta1/{parent=projects/*/locations/*}/tagTemplates"
  191. body: "tag_template"
  192. };
  193. option (google.api.method_signature) = "parent,tag_template_id,tag_template";
  194. }
  195. // Gets a tag template.
  196. rpc GetTagTemplate(GetTagTemplateRequest) returns (TagTemplate) {
  197. option (google.api.http) = {
  198. get: "/v1beta1/{name=projects/*/locations/*/tagTemplates/*}"
  199. };
  200. option (google.api.method_signature) = "name";
  201. }
  202. // Updates a tag template. This method cannot be used to update the fields of
  203. // a template. The tag template fields are represented as separate resources
  204. // and should be updated using their own create/update/delete methods.
  205. // Users should enable the Data Catalog API in the project identified by
  206. // the `tag_template.name` parameter (see [Data Catalog Resource Project]
  207. // (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
  208. // more information).
  209. rpc UpdateTagTemplate(UpdateTagTemplateRequest) returns (TagTemplate) {
  210. option (google.api.http) = {
  211. patch: "/v1beta1/{tag_template.name=projects/*/locations/*/tagTemplates/*}"
  212. body: "tag_template"
  213. };
  214. option (google.api.method_signature) = "tag_template";
  215. option (google.api.method_signature) = "tag_template,update_mask";
  216. }
  217. // Deletes a tag template and all tags using the template.
  218. // Users should enable the Data Catalog API in the project identified by
  219. // the `name` parameter (see [Data Catalog Resource Project]
  220. // (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
  221. // more information).
  222. rpc DeleteTagTemplate(DeleteTagTemplateRequest) returns (google.protobuf.Empty) {
  223. option (google.api.http) = {
  224. delete: "/v1beta1/{name=projects/*/locations/*/tagTemplates/*}"
  225. };
  226. option (google.api.method_signature) = "name,force";
  227. }
  228. // Creates a field in a tag template. The user should enable the Data Catalog
  229. // API in the project identified by the `parent` parameter (see
  230. // [Data Catalog Resource
  231. // Project](https://cloud.google.com/data-catalog/docs/concepts/resource-project)
  232. // for more information).
  233. rpc CreateTagTemplateField(CreateTagTemplateFieldRequest) returns (TagTemplateField) {
  234. option (google.api.http) = {
  235. post: "/v1beta1/{parent=projects/*/locations/*/tagTemplates/*}/fields"
  236. body: "tag_template_field"
  237. };
  238. option (google.api.method_signature) = "parent,tag_template_field_id,tag_template_field";
  239. }
  240. // Updates a field in a tag template. This method cannot be used to update the
  241. // field type. Users should enable the Data Catalog API in the project
  242. // identified by the `name` parameter (see [Data Catalog Resource Project]
  243. // (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
  244. // more information).
  245. rpc UpdateTagTemplateField(UpdateTagTemplateFieldRequest) returns (TagTemplateField) {
  246. option (google.api.http) = {
  247. patch: "/v1beta1/{name=projects/*/locations/*/tagTemplates/*/fields/*}"
  248. body: "tag_template_field"
  249. };
  250. option (google.api.method_signature) = "name,tag_template_field";
  251. option (google.api.method_signature) = "name,tag_template_field,update_mask";
  252. }
  253. // Renames a field in a tag template. The user should enable the Data Catalog
  254. // API in the project identified by the `name` parameter (see [Data Catalog
  255. // Resource
  256. // Project](https://cloud.google.com/data-catalog/docs/concepts/resource-project)
  257. // for more information).
  258. rpc RenameTagTemplateField(RenameTagTemplateFieldRequest) returns (TagTemplateField) {
  259. option (google.api.http) = {
  260. post: "/v1beta1/{name=projects/*/locations/*/tagTemplates/*/fields/*}:rename"
  261. body: "*"
  262. };
  263. option (google.api.method_signature) = "name,new_tag_template_field_id";
  264. }
  265. // Deletes a field in a tag template and all uses of that field.
  266. // Users should enable the Data Catalog API in the project identified by
  267. // the `name` parameter (see [Data Catalog Resource Project]
  268. // (https://cloud.google.com/data-catalog/docs/concepts/resource-project) for
  269. // more information).
  270. rpc DeleteTagTemplateField(DeleteTagTemplateFieldRequest) returns (google.protobuf.Empty) {
  271. option (google.api.http) = {
  272. delete: "/v1beta1/{name=projects/*/locations/*/tagTemplates/*/fields/*}"
  273. };
  274. option (google.api.method_signature) = "name,force";
  275. }
  276. // Creates a tag on an [Entry][google.cloud.datacatalog.v1beta1.Entry].
  277. // Note: The project identified by the `parent` parameter for the
  278. // [tag](https://cloud.google.com/data-catalog/docs/reference/rest/v1beta1/projects.locations.entryGroups.entries.tags/create#path-parameters)
  279. // and the
  280. // [tag
  281. // template](https://cloud.google.com/data-catalog/docs/reference/rest/v1beta1/projects.locations.tagTemplates/create#path-parameters)
  282. // used to create the tag must be from the same organization.
  283. rpc CreateTag(CreateTagRequest) returns (Tag) {
  284. option (google.api.http) = {
  285. post: "/v1beta1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags"
  286. body: "tag"
  287. additional_bindings {
  288. post: "/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/tags"
  289. body: "tag"
  290. }
  291. };
  292. option (google.api.method_signature) = "parent,tag";
  293. }
  294. // Updates an existing tag.
  295. rpc UpdateTag(UpdateTagRequest) returns (Tag) {
  296. option (google.api.http) = {
  297. patch: "/v1beta1/{tag.name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}"
  298. body: "tag"
  299. additional_bindings {
  300. patch: "/v1beta1/{tag.name=projects/*/locations/*/entryGroups/*/tags/*}"
  301. body: "tag"
  302. }
  303. };
  304. option (google.api.method_signature) = "tag";
  305. option (google.api.method_signature) = "tag,update_mask";
  306. }
  307. // Deletes a tag.
  308. rpc DeleteTag(DeleteTagRequest) returns (google.protobuf.Empty) {
  309. option (google.api.http) = {
  310. delete: "/v1beta1/{name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}"
  311. additional_bindings {
  312. delete: "/v1beta1/{name=projects/*/locations/*/entryGroups/*/tags/*}"
  313. }
  314. };
  315. option (google.api.method_signature) = "name";
  316. }
  317. // Lists the tags on an [Entry][google.cloud.datacatalog.v1beta1.Entry].
  318. rpc ListTags(ListTagsRequest) returns (ListTagsResponse) {
  319. option (google.api.http) = {
  320. get: "/v1beta1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags"
  321. additional_bindings {
  322. get: "/v1beta1/{parent=projects/*/locations/*/entryGroups/*}/tags"
  323. }
  324. };
  325. option (google.api.method_signature) = "parent";
  326. }
  327. // Sets the access control policy for a resource. Replaces any existing
  328. // policy.
  329. // Supported resources are:
  330. // - Tag templates.
  331. // - Entries.
  332. // - Entry groups.
  333. // Note, this method cannot be used to manage policies for BigQuery, Pub/Sub
  334. // and any external Google Cloud Platform resources synced to Data Catalog.
  335. //
  336. // Callers must have following Google IAM permission
  337. // - `datacatalog.tagTemplates.setIamPolicy` to set policies on tag
  338. // templates.
  339. // - `datacatalog.entries.setIamPolicy` to set policies on entries.
  340. // - `datacatalog.entryGroups.setIamPolicy` to set policies on entry groups.
  341. rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) returns (google.iam.v1.Policy) {
  342. option (google.api.http) = {
  343. post: "/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:setIamPolicy"
  344. body: "*"
  345. additional_bindings {
  346. post: "/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:setIamPolicy"
  347. body: "*"
  348. }
  349. };
  350. option (google.api.method_signature) = "resource,policy";
  351. }
  352. // Gets the access control policy for a resource. A `NOT_FOUND` error
  353. // is returned if the resource does not exist. An empty policy is returned
  354. // if the resource exists but does not have a policy set on it.
  355. //
  356. // Supported resources are:
  357. // - Tag templates.
  358. // - Entries.
  359. // - Entry groups.
  360. // Note, this method cannot be used to manage policies for BigQuery, Pub/Sub
  361. // and any external Google Cloud Platform resources synced to Data Catalog.
  362. //
  363. // Callers must have following Google IAM permission
  364. // - `datacatalog.tagTemplates.getIamPolicy` to get policies on tag
  365. // templates.
  366. // - `datacatalog.entries.getIamPolicy` to get policies on entries.
  367. // - `datacatalog.entryGroups.getIamPolicy` to get policies on entry groups.
  368. rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) returns (google.iam.v1.Policy) {
  369. option (google.api.http) = {
  370. post: "/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:getIamPolicy"
  371. body: "*"
  372. additional_bindings {
  373. post: "/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:getIamPolicy"
  374. body: "*"
  375. }
  376. additional_bindings {
  377. post: "/v1beta1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:getIamPolicy"
  378. body: "*"
  379. }
  380. };
  381. option (google.api.method_signature) = "resource";
  382. }
  383. // Returns the caller's permissions on a resource.
  384. // If the resource does not exist, an empty set of permissions is returned
  385. // (We don't return a `NOT_FOUND` error).
  386. //
  387. // Supported resources are:
  388. // - Tag templates.
  389. // - Entries.
  390. // - Entry groups.
  391. // Note, this method cannot be used to manage policies for BigQuery, Pub/Sub
  392. // and any external Google Cloud Platform resources synced to Data Catalog.
  393. //
  394. // A caller is not required to have Google IAM permission to make this
  395. // request.
  396. rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) returns (google.iam.v1.TestIamPermissionsResponse) {
  397. option (google.api.http) = {
  398. post: "/v1beta1/{resource=projects/*/locations/*/tagTemplates/*}:testIamPermissions"
  399. body: "*"
  400. additional_bindings {
  401. post: "/v1beta1/{resource=projects/*/locations/*/entryGroups/*}:testIamPermissions"
  402. body: "*"
  403. }
  404. additional_bindings {
  405. post: "/v1beta1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:testIamPermissions"
  406. body: "*"
  407. }
  408. };
  409. }
  410. }
  411. // Request message for
  412. // [SearchCatalog][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog].
  413. message SearchCatalogRequest {
  414. // The criteria that select the subspace used for query matching.
  415. message Scope {
  416. // The list of organization IDs to search within. To find your organization
  417. // ID, follow instructions in
  418. // https://cloud.google.com/resource-manager/docs/creating-managing-organization.
  419. repeated string include_org_ids = 2;
  420. // The list of project IDs to search within. To learn more about the
  421. // distinction between project names/IDs/numbers, go to
  422. // https://cloud.google.com/docs/overview/#projects.
  423. repeated string include_project_ids = 3;
  424. // If `true`, include Google Cloud Platform (GCP) public datasets in the
  425. // search results. Info on GCP public datasets is available at
  426. // https://cloud.google.com/public-datasets/. By default, GCP public
  427. // datasets are excluded.
  428. bool include_gcp_public_datasets = 7;
  429. }
  430. // Required. The scope of this search request. A `scope` that has empty
  431. // `include_org_ids`, `include_project_ids` AND false
  432. // `include_gcp_public_datasets` is considered invalid. Data Catalog will
  433. // return an error in such a case.
  434. Scope scope = 6 [(google.api.field_behavior) = REQUIRED];
  435. // Required. The query string in search query syntax. The query must be non-empty.
  436. //
  437. // Query strings can be simple as "x" or more qualified as:
  438. //
  439. // * name:x
  440. // * column:x
  441. // * description:y
  442. //
  443. // Note: Query tokens need to have a minimum of 3 characters for substring
  444. // matching to work correctly. See [Data Catalog Search
  445. // Syntax](https://cloud.google.com/data-catalog/docs/how-to/search-reference)
  446. // for more information.
  447. string query = 1 [(google.api.field_behavior) = REQUIRED];
  448. // Number of results in the search page. If <=0 then defaults to 10. Max limit
  449. // for page_size is 1000. Throws an invalid argument for page_size > 1000.
  450. int32 page_size = 2;
  451. // Optional. Pagination token returned in an earlier
  452. // [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1beta1.SearchCatalogResponse.next_page_token], which
  453. // indicates that this is a continuation of a prior
  454. // [SearchCatalogRequest][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog]
  455. // call, and that the system should return the next page of data. If empty,
  456. // the first page is returned.
  457. string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
  458. // Specifies the ordering of results, currently supported case-sensitive
  459. // choices are:
  460. //
  461. // * `relevance`, only supports descending
  462. // * `last_modified_timestamp [asc|desc]`, defaults to descending if not
  463. // specified
  464. //
  465. // If not specified, defaults to `relevance` descending.
  466. string order_by = 5;
  467. }
  468. // Response message for
  469. // [SearchCatalog][google.cloud.datacatalog.v1beta1.DataCatalog.SearchCatalog].
  470. message SearchCatalogResponse {
  471. // Search results.
  472. repeated SearchCatalogResult results = 1;
  473. // The token that can be used to retrieve the next page of results.
  474. string next_page_token = 3;
  475. }
  476. // Request message for
  477. // [CreateEntryGroup][google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntryGroup].
  478. message CreateEntryGroupRequest {
  479. // Required. The name of the project this entry group is in. Example:
  480. //
  481. // * projects/{project_id}/locations/{location}
  482. //
  483. // Note that this EntryGroup and its child resources may not actually be
  484. // stored in the location in this name.
  485. string parent = 1 [
  486. (google.api.field_behavior) = REQUIRED,
  487. (google.api.resource_reference) = {
  488. child_type: "datacatalog.googleapis.com/EntryGroup"
  489. }
  490. ];
  491. // Required. The id of the entry group to create.
  492. // The id must begin with a letter or underscore, contain only English
  493. // letters, numbers and underscores, and be at most 64 characters.
  494. string entry_group_id = 3 [(google.api.field_behavior) = REQUIRED];
  495. // The entry group to create. Defaults to an empty entry group.
  496. EntryGroup entry_group = 2;
  497. }
  498. // Request message for
  499. // [UpdateEntryGroup][google.cloud.datacatalog.v1beta1.DataCatalog.UpdateEntryGroup].
  500. message UpdateEntryGroupRequest {
  501. // Required. The updated entry group. "name" field must be set.
  502. EntryGroup entry_group = 1 [(google.api.field_behavior) = REQUIRED];
  503. // The fields to update on the entry group. If absent or empty, all modifiable
  504. // fields are updated.
  505. google.protobuf.FieldMask update_mask = 2;
  506. }
  507. // Request message for
  508. // [GetEntryGroup][google.cloud.datacatalog.v1beta1.DataCatalog.GetEntryGroup].
  509. message GetEntryGroupRequest {
  510. // Required. The name of the entry group. For example,
  511. // `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
  512. string name = 1 [
  513. (google.api.field_behavior) = REQUIRED,
  514. (google.api.resource_reference) = {
  515. type: "datacatalog.googleapis.com/EntryGroup"
  516. }
  517. ];
  518. // The fields to return. If not set or empty, all fields are returned.
  519. google.protobuf.FieldMask read_mask = 2;
  520. }
  521. // Request message for
  522. // [DeleteEntryGroup][google.cloud.datacatalog.v1beta1.DataCatalog.DeleteEntryGroup].
  523. message DeleteEntryGroupRequest {
  524. // Required. The name of the entry group. For example,
  525. // `projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}`.
  526. string name = 1 [
  527. (google.api.field_behavior) = REQUIRED,
  528. (google.api.resource_reference) = {
  529. type: "datacatalog.googleapis.com/EntryGroup"
  530. }
  531. ];
  532. // Optional. If true, deletes all entries in the entry group.
  533. bool force = 2 [(google.api.field_behavior) = OPTIONAL];
  534. }
  535. // Request message for
  536. // [ListEntryGroups][google.cloud.datacatalog.v1beta1.DataCatalog.ListEntryGroups].
  537. message ListEntryGroupsRequest {
  538. // Required. The name of the location that contains the entry groups, which can be
  539. // provided in URL format. Example:
  540. //
  541. // * projects/{project_id}/locations/{location}
  542. string parent = 1 [
  543. (google.api.field_behavior) = REQUIRED,
  544. (google.api.resource_reference) = {
  545. child_type: "datacatalog.googleapis.com/EntryGroup"
  546. }
  547. ];
  548. // Optional. The maximum number of items to return. Default is 10. Max limit is 1000.
  549. // Throws an invalid argument for `page_size > 1000`.
  550. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
  551. // Optional. Token that specifies which page is requested. If empty, the first page is
  552. // returned.
  553. string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
  554. }
  555. // Response message for
  556. // [ListEntryGroups][google.cloud.datacatalog.v1beta1.DataCatalog.ListEntryGroups].
  557. message ListEntryGroupsResponse {
  558. // EntryGroup details.
  559. repeated EntryGroup entry_groups = 1;
  560. // Token to retrieve the next page of results. It is set to empty if no items
  561. // remain in results.
  562. string next_page_token = 2;
  563. }
  564. // Request message for
  565. // [CreateEntry][google.cloud.datacatalog.v1beta1.DataCatalog.CreateEntry].
  566. message CreateEntryRequest {
  567. // Required. The name of the entry group this entry is in. Example:
  568. //
  569. // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
  570. //
  571. // Note that this Entry and its child resources may not actually be stored in
  572. // the location in this name.
  573. string parent = 1 [
  574. (google.api.field_behavior) = REQUIRED,
  575. (google.api.resource_reference) = {
  576. type: "datacatalog.googleapis.com/EntryGroup"
  577. }
  578. ];
  579. // Required. The id of the entry to create.
  580. string entry_id = 3 [(google.api.field_behavior) = REQUIRED];
  581. // Required. The entry to create.
  582. Entry entry = 2 [(google.api.field_behavior) = REQUIRED];
  583. }
  584. // Request message for
  585. // [UpdateEntry][google.cloud.datacatalog.v1beta1.DataCatalog.UpdateEntry].
  586. message UpdateEntryRequest {
  587. // Required. The updated entry. The "name" field must be set.
  588. Entry entry = 1 [(google.api.field_behavior) = REQUIRED];
  589. // The fields to update on the entry. If absent or empty, all modifiable
  590. // fields are updated.
  591. //
  592. // The following fields are modifiable:
  593. // * For entries with type `DATA_STREAM`:
  594. // * `schema`
  595. // * For entries with type `FILESET`
  596. // * `schema`
  597. // * `display_name`
  598. // * `description`
  599. // * `gcs_fileset_spec`
  600. // * `gcs_fileset_spec.file_patterns`
  601. // * For entries with `user_specified_type`
  602. // * `schema`
  603. // * `display_name`
  604. // * `description`
  605. // * user_specified_type
  606. // * user_specified_system
  607. // * linked_resource
  608. // * source_system_timestamps
  609. google.protobuf.FieldMask update_mask = 2;
  610. }
  611. // Request message for
  612. // [DeleteEntry][google.cloud.datacatalog.v1beta1.DataCatalog.DeleteEntry].
  613. message DeleteEntryRequest {
  614. // Required. The name of the entry. Example:
  615. //
  616. // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
  617. string name = 1 [
  618. (google.api.field_behavior) = REQUIRED,
  619. (google.api.resource_reference) = {
  620. type: "datacatalog.googleapis.com/Entry"
  621. }
  622. ];
  623. }
  624. // Request message for
  625. // [GetEntry][google.cloud.datacatalog.v1beta1.DataCatalog.GetEntry].
  626. message GetEntryRequest {
  627. // Required. The name of the entry. Example:
  628. //
  629. // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
  630. string name = 1 [
  631. (google.api.field_behavior) = REQUIRED,
  632. (google.api.resource_reference) = {
  633. type: "datacatalog.googleapis.com/Entry"
  634. }
  635. ];
  636. }
  637. // Request message for
  638. // [LookupEntry][google.cloud.datacatalog.v1beta1.DataCatalog.LookupEntry].
  639. message LookupEntryRequest {
  640. // Required. Represents either the Google Cloud Platform resource or SQL name
  641. // for a Google Cloud Platform resource.
  642. oneof target_name {
  643. // The full name of the Google Cloud Platform resource the Data Catalog
  644. // entry represents. See:
  645. // https://cloud.google.com/apis/design/resource_names#full_resource_name.
  646. // Full names are case-sensitive.
  647. //
  648. // Examples:
  649. //
  650. // * //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
  651. // * //pubsub.googleapis.com/projects/projectId/topics/topicId
  652. string linked_resource = 1;
  653. // The SQL name of the entry. SQL names are case-sensitive.
  654. //
  655. // Examples:
  656. //
  657. // * `pubsub.project_id.topic_id`
  658. // * ``pubsub.project_id.`topic.id.with.dots` ``
  659. // * `bigquery.table.project_id.dataset_id.table_id`
  660. // * `bigquery.dataset.project_id.dataset_id`
  661. // * `datacatalog.entry.project_id.location_id.entry_group_id.entry_id`
  662. //
  663. // `*_id`s shoud satisfy the standard SQL rules for identifiers.
  664. // https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical.
  665. string sql_resource = 3;
  666. }
  667. }
  668. // Entry Metadata.
  669. // A Data Catalog Entry resource represents another resource in Google
  670. // Cloud Platform (such as a BigQuery dataset or a Pub/Sub topic), or
  671. // outside of Google Cloud Platform. Clients can use the `linked_resource` field
  672. // in the Entry resource to refer to the original resource ID of the source
  673. // system.
  674. //
  675. // An Entry resource contains resource details, such as its schema. An Entry can
  676. // also be used to attach flexible metadata, such as a
  677. // [Tag][google.cloud.datacatalog.v1beta1.Tag].
  678. message Entry {
  679. option (google.api.resource) = {
  680. type: "datacatalog.googleapis.com/Entry"
  681. pattern: "projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}"
  682. };
  683. // The Data Catalog resource name of the entry in URL format. Example:
  684. //
  685. // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
  686. //
  687. // Note that this Entry and its child resources may not actually be stored in
  688. // the location in this name.
  689. string name = 1 [(google.api.resource_reference) = {
  690. type: "datacatalog.googleapis.com/EntryGroup"
  691. }];
  692. // The resource this metadata entry refers to.
  693. //
  694. // For Google Cloud Platform resources, `linked_resource` is the [full name of
  695. // the
  696. // resource](https://cloud.google.com/apis/design/resource_names#full_resource_name).
  697. // For example, the `linked_resource` for a table resource from BigQuery is:
  698. //
  699. // * //bigquery.googleapis.com/projects/projectId/datasets/datasetId/tables/tableId
  700. //
  701. // Output only when Entry is of type in the EntryType enum. For entries with
  702. // user_specified_type, this field is optional and defaults to an empty
  703. // string.
  704. string linked_resource = 9;
  705. // Required. Entry type.
  706. oneof entry_type {
  707. // The type of the entry.
  708. // Only used for Entries with types in the EntryType enum.
  709. EntryType type = 2;
  710. // Entry type if it does not fit any of the input-allowed values listed in
  711. // `EntryType` enum above. When creating an entry, users should check the
  712. // enum values first, if nothing matches the entry to be created, then
  713. // provide a custom value, for example "my_special_type".
  714. // `user_specified_type` strings must begin with a letter or underscore and
  715. // can only contain letters, numbers, and underscores; are case insensitive;
  716. // must be at least 1 character and at most 64 characters long.
  717. //
  718. // Currently, only FILESET enum value is allowed. All other entries created
  719. // through Data Catalog must use `user_specified_type`.
  720. string user_specified_type = 16;
  721. }
  722. // The source system of the entry.
  723. oneof system {
  724. // Output only. This field indicates the entry's source system that Data Catalog
  725. // integrates with, such as BigQuery or Pub/Sub.
  726. IntegratedSystem integrated_system = 17 [(google.api.field_behavior) = OUTPUT_ONLY];
  727. // This field indicates the entry's source system that Data Catalog does not
  728. // integrate with. `user_specified_system` strings must begin with a letter
  729. // or underscore and can only contain letters, numbers, and underscores; are
  730. // case insensitive; must be at least 1 character and at most 64 characters
  731. // long.
  732. string user_specified_system = 18;
  733. }
  734. // Type specification information.
  735. oneof type_spec {
  736. // Specification that applies to a Cloud Storage fileset. This is only valid
  737. // on entries of type FILESET.
  738. GcsFilesetSpec gcs_fileset_spec = 6;
  739. // Specification that applies to a BigQuery table. This is only valid on
  740. // entries of type `TABLE`.
  741. BigQueryTableSpec bigquery_table_spec = 12;
  742. // Specification for a group of BigQuery tables with name pattern
  743. // `[prefix]YYYYMMDD`. Context:
  744. // https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding.
  745. BigQueryDateShardedSpec bigquery_date_sharded_spec = 15;
  746. }
  747. // Display information such as title and description. A short name to identify
  748. // the entry, for example, "Analytics Data - Jan 2011". Default value is an
  749. // empty string.
  750. string display_name = 3;
  751. // Entry description, which can consist of several sentences or paragraphs
  752. // that describe entry contents. Default value is an empty string.
  753. string description = 4;
  754. // Schema of the entry. An entry might not have any schema attached to it.
  755. Schema schema = 5;
  756. // Output only. Timestamps about the underlying resource, not about this Data Catalog
  757. // entry. Output only when Entry is of type in the EntryType enum. For entries
  758. // with user_specified_type, this field is optional and defaults to an empty
  759. // timestamp.
  760. SystemTimestamps source_system_timestamps = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
  761. }
  762. // EntryGroup Metadata.
  763. // An EntryGroup resource represents a logical grouping of zero or more
  764. // Data Catalog [Entry][google.cloud.datacatalog.v1beta1.Entry] resources.
  765. message EntryGroup {
  766. option (google.api.resource) = {
  767. type: "datacatalog.googleapis.com/EntryGroup"
  768. pattern: "projects/{project}/locations/{location}/entryGroups/{entry_group}"
  769. };
  770. // The resource name of the entry group in URL format. Example:
  771. //
  772. // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
  773. //
  774. // Note that this EntryGroup and its child resources may not actually be
  775. // stored in the location in this name.
  776. string name = 1;
  777. // A short name to identify the entry group, for example,
  778. // "analytics data - jan 2011". Default value is an empty string.
  779. string display_name = 2;
  780. // Entry group description, which can consist of several sentences or
  781. // paragraphs that describe entry group contents. Default value is an empty
  782. // string.
  783. string description = 3;
  784. // Output only. Timestamps about this EntryGroup. Default value is empty timestamps.
  785. SystemTimestamps data_catalog_timestamps = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
  786. }
  787. // Request message for
  788. // [CreateTagTemplate][google.cloud.datacatalog.v1beta1.DataCatalog.CreateTagTemplate].
  789. message CreateTagTemplateRequest {
  790. // Required. The name of the project and the template location
  791. // [region](https://cloud.google.com/data-catalog/docs/concepts/regions.
  792. //
  793. // Example:
  794. //
  795. // * projects/{project_id}/locations/us-central1
  796. string parent = 1 [
  797. (google.api.field_behavior) = REQUIRED,
  798. (google.api.resource_reference) = {
  799. child_type: "datacatalog.googleapis.com/TagTemplate"
  800. }
  801. ];
  802. // Required. The id of the tag template to create.
  803. string tag_template_id = 3 [(google.api.field_behavior) = REQUIRED];
  804. // Required. The tag template to create.
  805. TagTemplate tag_template = 2 [(google.api.field_behavior) = REQUIRED];
  806. }
  807. // Request message for
  808. // [GetTagTemplate][google.cloud.datacatalog.v1beta1.DataCatalog.GetTagTemplate].
  809. message GetTagTemplateRequest {
  810. // Required. The name of the tag template. Example:
  811. //
  812. // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
  813. string name = 1 [
  814. (google.api.field_behavior) = REQUIRED,
  815. (google.api.resource_reference) = {
  816. type: "datacatalog.googleapis.com/TagTemplate"
  817. }
  818. ];
  819. }
  820. // Request message for
  821. // [UpdateTagTemplate][google.cloud.datacatalog.v1beta1.DataCatalog.UpdateTagTemplate].
  822. message UpdateTagTemplateRequest {
  823. // Required. The template to update. The "name" field must be set.
  824. TagTemplate tag_template = 1 [(google.api.field_behavior) = REQUIRED];
  825. // The field mask specifies the parts of the template to overwrite.
  826. //
  827. // Allowed fields:
  828. //
  829. // * `display_name`
  830. //
  831. // If absent or empty, all of the allowed fields above will be updated.
  832. google.protobuf.FieldMask update_mask = 2;
  833. }
  834. // Request message for
  835. // [DeleteTagTemplate][google.cloud.datacatalog.v1beta1.DataCatalog.DeleteTagTemplate].
  836. message DeleteTagTemplateRequest {
  837. // Required. The name of the tag template to delete. Example:
  838. //
  839. // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}
  840. string name = 1 [
  841. (google.api.field_behavior) = REQUIRED,
  842. (google.api.resource_reference) = {
  843. type: "datacatalog.googleapis.com/TagTemplate"
  844. }
  845. ];
  846. // Required. Currently, this field must always be set to `true`.
  847. // This confirms the deletion of any possible tags using this template.
  848. // `force = false` will be supported in the future.
  849. bool force = 2 [(google.api.field_behavior) = REQUIRED];
  850. }
  851. // Request message for
  852. // [CreateTag][google.cloud.datacatalog.v1beta1.DataCatalog.CreateTag].
  853. message CreateTagRequest {
  854. // Required. The name of the resource to attach this tag to. Tags can be attached to
  855. // Entries. Example:
  856. //
  857. // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
  858. //
  859. // Note that this Tag and its child resources may not actually be stored in
  860. // the location in this name.
  861. string parent = 1 [
  862. (google.api.field_behavior) = REQUIRED,
  863. (google.api.resource_reference) = {
  864. child_type: "datacatalog.googleapis.com/Tag"
  865. }
  866. ];
  867. // Required. The tag to create.
  868. Tag tag = 2 [(google.api.field_behavior) = REQUIRED];
  869. }
  870. // Request message for
  871. // [UpdateTag][google.cloud.datacatalog.v1beta1.DataCatalog.UpdateTag].
  872. message UpdateTagRequest {
  873. // Required. The updated tag. The "name" field must be set.
  874. Tag tag = 1 [(google.api.field_behavior) = REQUIRED];
  875. // The fields to update on the Tag. If absent or empty, all modifiable fields
  876. // are updated. Currently the only modifiable field is the field `fields`.
  877. google.protobuf.FieldMask update_mask = 2;
  878. }
  879. // Request message for
  880. // [DeleteTag][google.cloud.datacatalog.v1beta1.DataCatalog.DeleteTag].
  881. message DeleteTagRequest {
  882. // Required. The name of the tag to delete. Example:
  883. //
  884. // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id}
  885. string name = 1 [
  886. (google.api.field_behavior) = REQUIRED,
  887. (google.api.resource_reference) = {
  888. child_type: "datacatalog.googleapis.com/Tag"
  889. }
  890. ];
  891. }
  892. // Request message for
  893. // [CreateTagTemplateField][google.cloud.datacatalog.v1beta1.DataCatalog.CreateTagTemplateField].
  894. message CreateTagTemplateFieldRequest {
  895. // Required. The name of the project and the template location
  896. // [region](https://cloud.google.com/data-catalog/docs/concepts/regions).
  897. //
  898. // Example:
  899. //
  900. // * projects/{project_id}/locations/us-central1/tagTemplates/{tag_template_id}
  901. string parent = 1 [
  902. (google.api.field_behavior) = REQUIRED,
  903. (google.api.resource_reference) = {
  904. type: "datacatalog.googleapis.com/TagTemplate"
  905. }
  906. ];
  907. // Required. The ID of the tag template field to create.
  908. // Field ids can contain letters (both uppercase and lowercase), numbers
  909. // (0-9), underscores (_) and dashes (-). Field IDs must be at least 1
  910. // character long and at most 128 characters long. Field IDs must also be
  911. // unique within their template.
  912. string tag_template_field_id = 2 [(google.api.field_behavior) = REQUIRED];
  913. // Required. The tag template field to create.
  914. TagTemplateField tag_template_field = 3 [(google.api.field_behavior) = REQUIRED];
  915. }
  916. // Request message for
  917. // [UpdateTagTemplateField][google.cloud.datacatalog.v1beta1.DataCatalog.UpdateTagTemplateField].
  918. message UpdateTagTemplateFieldRequest {
  919. // Required. The name of the tag template field. Example:
  920. //
  921. // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
  922. string name = 1 [
  923. (google.api.field_behavior) = REQUIRED,
  924. (google.api.resource_reference) = {
  925. type: "datacatalog.googleapis.com/TagTemplateField"
  926. }
  927. ];
  928. // Required. The template to update.
  929. TagTemplateField tag_template_field = 2 [(google.api.field_behavior) = REQUIRED];
  930. // Optional. The field mask specifies the parts of the template to be updated.
  931. // Allowed fields:
  932. //
  933. // * `display_name`
  934. // * `type.enum_type`
  935. // * `is_required`
  936. //
  937. // If `update_mask` is not set or empty, all of the allowed fields above will
  938. // be updated.
  939. //
  940. // When updating an enum type, the provided values will be merged with the
  941. // existing values. Therefore, enum values can only be added, existing enum
  942. // values cannot be deleted nor renamed. Updating a template field from
  943. // optional to required is NOT allowed.
  944. google.protobuf.FieldMask update_mask = 3 [(google.api.field_behavior) = OPTIONAL];
  945. }
  946. // Request message for
  947. // [RenameTagTemplateField][google.cloud.datacatalog.v1beta1.DataCatalog.RenameTagTemplateField].
  948. message RenameTagTemplateFieldRequest {
  949. // Required. The name of the tag template. Example:
  950. //
  951. // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
  952. string name = 1 [
  953. (google.api.field_behavior) = REQUIRED,
  954. (google.api.resource_reference) = {
  955. type: "datacatalog.googleapis.com/TagTemplateField"
  956. }
  957. ];
  958. // Required. The new ID of this tag template field. For example, `my_new_field`.
  959. string new_tag_template_field_id = 2 [(google.api.field_behavior) = REQUIRED];
  960. }
  961. // Request message for
  962. // [DeleteTagTemplateField][google.cloud.datacatalog.v1beta1.DataCatalog.DeleteTagTemplateField].
  963. message DeleteTagTemplateFieldRequest {
  964. // Required. The name of the tag template field to delete. Example:
  965. //
  966. // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id}/fields/{tag_template_field_id}
  967. string name = 1 [
  968. (google.api.field_behavior) = REQUIRED,
  969. (google.api.resource_reference) = {
  970. type: "datacatalog.googleapis.com/TagTemplateField"
  971. }
  972. ];
  973. // Required. Currently, this field must always be set to `true`.
  974. // This confirms the deletion of this field from any tags using this field.
  975. // `force = false` will be supported in the future.
  976. bool force = 2 [(google.api.field_behavior) = REQUIRED];
  977. }
  978. // Request message for
  979. // [ListTags][google.cloud.datacatalog.v1beta1.DataCatalog.ListTags].
  980. message ListTagsRequest {
  981. // Required. The name of the Data Catalog resource to list the tags of. The resource
  982. // could be an [Entry][google.cloud.datacatalog.v1beta1.Entry] or an
  983. // [EntryGroup][google.cloud.datacatalog.v1beta1.EntryGroup].
  984. //
  985. // Examples:
  986. //
  987. // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
  988. // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id}
  989. string parent = 1 [
  990. (google.api.field_behavior) = REQUIRED,
  991. (google.api.resource_reference) = {
  992. child_type: "datacatalog.googleapis.com/Tag"
  993. }
  994. ];
  995. // The maximum number of tags to return. Default is 10. Max limit is 1000.
  996. int32 page_size = 2;
  997. // Token that specifies which page is requested. If empty, the first page is
  998. // returned.
  999. string page_token = 3;
  1000. }
  1001. // Response message for
  1002. // [ListTags][google.cloud.datacatalog.v1beta1.DataCatalog.ListTags].
  1003. message ListTagsResponse {
  1004. // [Tag][google.cloud.datacatalog.v1beta1.Tag] details.
  1005. repeated Tag tags = 1;
  1006. // Token to retrieve the next page of results. It is set to empty if no items
  1007. // remain in results.
  1008. string next_page_token = 2;
  1009. }
  1010. // Request message for
  1011. // [ListEntries][google.cloud.datacatalog.v1beta1.DataCatalog.ListEntries].
  1012. message ListEntriesRequest {
  1013. // Required. The name of the entry group that contains the entries, which can
  1014. // be provided in URL format. Example:
  1015. //
  1016. // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}
  1017. string parent = 1 [
  1018. (google.api.field_behavior) = REQUIRED,
  1019. (google.api.resource_reference) = {
  1020. type: "datacatalog.googleapis.com/EntryGroup"
  1021. }
  1022. ];
  1023. // The maximum number of items to return. Default is 10. Max limit is 1000.
  1024. // Throws an invalid argument for `page_size > 1000`.
  1025. int32 page_size = 2;
  1026. // Token that specifies which page is requested. If empty, the first page is
  1027. // returned.
  1028. string page_token = 3;
  1029. // The fields to return for each Entry. If not set or empty, all
  1030. // fields are returned.
  1031. // For example, setting read_mask to contain only one path "name" will cause
  1032. // ListEntries to return a list of Entries with only "name" field.
  1033. google.protobuf.FieldMask read_mask = 4;
  1034. }
  1035. // Response message for
  1036. // [ListEntries][google.cloud.datacatalog.v1beta1.DataCatalog.ListEntries].
  1037. message ListEntriesResponse {
  1038. // Entry details.
  1039. repeated Entry entries = 1;
  1040. // Token to retrieve the next page of results. It is set to empty if no items
  1041. // remain in results.
  1042. string next_page_token = 2;
  1043. }
  1044. // Entry resources in Data Catalog can be of different types e.g. a BigQuery
  1045. // Table entry is of type `TABLE`. This enum describes all the possible types
  1046. // Data Catalog contains.
  1047. enum EntryType {
  1048. // Default unknown type.
  1049. ENTRY_TYPE_UNSPECIFIED = 0;
  1050. // Output only. The type of entry that has a GoogleSQL schema, including
  1051. // logical views.
  1052. TABLE = 2;
  1053. // Output only. The type of models.
  1054. // https://cloud.google.com/bigquery-ml/docs/bigqueryml-intro
  1055. MODEL = 5;
  1056. // Output only. An entry type which is used for streaming entries. Example:
  1057. // Pub/Sub topic.
  1058. DATA_STREAM = 3;
  1059. // An entry type which is a set of files or objects. Example:
  1060. // Cloud Storage fileset.
  1061. FILESET = 4;
  1062. }