datacatalog.proto 61 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710
  1. // Copyright 2022 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.v1;
  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/v1/bigquery.proto";
  21. import "google/cloud/datacatalog/v1/common.proto";
  22. import "google/cloud/datacatalog/v1/data_source.proto";
  23. import "google/cloud/datacatalog/v1/dataplex_spec.proto";
  24. import "google/cloud/datacatalog/v1/gcs_fileset_spec.proto";
  25. import "google/cloud/datacatalog/v1/schema.proto";
  26. import "google/cloud/datacatalog/v1/search.proto";
  27. import "google/cloud/datacatalog/v1/table_spec.proto";
  28. import "google/cloud/datacatalog/v1/tags.proto";
  29. import "google/cloud/datacatalog/v1/timestamps.proto";
  30. import "google/cloud/datacatalog/v1/usage.proto";
  31. import "google/iam/v1/iam_policy.proto";
  32. import "google/iam/v1/policy.proto";
  33. import "google/protobuf/empty.proto";
  34. import "google/protobuf/field_mask.proto";
  35. option cc_enable_arenas = true;
  36. option csharp_namespace = "Google.Cloud.DataCatalog.V1";
  37. option go_package = "google.golang.org/genproto/googleapis/cloud/datacatalog/v1;datacatalog";
  38. option java_multiple_files = true;
  39. option java_package = "com.google.cloud.datacatalog.v1";
  40. option php_namespace = "Google\\Cloud\\DataCatalog\\V1";
  41. option ruby_package = "Google::Cloud::DataCatalog::V1";
  42. option (google.api.resource_definition) = {
  43. type: "datacatalog.googleapis.com/TagTemplateFieldEnumValue"
  44. pattern: "projects/{project}/locations/{location}/tagTemplates/{tag_template}/fields/{tag_template_field_id}/enumValues/{enum_value_display_name}"
  45. };
  46. // Data Catalog API service allows you to discover, understand, and manage
  47. // your data.
  48. service DataCatalog {
  49. option (google.api.default_host) = "datacatalog.googleapis.com";
  50. option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
  51. // Searches Data Catalog for multiple resources like entries and tags that
  52. // match a query.
  53. //
  54. // This is a [Custom Method]
  55. // (https://cloud.google.com/apis/design/custom_methods) that doesn't return
  56. // all information on a resource, only its ID and high level fields. To get
  57. // more information, you can subsequently call specific get methods.
  58. //
  59. // Note: Data Catalog search queries don't guarantee full recall. Results
  60. // that match your query might not be returned, even in subsequent
  61. // result pages. Additionally, returned (and not returned) results can vary
  62. // if you repeat search queries.
  63. //
  64. // For more information, see [Data Catalog search syntax]
  65. // (https://cloud.google.com/data-catalog/docs/how-to/search-reference).
  66. rpc SearchCatalog(SearchCatalogRequest) returns (SearchCatalogResponse) {
  67. option (google.api.http) = {
  68. post: "/v1/catalog:search"
  69. body: "*"
  70. };
  71. option (google.api.method_signature) = "scope,query";
  72. }
  73. // Creates an entry group.
  74. //
  75. // An entry group contains logically related entries together with [Cloud
  76. // Identity and Access Management](/data-catalog/docs/concepts/iam) policies.
  77. // These policies specify users who can create, edit, and view entries
  78. // within entry groups.
  79. //
  80. // Data Catalog automatically creates entry groups with names that start with
  81. // the `@` symbol for the following resources:
  82. //
  83. // * BigQuery entries (`@bigquery`)
  84. // * Pub/Sub topics (`@pubsub`)
  85. // * Dataproc Metastore services (`@dataproc_metastore_{SERVICE_NAME_HASH}`)
  86. //
  87. // You can create your own entry groups for Cloud Storage fileset entries
  88. // and custom entries together with the corresponding IAM policies.
  89. // User-created entry groups can't contain the `@` symbol, it is reserved
  90. // for automatically created groups.
  91. //
  92. // Entry groups, like entries, can be searched.
  93. //
  94. // A maximum of 10,000 entry groups may be created per organization across all
  95. // locations.
  96. //
  97. // You must enable the Data Catalog API in the project identified by
  98. // the `parent` parameter. For more information, see [Data Catalog resource
  99. // project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
  100. rpc CreateEntryGroup(CreateEntryGroupRequest) returns (EntryGroup) {
  101. option (google.api.http) = {
  102. post: "/v1/{parent=projects/*/locations/*}/entryGroups"
  103. body: "entry_group"
  104. };
  105. option (google.api.method_signature) = "parent,entry_group_id,entry_group";
  106. }
  107. // Gets an entry group.
  108. rpc GetEntryGroup(GetEntryGroupRequest) returns (EntryGroup) {
  109. option (google.api.http) = {
  110. get: "/v1/{name=projects/*/locations/*/entryGroups/*}"
  111. };
  112. option (google.api.method_signature) = "name";
  113. option (google.api.method_signature) = "name,read_mask";
  114. }
  115. // Updates an entry group.
  116. //
  117. // You must enable the Data Catalog API in the project identified by
  118. // the `entry_group.name` parameter. For more information, see [Data Catalog
  119. // resource
  120. // project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
  121. rpc UpdateEntryGroup(UpdateEntryGroupRequest) returns (EntryGroup) {
  122. option (google.api.http) = {
  123. patch: "/v1/{entry_group.name=projects/*/locations/*/entryGroups/*}"
  124. body: "entry_group"
  125. };
  126. option (google.api.method_signature) = "entry_group";
  127. option (google.api.method_signature) = "entry_group,update_mask";
  128. }
  129. // Deletes an entry group.
  130. //
  131. // You must enable the Data Catalog API in the project
  132. // identified by the `name` parameter. For more information, see [Data Catalog
  133. // resource
  134. // project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
  135. rpc DeleteEntryGroup(DeleteEntryGroupRequest) returns (google.protobuf.Empty) {
  136. option (google.api.http) = {
  137. delete: "/v1/{name=projects/*/locations/*/entryGroups/*}"
  138. };
  139. option (google.api.method_signature) = "name";
  140. }
  141. // Lists entry groups.
  142. rpc ListEntryGroups(ListEntryGroupsRequest) returns (ListEntryGroupsResponse) {
  143. option (google.api.http) = {
  144. get: "/v1/{parent=projects/*/locations/*}/entryGroups"
  145. };
  146. option (google.api.method_signature) = "parent";
  147. }
  148. // Creates an entry.
  149. //
  150. // You can create entries only with 'FILESET', 'CLUSTER', 'DATA_STREAM',
  151. // or custom types. Data Catalog automatically creates entries with other
  152. // types during metadata ingestion from integrated systems.
  153. //
  154. // You must enable the Data Catalog API in the project identified by
  155. // the `parent` parameter. For more information, see [Data Catalog resource
  156. // project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
  157. //
  158. // An entry group can have a maximum of 100,000 entries.
  159. rpc CreateEntry(CreateEntryRequest) returns (Entry) {
  160. option (google.api.http) = {
  161. post: "/v1/{parent=projects/*/locations/*/entryGroups/*}/entries"
  162. body: "entry"
  163. };
  164. option (google.api.method_signature) = "parent,entry_id,entry";
  165. }
  166. // Updates an existing entry.
  167. //
  168. // You must enable the Data Catalog API in the project identified by
  169. // the `entry.name` parameter. For more information, see [Data Catalog
  170. // resource
  171. // project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
  172. rpc UpdateEntry(UpdateEntryRequest) returns (Entry) {
  173. option (google.api.http) = {
  174. patch: "/v1/{entry.name=projects/*/locations/*/entryGroups/*/entries/*}"
  175. body: "entry"
  176. };
  177. option (google.api.method_signature) = "entry";
  178. option (google.api.method_signature) = "entry,update_mask";
  179. }
  180. // Deletes an existing entry.
  181. //
  182. // You can delete only the entries created by the
  183. // [CreateEntry][google.cloud.datacatalog.v1.DataCatalog.CreateEntry]
  184. // method.
  185. //
  186. // You must enable the Data Catalog API in the project identified by
  187. // the `name` parameter. For more information, see [Data Catalog
  188. // resource
  189. // project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
  190. rpc DeleteEntry(DeleteEntryRequest) returns (google.protobuf.Empty) {
  191. option (google.api.http) = {
  192. delete: "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}"
  193. };
  194. option (google.api.method_signature) = "name";
  195. }
  196. // Gets an entry.
  197. rpc GetEntry(GetEntryRequest) returns (Entry) {
  198. option (google.api.http) = {
  199. get: "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}"
  200. };
  201. option (google.api.method_signature) = "name";
  202. }
  203. // Gets an entry by its target resource name.
  204. //
  205. // The resource name comes from the source Google Cloud Platform service.
  206. rpc LookupEntry(LookupEntryRequest) returns (Entry) {
  207. option (google.api.http) = {
  208. get: "/v1/entries:lookup"
  209. };
  210. }
  211. // Lists entries.
  212. //
  213. // Note: Currently, this method can list only custom entries.
  214. // To get a list of both custom and automatically created entries, use
  215. // [SearchCatalog][google.cloud.datacatalog.v1.DataCatalog.SearchCatalog].
  216. rpc ListEntries(ListEntriesRequest) returns (ListEntriesResponse) {
  217. option (google.api.http) = {
  218. get: "/v1/{parent=projects/*/locations/*/entryGroups/*}/entries"
  219. };
  220. option (google.api.method_signature) = "parent";
  221. }
  222. // Modifies entry overview, part of the business context of an
  223. // [Entry][google.cloud.datacatalog.v1.Entry].
  224. //
  225. // To call this method, you must have the `datacatalog.entries.updateOverview`
  226. // IAM permission on the corresponding project.
  227. rpc ModifyEntryOverview(ModifyEntryOverviewRequest) returns (EntryOverview) {
  228. option (google.api.http) = {
  229. post: "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}:modifyEntryOverview"
  230. body: "*"
  231. };
  232. }
  233. // Modifies contacts, part of the business context of an
  234. // [Entry][google.cloud.datacatalog.v1.Entry].
  235. //
  236. // To call this method, you must have the `datacatalog.entries.updateContacts`
  237. // IAM permission on the corresponding project.
  238. rpc ModifyEntryContacts(ModifyEntryContactsRequest) returns (Contacts) {
  239. option (google.api.http) = {
  240. post: "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}:modifyEntryContacts"
  241. body: "*"
  242. };
  243. }
  244. // Creates a tag template.
  245. //
  246. // You must enable the Data Catalog API in the project identified by the
  247. // `parent` parameter.
  248. // For more information, see [Data Catalog resource project]
  249. // (https://cloud.google.com/data-catalog/docs/concepts/resource-project).
  250. rpc CreateTagTemplate(CreateTagTemplateRequest) returns (TagTemplate) {
  251. option (google.api.http) = {
  252. post: "/v1/{parent=projects/*/locations/*}/tagTemplates"
  253. body: "tag_template"
  254. };
  255. option (google.api.method_signature) = "parent,tag_template_id,tag_template";
  256. }
  257. // Gets a tag template.
  258. rpc GetTagTemplate(GetTagTemplateRequest) returns (TagTemplate) {
  259. option (google.api.http) = {
  260. get: "/v1/{name=projects/*/locations/*/tagTemplates/*}"
  261. };
  262. option (google.api.method_signature) = "name";
  263. }
  264. // Updates a tag template.
  265. //
  266. // You can't update template fields with this method. These fields are
  267. // separate resources with their own create, update, and delete methods.
  268. //
  269. // You must enable the Data Catalog API in the project identified by
  270. // the `tag_template.name` parameter. For more information, see [Data Catalog
  271. // resource
  272. // project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
  273. rpc UpdateTagTemplate(UpdateTagTemplateRequest) returns (TagTemplate) {
  274. option (google.api.http) = {
  275. patch: "/v1/{tag_template.name=projects/*/locations/*/tagTemplates/*}"
  276. body: "tag_template"
  277. };
  278. option (google.api.method_signature) = "tag_template";
  279. option (google.api.method_signature) = "tag_template,update_mask";
  280. }
  281. // Deletes a tag template and all tags that use it.
  282. //
  283. // You must enable the Data Catalog API in the project identified by
  284. // the `name` parameter. For more information, see [Data Catalog resource
  285. // project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
  286. rpc DeleteTagTemplate(DeleteTagTemplateRequest) returns (google.protobuf.Empty) {
  287. option (google.api.http) = {
  288. delete: "/v1/{name=projects/*/locations/*/tagTemplates/*}"
  289. };
  290. option (google.api.method_signature) = "name,force";
  291. }
  292. // Creates a field in a tag template.
  293. //
  294. // You must enable the Data Catalog API in the project identified by
  295. // the `parent` parameter. For more information, see [Data Catalog resource
  296. // project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
  297. rpc CreateTagTemplateField(CreateTagTemplateFieldRequest) returns (TagTemplateField) {
  298. option (google.api.http) = {
  299. post: "/v1/{parent=projects/*/locations/*/tagTemplates/*}/fields"
  300. body: "tag_template_field"
  301. };
  302. option (google.api.method_signature) = "parent,tag_template_field_id,tag_template_field";
  303. }
  304. // Updates a field in a tag template.
  305. //
  306. // You can't update the field type with this method.
  307. //
  308. // You must enable the Data Catalog API in the project
  309. // identified by the `name` parameter. For more information, see [Data Catalog
  310. // resource
  311. // project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
  312. rpc UpdateTagTemplateField(UpdateTagTemplateFieldRequest) returns (TagTemplateField) {
  313. option (google.api.http) = {
  314. patch: "/v1/{name=projects/*/locations/*/tagTemplates/*/fields/*}"
  315. body: "tag_template_field"
  316. };
  317. option (google.api.method_signature) = "name,tag_template_field";
  318. option (google.api.method_signature) = "name,tag_template_field,update_mask";
  319. }
  320. // Renames a field in a tag template.
  321. //
  322. // You must enable the Data Catalog API in the project identified by the
  323. // `name` parameter. For more information, see [Data Catalog resource project]
  324. // (https://cloud.google.com/data-catalog/docs/concepts/resource-project).
  325. rpc RenameTagTemplateField(RenameTagTemplateFieldRequest) returns (TagTemplateField) {
  326. option (google.api.http) = {
  327. post: "/v1/{name=projects/*/locations/*/tagTemplates/*/fields/*}:rename"
  328. body: "*"
  329. };
  330. option (google.api.method_signature) = "name,new_tag_template_field_id";
  331. }
  332. // Renames an enum value in a tag template.
  333. //
  334. // Within a single enum field, enum values must be unique.
  335. rpc RenameTagTemplateFieldEnumValue(RenameTagTemplateFieldEnumValueRequest) returns (TagTemplateField) {
  336. option (google.api.http) = {
  337. post: "/v1/{name=projects/*/locations/*/tagTemplates/*/fields/*/enumValues/*}:rename"
  338. body: "*"
  339. };
  340. option (google.api.method_signature) = "name,new_enum_value_display_name";
  341. }
  342. // Deletes a field in a tag template and all uses of this field from the tags
  343. // based on this template.
  344. //
  345. // You must enable the Data Catalog API in the project identified by
  346. // the `name` parameter. For more information, see [Data Catalog resource
  347. // project](https://cloud.google.com/data-catalog/docs/concepts/resource-project).
  348. rpc DeleteTagTemplateField(DeleteTagTemplateFieldRequest) returns (google.protobuf.Empty) {
  349. option (google.api.http) = {
  350. delete: "/v1/{name=projects/*/locations/*/tagTemplates/*/fields/*}"
  351. };
  352. option (google.api.method_signature) = "name,force";
  353. }
  354. // Creates a tag and assigns it to:
  355. //
  356. // * An [Entry][google.cloud.datacatalog.v1.Entry] if the method name is
  357. // `projects.locations.entryGroups.entries.tags.create`.
  358. // * Or [EntryGroup][google.cloud.datacatalog.v1.EntryGroup]if the method
  359. // name is `projects.locations.entryGroups.tags.create`.
  360. //
  361. // Note: The project identified by the `parent` parameter for the [tag]
  362. // (https://cloud.google.com/data-catalog/docs/reference/rest/v1/projects.locations.entryGroups.entries.tags/create#path-parameters)
  363. // and the [tag template]
  364. // (https://cloud.google.com/data-catalog/docs/reference/rest/v1/projects.locations.tagTemplates/create#path-parameters)
  365. // used to create the tag must be in the same organization.
  366. rpc CreateTag(CreateTagRequest) returns (Tag) {
  367. option (google.api.http) = {
  368. post: "/v1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags"
  369. body: "tag"
  370. additional_bindings {
  371. post: "/v1/{parent=projects/*/locations/*/entryGroups/*}/tags"
  372. body: "tag"
  373. }
  374. };
  375. option (google.api.method_signature) = "parent,tag";
  376. }
  377. // Updates an existing tag.
  378. rpc UpdateTag(UpdateTagRequest) returns (Tag) {
  379. option (google.api.http) = {
  380. patch: "/v1/{tag.name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}"
  381. body: "tag"
  382. additional_bindings {
  383. patch: "/v1/{tag.name=projects/*/locations/*/entryGroups/*/tags/*}"
  384. body: "tag"
  385. }
  386. };
  387. option (google.api.method_signature) = "tag";
  388. option (google.api.method_signature) = "tag,update_mask";
  389. }
  390. // Deletes a tag.
  391. rpc DeleteTag(DeleteTagRequest) returns (google.protobuf.Empty) {
  392. option (google.api.http) = {
  393. delete: "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*/tags/*}"
  394. additional_bindings {
  395. delete: "/v1/{name=projects/*/locations/*/entryGroups/*/tags/*}"
  396. }
  397. };
  398. option (google.api.method_signature) = "name";
  399. }
  400. // Lists tags assigned to an [Entry][google.cloud.datacatalog.v1.Entry].
  401. // The [columns][google.cloud.datacatalog.v1.Tag.column] in the response are
  402. // lowercased.
  403. rpc ListTags(ListTagsRequest) returns (ListTagsResponse) {
  404. option (google.api.http) = {
  405. get: "/v1/{parent=projects/*/locations/*/entryGroups/*/entries/*}/tags"
  406. additional_bindings {
  407. get: "/v1/{parent=projects/*/locations/*/entryGroups/*}/tags"
  408. }
  409. };
  410. option (google.api.method_signature) = "parent";
  411. }
  412. // Marks an [Entry][google.cloud.datacatalog.v1.Entry] as starred by
  413. // the current user. Starring information is private to each user.
  414. rpc StarEntry(StarEntryRequest) returns (StarEntryResponse) {
  415. option (google.api.http) = {
  416. post: "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}:star"
  417. body: "*"
  418. };
  419. option (google.api.method_signature) = "name";
  420. }
  421. // Marks an [Entry][google.cloud.datacatalog.v1.Entry] as NOT starred by
  422. // the current user. Starring information is private to each user.
  423. rpc UnstarEntry(UnstarEntryRequest) returns (UnstarEntryResponse) {
  424. option (google.api.http) = {
  425. post: "/v1/{name=projects/*/locations/*/entryGroups/*/entries/*}:unstar"
  426. body: "*"
  427. };
  428. option (google.api.method_signature) = "name";
  429. }
  430. // Sets an access control policy for a resource. Replaces any existing
  431. // policy.
  432. //
  433. // Supported resources are:
  434. //
  435. // - Tag templates
  436. // - Entry groups
  437. //
  438. // Note: This method sets policies only within Data Catalog and can't be
  439. // used to manage policies in BigQuery, Pub/Sub, Dataproc Metastore, and any
  440. // external Google Cloud Platform resources synced with the Data Catalog.
  441. //
  442. // To call this method, you must have the following Google IAM permissions:
  443. //
  444. // - `datacatalog.tagTemplates.setIamPolicy` to set policies on tag
  445. // templates.
  446. // - `datacatalog.entryGroups.setIamPolicy` to set policies on entry groups.
  447. rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) returns (google.iam.v1.Policy) {
  448. option (google.api.http) = {
  449. post: "/v1/{resource=projects/*/locations/*/tagTemplates/*}:setIamPolicy"
  450. body: "*"
  451. additional_bindings {
  452. post: "/v1/{resource=projects/*/locations/*/entryGroups/*}:setIamPolicy"
  453. body: "*"
  454. }
  455. };
  456. option (google.api.method_signature) = "resource,policy";
  457. }
  458. // Gets the access control policy for a resource.
  459. //
  460. // May return:
  461. //
  462. // * A`NOT_FOUND` error if the resource doesn't exist or you don't have the
  463. // permission to view it.
  464. // * An empty policy if the resource exists but doesn't have a set policy.
  465. //
  466. // Supported resources are:
  467. //
  468. // - Tag templates
  469. // - Entry groups
  470. //
  471. // Note: This method doesn't get policies from Google Cloud Platform
  472. // resources ingested into Data Catalog.
  473. //
  474. // To call this method, you must have the following Google IAM permissions:
  475. //
  476. // - `datacatalog.tagTemplates.getIamPolicy` to get policies on tag
  477. // templates.
  478. // - `datacatalog.entryGroups.getIamPolicy` to get policies on entry groups.
  479. rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) returns (google.iam.v1.Policy) {
  480. option (google.api.http) = {
  481. post: "/v1/{resource=projects/*/locations/*/tagTemplates/*}:getIamPolicy"
  482. body: "*"
  483. additional_bindings {
  484. post: "/v1/{resource=projects/*/locations/*/entryGroups/*}:getIamPolicy"
  485. body: "*"
  486. }
  487. additional_bindings {
  488. post: "/v1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:getIamPolicy"
  489. body: "*"
  490. }
  491. };
  492. option (google.api.method_signature) = "resource";
  493. }
  494. // Gets your permissions on a resource.
  495. //
  496. // Returns an empty set of permissions if the resource doesn't exist.
  497. //
  498. // Supported resources are:
  499. //
  500. // - Tag templates
  501. // - Entry groups
  502. //
  503. // Note: This method gets policies only within Data Catalog and can't be
  504. // used to get policies from BigQuery, Pub/Sub, Dataproc Metastore, and any
  505. // external Google Cloud Platform resources ingested into Data Catalog.
  506. //
  507. // No Google IAM permissions are required to call this method.
  508. rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) returns (google.iam.v1.TestIamPermissionsResponse) {
  509. option (google.api.http) = {
  510. post: "/v1/{resource=projects/*/locations/*/tagTemplates/*}:testIamPermissions"
  511. body: "*"
  512. additional_bindings {
  513. post: "/v1/{resource=projects/*/locations/*/entryGroups/*}:testIamPermissions"
  514. body: "*"
  515. }
  516. additional_bindings {
  517. post: "/v1/{resource=projects/*/locations/*/entryGroups/*/entries/*}:testIamPermissions"
  518. body: "*"
  519. }
  520. };
  521. }
  522. }
  523. // Request message for
  524. // [SearchCatalog][google.cloud.datacatalog.v1.DataCatalog.SearchCatalog].
  525. message SearchCatalogRequest {
  526. // The criteria that select the subspace used for query matching.
  527. message Scope {
  528. // The list of organization IDs to search within.
  529. //
  530. // To find your organization ID, follow the steps from
  531. // [Creating and managing organizations]
  532. // (/resource-manager/docs/creating-managing-organization).
  533. repeated string include_org_ids = 2;
  534. // The list of project IDs to search within.
  535. //
  536. // For more information on the distinction between project names, IDs, and
  537. // numbers, see [Projects](/docs/overview/#projects).
  538. repeated string include_project_ids = 3;
  539. // If `true`, include Google Cloud Platform (GCP) public datasets in
  540. // search results. By default, they are excluded.
  541. //
  542. // See [Google Cloud Public Datasets](/public-datasets) for more
  543. // information.
  544. bool include_gcp_public_datasets = 7;
  545. // Optional. The list of locations to search within. If empty, all locations are
  546. // searched.
  547. //
  548. // Returns an error if any location in the list isn't one of the [Supported
  549. // regions](https://cloud.google.com/data-catalog/docs/concepts/regions#supported_regions).
  550. //
  551. // If a location is unreachable, its name is returned in the
  552. // `SearchCatalogResponse.unreachable` field. To get additional information
  553. // on the error, repeat the search request and set the location name as the
  554. // value of this parameter.
  555. repeated string restricted_locations = 16 [(google.api.field_behavior) = OPTIONAL];
  556. // Optional. If `true`, search only among starred entries.
  557. //
  558. // By default, all results are returned, starred or not.
  559. bool starred_only = 18 [(google.api.field_behavior) = OPTIONAL];
  560. // Optional. This field is deprecated. The search mechanism for public and private tag
  561. // templates is the same.
  562. bool include_public_tag_templates = 19 [
  563. deprecated = true,
  564. (google.api.field_behavior) = OPTIONAL
  565. ];
  566. }
  567. // Required. The scope of this search request.
  568. //
  569. // The `scope` is invalid if `include_org_ids`, `include_project_ids` are
  570. // empty AND `include_gcp_public_datasets` is set to `false`. In this case,
  571. // the request returns an error.
  572. Scope scope = 6 [(google.api.field_behavior) = REQUIRED];
  573. // Optional. The query string with a minimum of 3 characters and specific syntax.
  574. // For more information, see
  575. // [Data Catalog search
  576. // syntax](https://cloud.google.com/data-catalog/docs/how-to/search-reference).
  577. //
  578. // An empty query string returns all data assets (in the specified scope)
  579. // that you have access to.
  580. //
  581. // A query string can be a simple `xyz` or qualified by predicates:
  582. //
  583. // * `name:x`
  584. // * `column:y`
  585. // * `description:z`
  586. string query = 1 [(google.api.field_behavior) = OPTIONAL];
  587. // Number of results to return in a single search page.
  588. //
  589. // Can't be negative or 0, defaults to 10 in this case.
  590. // The maximum number is 1000. If exceeded, throws an "invalid argument"
  591. // exception.
  592. int32 page_size = 2;
  593. // Optional. Pagination token that, if specified, returns the next page of search
  594. // results. If empty, returns the first page.
  595. //
  596. // This token is returned in the [SearchCatalogResponse.next_page_token][google.cloud.datacatalog.v1.SearchCatalogResponse.next_page_token]
  597. // field of the response to a previous
  598. // [SearchCatalogRequest][google.cloud.datacatalog.v1.DataCatalog.SearchCatalog]
  599. // call.
  600. string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
  601. // Specifies the order of results.
  602. //
  603. // Currently supported case-sensitive values are:
  604. //
  605. // * `relevance` that can only be descending
  606. // * `last_modified_timestamp [asc|desc]` with descending (`desc`) as default
  607. // * `default` that can only be descending
  608. //
  609. // If this parameter is omitted, it defaults to the descending `relevance`.
  610. string order_by = 5;
  611. }
  612. // Response message for
  613. // [SearchCatalog][google.cloud.datacatalog.v1.DataCatalog.SearchCatalog].
  614. message SearchCatalogResponse {
  615. // Search results.
  616. repeated SearchCatalogResult results = 1;
  617. // Pagination token that can be used in subsequent calls to retrieve the next
  618. // page of results.
  619. string next_page_token = 3;
  620. // Unreachable locations. Search results don't include data from those
  621. // locations.
  622. //
  623. // To get additional information on an error, repeat the search request and
  624. // restrict it to specific locations by setting the
  625. // `SearchCatalogRequest.scope.restricted_locations` parameter.
  626. repeated string unreachable = 6;
  627. }
  628. // Request message for
  629. // [CreateEntryGroup][google.cloud.datacatalog.v1.DataCatalog.CreateEntryGroup].
  630. message CreateEntryGroupRequest {
  631. // Required. The names of the project and location that the new entry group belongs to.
  632. //
  633. // Note: The entry group itself and its child resources might not be
  634. // stored in the location specified in its name.
  635. string parent = 1 [
  636. (google.api.field_behavior) = REQUIRED,
  637. (google.api.resource_reference) = {
  638. child_type: "datacatalog.googleapis.com/EntryGroup"
  639. }
  640. ];
  641. // Required. The ID of the entry group to create.
  642. //
  643. // The ID must contain only letters (a-z, A-Z), numbers (0-9),
  644. // underscores (_), and must start with a letter or underscore.
  645. // The maximum size is 64 bytes when encoded in UTF-8.
  646. string entry_group_id = 3 [(google.api.field_behavior) = REQUIRED];
  647. // The entry group to create. Defaults to empty.
  648. EntryGroup entry_group = 2;
  649. }
  650. // Request message for
  651. // [UpdateEntryGroup][google.cloud.datacatalog.v1.DataCatalog.UpdateEntryGroup].
  652. message UpdateEntryGroupRequest {
  653. // Required. Updates for the entry group. The `name` field must be set.
  654. EntryGroup entry_group = 1 [(google.api.field_behavior) = REQUIRED];
  655. // Names of fields whose values to overwrite on an entry group.
  656. //
  657. // If this parameter is absent or empty, all modifiable fields
  658. // are overwritten. If such fields are non-required and omitted in the
  659. // request body, their values are emptied.
  660. google.protobuf.FieldMask update_mask = 2;
  661. }
  662. // Request message for
  663. // [GetEntryGroup][google.cloud.datacatalog.v1.DataCatalog.GetEntryGroup].
  664. message GetEntryGroupRequest {
  665. // Required. The name of the entry group to get.
  666. string name = 1 [
  667. (google.api.field_behavior) = REQUIRED,
  668. (google.api.resource_reference) = {
  669. type: "datacatalog.googleapis.com/EntryGroup"
  670. }
  671. ];
  672. // The fields to return. If empty or omitted, all fields are returned.
  673. google.protobuf.FieldMask read_mask = 2;
  674. }
  675. // Request message for
  676. // [DeleteEntryGroup][google.cloud.datacatalog.v1.DataCatalog.DeleteEntryGroup].
  677. message DeleteEntryGroupRequest {
  678. // Required. The name of the entry group to delete.
  679. string name = 1 [
  680. (google.api.field_behavior) = REQUIRED,
  681. (google.api.resource_reference) = {
  682. type: "datacatalog.googleapis.com/EntryGroup"
  683. }
  684. ];
  685. // Optional. If true, deletes all entries in the entry group.
  686. bool force = 2 [(google.api.field_behavior) = OPTIONAL];
  687. }
  688. // Request message for
  689. // [ListEntryGroups][google.cloud.datacatalog.v1.DataCatalog.ListEntryGroups].
  690. message ListEntryGroupsRequest {
  691. // Required. The name of the location that contains the entry groups to list.
  692. //
  693. // Can be provided as a URL.
  694. string parent = 1 [
  695. (google.api.field_behavior) = REQUIRED,
  696. (google.api.resource_reference) = {
  697. child_type: "datacatalog.googleapis.com/EntryGroup"
  698. }
  699. ];
  700. // Optional. The maximum number of items to return.
  701. //
  702. // Default is 10. Maximum limit is 1000.
  703. // Throws an invalid argument if `page_size` is greater than 1000.
  704. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
  705. // Optional. Pagination token that specifies the next page to return.
  706. // If empty, returns the first page.
  707. string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
  708. }
  709. // Response message for
  710. // [ListEntryGroups][google.cloud.datacatalog.v1.DataCatalog.ListEntryGroups].
  711. message ListEntryGroupsResponse {
  712. // Entry group details.
  713. repeated EntryGroup entry_groups = 1;
  714. // Pagination token to specify in the next call to retrieve the next page of
  715. // results. Empty if there are no more items.
  716. string next_page_token = 2;
  717. }
  718. // Request message for
  719. // [CreateEntry][google.cloud.datacatalog.v1.DataCatalog.CreateEntry].
  720. message CreateEntryRequest {
  721. // Required. The name of the entry group this entry belongs to.
  722. //
  723. // Note: The entry itself and its child resources might not be stored in
  724. // the location specified in its name.
  725. string parent = 1 [
  726. (google.api.field_behavior) = REQUIRED,
  727. (google.api.resource_reference) = {
  728. type: "datacatalog.googleapis.com/EntryGroup"
  729. }
  730. ];
  731. // Required. The ID of the entry to create.
  732. //
  733. // The ID must contain only letters (a-z, A-Z), numbers (0-9),
  734. // and underscores (_).
  735. // The maximum size is 64 bytes when encoded in UTF-8.
  736. string entry_id = 3 [(google.api.field_behavior) = REQUIRED];
  737. // Required. The entry to create.
  738. Entry entry = 2 [(google.api.field_behavior) = REQUIRED];
  739. }
  740. // Request message for
  741. // [UpdateEntry][google.cloud.datacatalog.v1.DataCatalog.UpdateEntry].
  742. message UpdateEntryRequest {
  743. // Required. Updates for the entry. The `name` field must be set.
  744. Entry entry = 1 [(google.api.field_behavior) = REQUIRED];
  745. // Names of fields whose values to overwrite on an entry.
  746. //
  747. // If this parameter is absent or empty, all modifiable fields
  748. // are overwritten. If such fields are non-required and omitted in the
  749. // request body, their values are emptied.
  750. //
  751. // You can modify only the fields listed below.
  752. //
  753. // For entries with type `DATA_STREAM`:
  754. //
  755. // * `schema`
  756. //
  757. // For entries with type `FILESET`:
  758. //
  759. // * `schema`
  760. // * `display_name`
  761. // * `description`
  762. // * `gcs_fileset_spec`
  763. // * `gcs_fileset_spec.file_patterns`
  764. //
  765. // For entries with `user_specified_type`:
  766. //
  767. // * `schema`
  768. // * `display_name`
  769. // * `description`
  770. // * `user_specified_type`
  771. // * `user_specified_system`
  772. // * `linked_resource`
  773. // * `source_system_timestamps`
  774. google.protobuf.FieldMask update_mask = 2;
  775. }
  776. // Request message for
  777. // [DeleteEntry][google.cloud.datacatalog.v1.DataCatalog.DeleteEntry].
  778. message DeleteEntryRequest {
  779. // Required. The name of the entry to delete.
  780. string name = 1 [
  781. (google.api.field_behavior) = REQUIRED,
  782. (google.api.resource_reference) = {
  783. type: "datacatalog.googleapis.com/Entry"
  784. }
  785. ];
  786. }
  787. // Request message for
  788. // [GetEntry][google.cloud.datacatalog.v1.DataCatalog.GetEntry].
  789. message GetEntryRequest {
  790. // Required. The name of the entry to get.
  791. string name = 1 [
  792. (google.api.field_behavior) = REQUIRED,
  793. (google.api.resource_reference) = {
  794. type: "datacatalog.googleapis.com/Entry"
  795. }
  796. ];
  797. }
  798. // Request message for
  799. // [LookupEntry][google.cloud.datacatalog.v1.DataCatalog.LookupEntry].
  800. message LookupEntryRequest {
  801. // Required. A full name, SQL name, or a fully qualified name of a
  802. // Google Cloud Platform resource.
  803. oneof target_name {
  804. // The full name of the Google Cloud Platform resource the Data Catalog
  805. // entry represents. For more information, see [Full Resource Name]
  806. // (https://cloud.google.com/apis/design/resource_names#full_resource_name).
  807. //
  808. // Full names are case-sensitive. For example:
  809. //
  810. // * `//bigquery.googleapis.com/projects/{PROJECT_ID}/datasets/{DATASET_ID}/tables/{TABLE_ID}`
  811. // * `//pubsub.googleapis.com/projects/{PROJECT_ID}/topics/{TOPIC_ID}`
  812. string linked_resource = 1;
  813. // The SQL name of the entry. SQL names are case-sensitive.
  814. //
  815. // Examples:
  816. //
  817. // * `pubsub.topic.{PROJECT_ID}.{TOPIC_ID}`
  818. // * `pubsub.topic.{PROJECT_ID}.`\``{TOPIC.ID.SEPARATED.WITH.DOTS}`\`
  819. // * `bigquery.table.{PROJECT_ID}.{DATASET_ID}.{TABLE_ID}`
  820. // * `bigquery.dataset.{PROJECT_ID}.{DATASET_ID}`
  821. // * `datacatalog.entry.{PROJECT_ID}.{LOCATION_ID}.{ENTRY_GROUP_ID}.{ENTRY_ID}`
  822. //
  823. // Identifiers (`*_ID`) should comply with the
  824. // [Lexical structure in Standard SQL]
  825. // (https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical).
  826. string sql_resource = 3;
  827. // Fully qualified name (FQN) of the resource.
  828. //
  829. // FQNs take two forms:
  830. //
  831. // * For non-regionalized resources:
  832. //
  833. // `{SYSTEM}:{PROJECT}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}`
  834. //
  835. // * For regionalized resources:
  836. //
  837. // `{SYSTEM}:{PROJECT}.{LOCATION_ID}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}`
  838. //
  839. // Example for a DPMS table:
  840. //
  841. // `dataproc_metastore:{PROJECT_ID}.{LOCATION_ID}.{INSTANCE_ID}.{DATABASE_ID}.{TABLE_ID}`
  842. string fully_qualified_name = 5;
  843. }
  844. }
  845. // Entry metadata.
  846. // A Data Catalog entry represents another resource in Google
  847. // Cloud Platform (such as a BigQuery dataset or a Pub/Sub topic) or
  848. // outside of it. You can use the `linked_resource` field
  849. // in the entry resource to refer to the original resource ID of the source
  850. // system.
  851. //
  852. // An entry resource contains resource details, for example, its schema.
  853. // Additionally, you can attach flexible metadata to an entry in the form of a
  854. // [Tag][google.cloud.datacatalog.v1.Tag].
  855. message Entry {
  856. option (google.api.resource) = {
  857. type: "datacatalog.googleapis.com/Entry"
  858. pattern: "projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}"
  859. };
  860. // Output only. The resource name of an entry in URL format.
  861. //
  862. // Note: The entry itself and its child resources might not be
  863. // stored in the location specified in its name.
  864. string name = 1 [
  865. (google.api.field_behavior) = OUTPUT_ONLY,
  866. (google.api.resource_reference) = {
  867. type: "datacatalog.googleapis.com/EntryGroup"
  868. }
  869. ];
  870. // The resource this metadata entry refers to.
  871. //
  872. // For Google Cloud Platform resources, `linked_resource` is the
  873. // [Full Resource Name]
  874. // (https://cloud.google.com/apis/design/resource_names#full_resource_name).
  875. // For example, the `linked_resource` for a table resource from BigQuery is:
  876. //
  877. // `//bigquery.googleapis.com/projects/{PROJECT_ID}/datasets/{DATASET_ID}/tables/{TABLE_ID}`
  878. //
  879. // Output only when the entry is one of the types in the `EntryType` enum.
  880. //
  881. // For entries with a `user_specified_type`, this field is optional and
  882. // defaults to an empty string.
  883. //
  884. // The resource string must contain only letters (a-z, A-Z), numbers (0-9),
  885. // underscores (_), periods (.), colons (:), slashes (/), dashes (-),
  886. // and hashes (#).
  887. // The maximum size is 200 bytes when encoded in UTF-8.
  888. string linked_resource = 9;
  889. // Fully qualified name (FQN) of the resource. Set automatically for entries
  890. // representing resources from synced systems. Settable only during creation
  891. // and read-only afterwards. Can be used for search and lookup of the entries.
  892. //
  893. //
  894. //
  895. // FQNs take two forms:
  896. //
  897. // * For non-regionalized resources:
  898. //
  899. // `{SYSTEM}:{PROJECT}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}`
  900. //
  901. // * For regionalized resources:
  902. //
  903. // `{SYSTEM}:{PROJECT}.{LOCATION_ID}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}`
  904. //
  905. // Example for a DPMS table:
  906. //
  907. // `dataproc_metastore:{PROJECT_ID}.{LOCATION_ID}.{INSTANCE_ID}.{DATABASE_ID}.{TABLE_ID}`
  908. string fully_qualified_name = 29;
  909. // Required. Entry type.
  910. oneof entry_type {
  911. // The type of the entry.
  912. // Only used for entries with types listed in the `EntryType` enum.
  913. //
  914. // Currently, only `FILESET` enum value is allowed. All other entries
  915. // created in Data Catalog must use the `user_specified_type`.
  916. EntryType type = 2;
  917. // Custom entry type that doesn't match any of the values allowed for input
  918. // and listed in the `EntryType` enum.
  919. //
  920. // When creating an entry, first check the type values in the enum.
  921. // If there are no appropriate types for the new entry,
  922. // provide a custom value, for example, `my_special_type`.
  923. //
  924. // The `user_specified_type` string has the following limitations:
  925. //
  926. // * Is case insensitive.
  927. // * Must begin with a letter or underscore.
  928. // * Can only contain letters, numbers, and underscores.
  929. // * Must be at least 1 character and at most 64 characters long.
  930. string user_specified_type = 16;
  931. }
  932. // The source system of the entry.
  933. oneof system {
  934. // Output only. Indicates the entry's source system that Data Catalog
  935. // integrates with, such as BigQuery, Pub/Sub, or Dataproc Metastore.
  936. IntegratedSystem integrated_system = 17 [(google.api.field_behavior) = OUTPUT_ONLY];
  937. // Indicates the entry's source system that Data Catalog doesn't
  938. // automatically integrate with.
  939. //
  940. // The `user_specified_system` string has the following limitations:
  941. //
  942. // * Is case insensitive.
  943. // * Must begin with a letter or underscore.
  944. // * Can only contain letters, numbers, and underscores.
  945. // * Must be at least 1 character and at most 64 characters long.
  946. string user_specified_system = 18;
  947. }
  948. // Type specification.
  949. oneof type_spec {
  950. // Specification that applies to a Cloud Storage fileset. Valid only
  951. // for entries with the `FILESET` type.
  952. GcsFilesetSpec gcs_fileset_spec = 6;
  953. // Output only. Specification that applies to a BigQuery table. Valid only
  954. // for entries with the `TABLE` type.
  955. BigQueryTableSpec bigquery_table_spec = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
  956. // Output only. Specification for a group of BigQuery tables with
  957. // the `[prefix]YYYYMMDD` name pattern.
  958. //
  959. // For more information, see [Introduction to partitioned tables]
  960. // (https://cloud.google.com/bigquery/docs/partitioned-tables#partitioning_versus_sharding).
  961. BigQueryDateShardedSpec bigquery_date_sharded_spec = 15 [(google.api.field_behavior) = OUTPUT_ONLY];
  962. }
  963. // Type- and system-specific information. Specifications for types contain
  964. // fields common to all entries of a given type, and sub-specifications with
  965. // fields specific to a given source system.
  966. //
  967. // When extending the API with new types and systems, use this field instead
  968. // of the legacy `type_spec`.
  969. oneof spec {
  970. // Specification that applies to a table resource. Valid only
  971. // for entries with the `TABLE` type.
  972. DatabaseTableSpec database_table_spec = 24;
  973. // Specification that applies to a data source connection. Valid only
  974. // for entries with the `DATA_SOURCE_CONNECTION` type.
  975. DataSourceConnectionSpec data_source_connection_spec = 27;
  976. // Specification that applies to a user-defined function or procedure. Valid
  977. // only for entries with the `ROUTINE` type.
  978. RoutineSpec routine_spec = 28;
  979. // Specification that applies to a fileset resource. Valid only
  980. // for entries with the `FILESET` type.
  981. FilesetSpec fileset_spec = 33;
  982. }
  983. // Display name of an entry.
  984. //
  985. // The name must contain only Unicode letters, numbers (0-9), underscores (_),
  986. // dashes (-), spaces ( ), and can't start or end with spaces.
  987. // The maximum size is 200 bytes when encoded in UTF-8.
  988. // Default value is an empty string.
  989. string display_name = 3;
  990. // Entry description that can consist of several sentences or paragraphs
  991. // that describe entry contents.
  992. //
  993. // The description must not contain Unicode non-characters as well as C0
  994. // and C1 control codes except tabs (HT), new lines (LF), carriage returns
  995. // (CR), and page breaks (FF).
  996. // The maximum size is 2000 bytes when encoded in UTF-8.
  997. // Default value is an empty string.
  998. string description = 4;
  999. // Business Context of the entry. Not supported for BigQuery datasets
  1000. BusinessContext business_context = 37;
  1001. // Schema of the entry. An entry might not have any schema attached to it.
  1002. Schema schema = 5;
  1003. // Timestamps from the underlying resource, not from the Data Catalog
  1004. // entry.
  1005. //
  1006. // Output only when the entry has a system listed in the `IntegratedSystem`
  1007. // enum. For entries with `user_specified_system`, this field is optional
  1008. // and defaults to an empty timestamp.
  1009. SystemTimestamps source_system_timestamps = 7;
  1010. // Resource usage statistics.
  1011. UsageSignal usage_signal = 13;
  1012. // Cloud labels attached to the entry.
  1013. //
  1014. // In Data Catalog, you can create and modify labels attached only to custom
  1015. // entries. Synced entries have unmodifiable labels that come from the source
  1016. // system.
  1017. map<string, string> labels = 14;
  1018. // Output only. Physical location of the entry.
  1019. DataSource data_source = 20 [(google.api.field_behavior) = OUTPUT_ONLY];
  1020. // Output only. Additional information related to the entry. Private to the current user.
  1021. PersonalDetails personal_details = 26 [(google.api.field_behavior) = OUTPUT_ONLY];
  1022. }
  1023. // Specification that applies to a table resource. Valid only
  1024. // for entries with the `TABLE` type.
  1025. message DatabaseTableSpec {
  1026. // Type of the table.
  1027. enum TableType {
  1028. // Default unknown table type.
  1029. TABLE_TYPE_UNSPECIFIED = 0;
  1030. // Native table.
  1031. NATIVE = 1;
  1032. // External table.
  1033. EXTERNAL = 2;
  1034. }
  1035. // Type of this table.
  1036. TableType type = 1;
  1037. // Output only. Fields specific to a Dataplex table and present only in the
  1038. // Dataplex table entries.
  1039. DataplexTableSpec dataplex_table = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
  1040. }
  1041. // Specification that applies to a fileset. Valid only for entries with the
  1042. // 'FILESET' type.
  1043. message FilesetSpec {
  1044. // Fields specific to a Dataplex fileset and present only in the Dataplex
  1045. // fileset entries.
  1046. DataplexFilesetSpec dataplex_fileset = 1;
  1047. }
  1048. // Specification that applies to a data source connection. Valid only for
  1049. // entries with the `DATA_SOURCE_CONNECTION` type.
  1050. // Only one of internal specs can be set at the time, and cannot
  1051. // be changed later.
  1052. message DataSourceConnectionSpec {
  1053. // Output only. Fields specific to BigQuery connections.
  1054. BigQueryConnectionSpec bigquery_connection_spec = 1;
  1055. }
  1056. // Specification that applies to a routine. Valid only for
  1057. // entries with the `ROUTINE` type.
  1058. message RoutineSpec {
  1059. // The fine-grained type of the routine.
  1060. enum RoutineType {
  1061. // Unspecified type.
  1062. ROUTINE_TYPE_UNSPECIFIED = 0;
  1063. // Non-builtin permanent scalar function.
  1064. SCALAR_FUNCTION = 1;
  1065. // Stored procedure.
  1066. PROCEDURE = 2;
  1067. }
  1068. // Input or output argument of a function or stored procedure.
  1069. message Argument {
  1070. // The input or output mode of the argument.
  1071. enum Mode {
  1072. // Unspecified mode.
  1073. MODE_UNSPECIFIED = 0;
  1074. // The argument is input-only.
  1075. IN = 1;
  1076. // The argument is output-only.
  1077. OUT = 2;
  1078. // The argument is both an input and an output.
  1079. INOUT = 3;
  1080. }
  1081. // The name of the argument. A return argument of a function might not have
  1082. // a name.
  1083. string name = 1;
  1084. // Specifies whether the argument is input or output.
  1085. Mode mode = 2;
  1086. // Type of the argument. The exact value depends on the source system and
  1087. // the language.
  1088. string type = 3;
  1089. }
  1090. // The type of the routine.
  1091. RoutineType routine_type = 1;
  1092. // The language the routine is written in. The exact value depends on the
  1093. // source system. For BigQuery routines, possible values are:
  1094. //
  1095. // * `SQL`
  1096. // * `JAVASCRIPT`
  1097. string language = 2;
  1098. // Arguments of the routine.
  1099. repeated Argument routine_arguments = 3;
  1100. // Return type of the argument. The exact value depends on the source system
  1101. // and the language.
  1102. string return_type = 4;
  1103. // The body of the routine.
  1104. string definition_body = 5;
  1105. // Contains fields specific to the source system.
  1106. oneof system_spec {
  1107. // Fields specific for BigQuery routines.
  1108. BigQueryRoutineSpec bigquery_routine_spec = 6;
  1109. }
  1110. }
  1111. // Business Context of the entry.
  1112. message BusinessContext {
  1113. // Entry overview fields for rich text descriptions of entries.
  1114. EntryOverview entry_overview = 1;
  1115. // Contact people for the entry.
  1116. Contacts contacts = 2;
  1117. }
  1118. // Entry overview fields for rich text descriptions of entries.
  1119. message EntryOverview {
  1120. // Entry overview with support for rich text.
  1121. //
  1122. // The overview must only contain Unicode characters, and should be
  1123. // formatted using HTML.
  1124. // The maximum length is 10 MiB as this value holds HTML descriptions
  1125. // including encoded images. The maximum length of the text without images
  1126. // is 100 KiB.
  1127. string overview = 1;
  1128. }
  1129. // Contact people for the entry.
  1130. message Contacts {
  1131. // A contact person for the entry.
  1132. message Person {
  1133. // Designation of the person, for example, Data Steward.
  1134. string designation = 1;
  1135. // Email of the person in the format of `john.doe@xyz`,
  1136. // `<john.doe@xyz>`, or `John Doe<john.doe@xyz>`.
  1137. string email = 2;
  1138. }
  1139. // The list of contact people for the entry.
  1140. repeated Person people = 1;
  1141. }
  1142. // Entry group metadata.
  1143. //
  1144. // An `EntryGroup` resource represents a logical grouping of zero or more
  1145. // Data Catalog [Entry][google.cloud.datacatalog.v1.Entry] resources.
  1146. message EntryGroup {
  1147. option (google.api.resource) = {
  1148. type: "datacatalog.googleapis.com/EntryGroup"
  1149. pattern: "projects/{project}/locations/{location}/entryGroups/{entry_group}"
  1150. };
  1151. // The resource name of the entry group in URL format.
  1152. //
  1153. // Note: The entry group itself and its child resources might not be
  1154. // stored in the location specified in its name.
  1155. string name = 1;
  1156. // A short name to identify the entry group, for example,
  1157. // "analytics data - jan 2011". Default value is an empty string.
  1158. string display_name = 2;
  1159. // Entry group description. Can consist of several sentences or
  1160. // paragraphs that describe the entry group contents.
  1161. // Default value is an empty string.
  1162. string description = 3;
  1163. // Output only. Timestamps of the entry group. Default value is empty.
  1164. SystemTimestamps data_catalog_timestamps = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
  1165. }
  1166. // Request message for
  1167. // [CreateTagTemplate][google.cloud.datacatalog.v1.DataCatalog.CreateTagTemplate].
  1168. message CreateTagTemplateRequest {
  1169. // Required. The name of the project and the template location
  1170. // [region](https://cloud.google.com/data-catalog/docs/concepts/regions).
  1171. string parent = 1 [
  1172. (google.api.field_behavior) = REQUIRED,
  1173. (google.api.resource_reference) = {
  1174. child_type: "datacatalog.googleapis.com/TagTemplate"
  1175. }
  1176. ];
  1177. // Required. The ID of the tag template to create.
  1178. //
  1179. // The ID must contain only lowercase letters (a-z), numbers (0-9),
  1180. // or underscores (_), and must start with a letter or underscore.
  1181. // The maximum size is 64 bytes when encoded in UTF-8.
  1182. string tag_template_id = 3 [(google.api.field_behavior) = REQUIRED];
  1183. // Required. The tag template to create.
  1184. TagTemplate tag_template = 2 [(google.api.field_behavior) = REQUIRED];
  1185. }
  1186. // Request message for
  1187. // [GetTagTemplate][google.cloud.datacatalog.v1.DataCatalog.GetTagTemplate].
  1188. message GetTagTemplateRequest {
  1189. // Required. The name of the tag template to get.
  1190. string name = 1 [
  1191. (google.api.field_behavior) = REQUIRED,
  1192. (google.api.resource_reference) = {
  1193. type: "datacatalog.googleapis.com/TagTemplate"
  1194. }
  1195. ];
  1196. }
  1197. // Request message for
  1198. // [UpdateTagTemplate][google.cloud.datacatalog.v1.DataCatalog.UpdateTagTemplate].
  1199. message UpdateTagTemplateRequest {
  1200. // Required. The template to update. The `name` field must be set.
  1201. TagTemplate tag_template = 1 [(google.api.field_behavior) = REQUIRED];
  1202. // Names of fields whose values to overwrite on a tag template. Currently,
  1203. // only `display_name` and `is_publicly_readable` can be overwritten.
  1204. //
  1205. // If this parameter is absent or empty, all modifiable fields
  1206. // are overwritten. If such fields are non-required and omitted in the
  1207. // request body, their values are emptied.
  1208. //
  1209. // Note: Updating the `is_publicly_readable` field may require up to 12
  1210. // hours to take effect in search results.
  1211. google.protobuf.FieldMask update_mask = 2;
  1212. }
  1213. // Request message for
  1214. // [DeleteTagTemplate][google.cloud.datacatalog.v1.DataCatalog.DeleteTagTemplate].
  1215. message DeleteTagTemplateRequest {
  1216. // Required. The name of the tag template to delete.
  1217. string name = 1 [
  1218. (google.api.field_behavior) = REQUIRED,
  1219. (google.api.resource_reference) = {
  1220. type: "datacatalog.googleapis.com/TagTemplate"
  1221. }
  1222. ];
  1223. // Required. If true, deletes all tags that use this template.
  1224. //
  1225. // Currently, `true` is the only supported value.
  1226. bool force = 2 [(google.api.field_behavior) = REQUIRED];
  1227. }
  1228. // Request message for
  1229. // [CreateTag][google.cloud.datacatalog.v1.DataCatalog.CreateTag].
  1230. message CreateTagRequest {
  1231. // Required. The name of the resource to attach this tag to.
  1232. //
  1233. // Tags can be attached to entries or entry groups. An entry can have up to
  1234. // 1000 attached tags.
  1235. //
  1236. // Note: The tag and its child resources might not be stored in
  1237. // the location specified in its name.
  1238. string parent = 1 [
  1239. (google.api.field_behavior) = REQUIRED,
  1240. (google.api.resource_reference) = {
  1241. child_type: "datacatalog.googleapis.com/Tag"
  1242. }
  1243. ];
  1244. // Required. The tag to create.
  1245. Tag tag = 2 [(google.api.field_behavior) = REQUIRED];
  1246. }
  1247. // Request message for
  1248. // [UpdateTag][google.cloud.datacatalog.v1.DataCatalog.UpdateTag].
  1249. message UpdateTagRequest {
  1250. // Required. The updated tag. The "name" field must be set.
  1251. Tag tag = 1 [(google.api.field_behavior) = REQUIRED];
  1252. // Names of fields whose values to overwrite on a tag. Currently, a tag has
  1253. // the only modifiable field with the name `fields`.
  1254. //
  1255. // In general, if this parameter is absent or empty, all modifiable fields
  1256. // are overwritten. If such fields are non-required and omitted in the
  1257. // request body, their values are emptied.
  1258. google.protobuf.FieldMask update_mask = 2;
  1259. }
  1260. // Request message for
  1261. // [DeleteTag][google.cloud.datacatalog.v1.DataCatalog.DeleteTag].
  1262. message DeleteTagRequest {
  1263. // Required. The name of the tag to delete.
  1264. string name = 1 [
  1265. (google.api.field_behavior) = REQUIRED,
  1266. (google.api.resource_reference) = {
  1267. child_type: "datacatalog.googleapis.com/Tag"
  1268. }
  1269. ];
  1270. }
  1271. // Request message for
  1272. // [CreateTagTemplateField][google.cloud.datacatalog.v1.DataCatalog.CreateTagTemplateField].
  1273. message CreateTagTemplateFieldRequest {
  1274. // Required. The name of the project and the template location
  1275. // [region](https://cloud.google.com/data-catalog/docs/concepts/regions).
  1276. string parent = 1 [
  1277. (google.api.field_behavior) = REQUIRED,
  1278. (google.api.resource_reference) = {
  1279. type: "datacatalog.googleapis.com/TagTemplate"
  1280. }
  1281. ];
  1282. // Required. The ID of the tag template field to create.
  1283. //
  1284. // Note: Adding a required field to an existing template is *not* allowed.
  1285. //
  1286. // Field IDs can contain letters (both uppercase and lowercase), numbers
  1287. // (0-9), underscores (_) and dashes (-). Field IDs must be at least 1
  1288. // character long and at most 128 characters long. Field IDs must also be
  1289. // unique within their template.
  1290. string tag_template_field_id = 2 [(google.api.field_behavior) = REQUIRED];
  1291. // Required. The tag template field to create.
  1292. TagTemplateField tag_template_field = 3 [(google.api.field_behavior) = REQUIRED];
  1293. }
  1294. // Request message for
  1295. // [UpdateTagTemplateField][google.cloud.datacatalog.v1.DataCatalog.UpdateTagTemplateField].
  1296. message UpdateTagTemplateFieldRequest {
  1297. // Required. The name of the tag template field.
  1298. string name = 1 [
  1299. (google.api.field_behavior) = REQUIRED,
  1300. (google.api.resource_reference) = {
  1301. type: "datacatalog.googleapis.com/TagTemplateField"
  1302. }
  1303. ];
  1304. // Required. The template to update.
  1305. TagTemplateField tag_template_field = 2 [(google.api.field_behavior) = REQUIRED];
  1306. // Optional. Names of fields whose values to overwrite on an individual field of a tag
  1307. // template. The following fields are modifiable:
  1308. //
  1309. // * `display_name`
  1310. // * `type.enum_type`
  1311. // * `is_required`
  1312. //
  1313. // If this parameter is absent or empty, all modifiable fields
  1314. // are overwritten. If such fields are non-required and omitted in the request
  1315. // body, their values are emptied with one exception: when updating an enum
  1316. // type, the provided values are merged with the existing values. Therefore,
  1317. // enum values can only be added, existing enum values cannot be deleted or
  1318. // renamed.
  1319. //
  1320. // Additionally, updating a template field from optional to required is
  1321. // *not* allowed.
  1322. google.protobuf.FieldMask update_mask = 3 [(google.api.field_behavior) = OPTIONAL];
  1323. }
  1324. // Request message for
  1325. // [RenameTagTemplateField][google.cloud.datacatalog.v1.DataCatalog.RenameTagTemplateField].
  1326. message RenameTagTemplateFieldRequest {
  1327. // Required. The name of the tag template field.
  1328. string name = 1 [
  1329. (google.api.field_behavior) = REQUIRED,
  1330. (google.api.resource_reference) = {
  1331. type: "datacatalog.googleapis.com/TagTemplateField"
  1332. }
  1333. ];
  1334. // Required. The new ID of this tag template field. For example, `my_new_field`.
  1335. string new_tag_template_field_id = 2 [(google.api.field_behavior) = REQUIRED];
  1336. }
  1337. // Request message for
  1338. // [RenameTagTemplateFieldEnumValue][google.cloud.datacatalog.v1.DataCatalog.RenameTagTemplateFieldEnumValue].
  1339. message RenameTagTemplateFieldEnumValueRequest {
  1340. // Required. The name of the enum field value.
  1341. string name = 1 [
  1342. (google.api.field_behavior) = REQUIRED,
  1343. (google.api.resource_reference) = {
  1344. type: "datacatalog.googleapis.com/TagTemplateFieldEnumValue"
  1345. }
  1346. ];
  1347. // Required. The new display name of the enum value. For example, `my_new_enum_value`.
  1348. string new_enum_value_display_name = 2 [(google.api.field_behavior) = REQUIRED];
  1349. }
  1350. // Request message for
  1351. // [DeleteTagTemplateField][google.cloud.datacatalog.v1.DataCatalog.DeleteTagTemplateField].
  1352. message DeleteTagTemplateFieldRequest {
  1353. // Required. The name of the tag template field to delete.
  1354. string name = 1 [
  1355. (google.api.field_behavior) = REQUIRED,
  1356. (google.api.resource_reference) = {
  1357. type: "datacatalog.googleapis.com/TagTemplateField"
  1358. }
  1359. ];
  1360. // Required. If true, deletes this field from any tags that use it.
  1361. //
  1362. // Currently, `true` is the only supported value.
  1363. bool force = 2 [(google.api.field_behavior) = REQUIRED];
  1364. }
  1365. // Request message for
  1366. // [ListTags][google.cloud.datacatalog.v1.DataCatalog.ListTags].
  1367. message ListTagsRequest {
  1368. // Required. The name of the Data Catalog resource to list the tags of.
  1369. //
  1370. // The resource can be an [Entry][google.cloud.datacatalog.v1.Entry]
  1371. // or an [EntryGroup][google.cloud.datacatalog.v1.EntryGroup]
  1372. // (without `/entries/{entries}` at the end).
  1373. string parent = 1 [
  1374. (google.api.field_behavior) = REQUIRED,
  1375. (google.api.resource_reference) = {
  1376. child_type: "datacatalog.googleapis.com/Tag"
  1377. }
  1378. ];
  1379. // The maximum number of tags to return. Default is 10. Maximum limit is 1000.
  1380. int32 page_size = 2;
  1381. // Pagination token that specifies the next page to return. If empty, the
  1382. // first page is returned.
  1383. string page_token = 3;
  1384. }
  1385. // Response message for
  1386. // [ListTags][google.cloud.datacatalog.v1.DataCatalog.ListTags].
  1387. message ListTagsResponse {
  1388. // [Tag][google.cloud.datacatalog.v1.Tag] details.
  1389. repeated Tag tags = 1;
  1390. // Pagination token of the next results page. Empty if there are
  1391. // no more items in results.
  1392. string next_page_token = 2;
  1393. }
  1394. // Request message for
  1395. // [ListEntries][google.cloud.datacatalog.v1.DataCatalog.ListEntries].
  1396. message ListEntriesRequest {
  1397. // Required. The name of the entry group that contains the entries to list.
  1398. //
  1399. // Can be provided in URL format.
  1400. string parent = 1 [
  1401. (google.api.field_behavior) = REQUIRED,
  1402. (google.api.resource_reference) = {
  1403. type: "datacatalog.googleapis.com/EntryGroup"
  1404. }
  1405. ];
  1406. // The maximum number of items to return. Default is 10. Maximum limit is
  1407. // 1000. Throws an invalid argument if `page_size` is more than 1000.
  1408. int32 page_size = 2;
  1409. // Pagination token that specifies the next page to return. If empty, the
  1410. // first page is returned.
  1411. string page_token = 3;
  1412. // The fields to return for each entry. If empty or omitted, all
  1413. // fields are returned.
  1414. //
  1415. // For example, to return a list of entries with only the `name` field,
  1416. // set `read_mask` to only one path with the `name` value.
  1417. google.protobuf.FieldMask read_mask = 4;
  1418. }
  1419. // Response message for
  1420. // [ListEntries][google.cloud.datacatalog.v1.DataCatalog.ListEntries].
  1421. message ListEntriesResponse {
  1422. // Entry details.
  1423. repeated Entry entries = 1;
  1424. // Pagination token of the next results page. Empty if there are no more items
  1425. // in results.
  1426. string next_page_token = 2;
  1427. }
  1428. // Request message for
  1429. // [StarEntry][google.cloud.datacatalog.v1.DataCatalog.StarEntry].
  1430. message StarEntryRequest {
  1431. // Required. The name of the entry to mark as starred.
  1432. string name = 1 [
  1433. (google.api.field_behavior) = REQUIRED,
  1434. (google.api.resource_reference) = {
  1435. type: "datacatalog.googleapis.com/Entry"
  1436. }
  1437. ];
  1438. }
  1439. // Response message for
  1440. // [StarEntry][google.cloud.datacatalog.v1.DataCatalog.StarEntry].
  1441. // Empty for now
  1442. message StarEntryResponse {
  1443. }
  1444. // Request message for
  1445. // [UnstarEntry][google.cloud.datacatalog.v1.DataCatalog.UnstarEntry].
  1446. message UnstarEntryRequest {
  1447. // Required. The name of the entry to mark as **not** starred.
  1448. string name = 1 [
  1449. (google.api.field_behavior) = REQUIRED,
  1450. (google.api.resource_reference) = {
  1451. type: "datacatalog.googleapis.com/Entry"
  1452. }
  1453. ];
  1454. }
  1455. // Response message for
  1456. // [UnstarEntry][google.cloud.datacatalog.v1.DataCatalog.UnstarEntry].
  1457. // Empty for now
  1458. message UnstarEntryResponse {
  1459. }
  1460. // Request message for
  1461. // [ModifyEntryOverview][google.cloud.datacatalog.v1.DataCatalog.ModifyEntryOverview].
  1462. message ModifyEntryOverviewRequest {
  1463. // Required. The full resource name of the entry.
  1464. string name = 1 [
  1465. (google.api.field_behavior) = REQUIRED,
  1466. (google.api.resource_reference) = {
  1467. type: "datacatalog.googleapis.com/Entry"
  1468. }
  1469. ];
  1470. // Required. The new value for the Entry Overview.
  1471. EntryOverview entry_overview = 2 [(google.api.field_behavior) = REQUIRED];
  1472. }
  1473. // Request message for
  1474. // [ModifyEntryContacts][google.cloud.datacatalog.v1.DataCatalog.ModifyEntryContacts].
  1475. message ModifyEntryContactsRequest {
  1476. // Required. The full resource name of the entry.
  1477. string name = 1 [
  1478. (google.api.field_behavior) = REQUIRED,
  1479. (google.api.resource_reference) = {
  1480. type: "datacatalog.googleapis.com/Entry"
  1481. }
  1482. ];
  1483. // Required. The new value for the Contacts.
  1484. Contacts contacts = 2 [(google.api.field_behavior) = REQUIRED];
  1485. }
  1486. // The enum field that lists all the types of entry resources in Data
  1487. // Catalog. For example, a BigQuery table entry has the `TABLE` type.
  1488. enum EntryType {
  1489. // Default unknown type.
  1490. ENTRY_TYPE_UNSPECIFIED = 0;
  1491. // The entry type that has a GoogleSQL schema, including
  1492. // logical views.
  1493. TABLE = 2;
  1494. // Output only. The type of models.
  1495. //
  1496. // For more information, see [Supported models in BigQuery ML]
  1497. // (https://cloud.google.com/bigquery-ml/docs/introduction#supported_models_in).
  1498. MODEL = 5;
  1499. // An entry type for streaming entries. For example, a Pub/Sub topic.
  1500. DATA_STREAM = 3;
  1501. // An entry type for a set of files or objects. For example, a
  1502. // Cloud Storage fileset.
  1503. FILESET = 4;
  1504. // A group of servers that work together. For example, a Kafka cluster.
  1505. CLUSTER = 6;
  1506. // A database.
  1507. DATABASE = 7;
  1508. // Output only. Connection to a data source. For example, a BigQuery
  1509. // connection.
  1510. DATA_SOURCE_CONNECTION = 8;
  1511. // Output only. Routine, for example, a BigQuery routine.
  1512. ROUTINE = 9;
  1513. // A Dataplex lake.
  1514. LAKE = 10;
  1515. // A Dataplex zone.
  1516. ZONE = 11;
  1517. // A service, for example, a Dataproc Metastore service.
  1518. SERVICE = 14;
  1519. }