service.proto 39 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109
  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.dataplex.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/dataplex/v1/analyze.proto";
  21. import "google/cloud/dataplex/v1/resources.proto";
  22. import "google/cloud/dataplex/v1/tasks.proto";
  23. import "google/longrunning/operations.proto";
  24. import "google/protobuf/empty.proto";
  25. import "google/protobuf/field_mask.proto";
  26. import "google/protobuf/timestamp.proto";
  27. option go_package = "google.golang.org/genproto/googleapis/cloud/dataplex/v1;dataplex";
  28. option java_multiple_files = true;
  29. option java_outer_classname = "ServiceProto";
  30. option java_package = "com.google.cloud.dataplex.v1";
  31. // Dataplex service provides data lakes as a service. The primary resources
  32. // offered by this service are Lakes, Zones and Assets which collectively allow
  33. // a data administrator to organize, manage, secure and catalog data across
  34. // their organization located across cloud projects in a variety of storage
  35. // systems including Cloud Storage and BigQuery.
  36. service DataplexService {
  37. option (google.api.default_host) = "dataplex.googleapis.com";
  38. option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
  39. // Creates a lake resource.
  40. rpc CreateLake(CreateLakeRequest) returns (google.longrunning.Operation) {
  41. option (google.api.http) = {
  42. post: "/v1/{parent=projects/*/locations/*}/lakes"
  43. body: "lake"
  44. };
  45. option (google.api.method_signature) = "parent,lake,lake_id";
  46. option (google.longrunning.operation_info) = {
  47. response_type: "Lake"
  48. metadata_type: "OperationMetadata"
  49. };
  50. }
  51. // Updates a lake resource.
  52. rpc UpdateLake(UpdateLakeRequest) returns (google.longrunning.Operation) {
  53. option (google.api.http) = {
  54. patch: "/v1/{lake.name=projects/*/locations/*/lakes/*}"
  55. body: "lake"
  56. };
  57. option (google.api.method_signature) = "lake,update_mask";
  58. option (google.longrunning.operation_info) = {
  59. response_type: "Lake"
  60. metadata_type: "OperationMetadata"
  61. };
  62. }
  63. // Deletes a lake resource. All zones within the lake must be deleted before
  64. // the lake can be deleted.
  65. rpc DeleteLake(DeleteLakeRequest) returns (google.longrunning.Operation) {
  66. option (google.api.http) = {
  67. delete: "/v1/{name=projects/*/locations/*/lakes/*}"
  68. };
  69. option (google.api.method_signature) = "name";
  70. option (google.longrunning.operation_info) = {
  71. response_type: "google.protobuf.Empty"
  72. metadata_type: "OperationMetadata"
  73. };
  74. }
  75. // Lists lake resources in a project and location.
  76. rpc ListLakes(ListLakesRequest) returns (ListLakesResponse) {
  77. option (google.api.http) = {
  78. get: "/v1/{parent=projects/*/locations/*}/lakes"
  79. };
  80. option (google.api.method_signature) = "parent";
  81. }
  82. // Retrieves a lake resource.
  83. rpc GetLake(GetLakeRequest) returns (Lake) {
  84. option (google.api.http) = {
  85. get: "/v1/{name=projects/*/locations/*/lakes/*}"
  86. };
  87. option (google.api.method_signature) = "name";
  88. }
  89. // Lists action resources in a lake.
  90. rpc ListLakeActions(ListLakeActionsRequest) returns (ListActionsResponse) {
  91. option (google.api.http) = {
  92. get: "/v1/{parent=projects/*/locations/*/lakes/*}/actions"
  93. };
  94. option (google.api.method_signature) = "parent";
  95. }
  96. // Creates a zone resource within a lake.
  97. rpc CreateZone(CreateZoneRequest) returns (google.longrunning.Operation) {
  98. option (google.api.http) = {
  99. post: "/v1/{parent=projects/*/locations/*/lakes/*}/zones"
  100. body: "zone"
  101. };
  102. option (google.api.method_signature) = "parent,zone,zone_id";
  103. option (google.longrunning.operation_info) = {
  104. response_type: "Zone"
  105. metadata_type: "OperationMetadata"
  106. };
  107. }
  108. // Updates a zone resource.
  109. rpc UpdateZone(UpdateZoneRequest) returns (google.longrunning.Operation) {
  110. option (google.api.http) = {
  111. patch: "/v1/{zone.name=projects/*/locations/*/lakes/*/zones/*}"
  112. body: "zone"
  113. };
  114. option (google.api.method_signature) = "zone,update_mask";
  115. option (google.longrunning.operation_info) = {
  116. response_type: "Zone"
  117. metadata_type: "OperationMetadata"
  118. };
  119. }
  120. // Deletes a zone resource. All assets within a zone must be deleted before
  121. // the zone can be deleted.
  122. rpc DeleteZone(DeleteZoneRequest) returns (google.longrunning.Operation) {
  123. option (google.api.http) = {
  124. delete: "/v1/{name=projects/*/locations/*/lakes/*/zones/*}"
  125. };
  126. option (google.api.method_signature) = "name";
  127. option (google.longrunning.operation_info) = {
  128. response_type: "google.protobuf.Empty"
  129. metadata_type: "OperationMetadata"
  130. };
  131. }
  132. // Lists zone resources in a lake.
  133. rpc ListZones(ListZonesRequest) returns (ListZonesResponse) {
  134. option (google.api.http) = {
  135. get: "/v1/{parent=projects/*/locations/*/lakes/*}/zones"
  136. };
  137. option (google.api.method_signature) = "parent";
  138. }
  139. // Retrieves a zone resource.
  140. rpc GetZone(GetZoneRequest) returns (Zone) {
  141. option (google.api.http) = {
  142. get: "/v1/{name=projects/*/locations/*/lakes/*/zones/*}"
  143. };
  144. option (google.api.method_signature) = "name";
  145. }
  146. // Lists action resources in a zone.
  147. rpc ListZoneActions(ListZoneActionsRequest) returns (ListActionsResponse) {
  148. option (google.api.http) = {
  149. get: "/v1/{parent=projects/*/locations/*/lakes/*/zones/*}/actions"
  150. };
  151. option (google.api.method_signature) = "parent";
  152. }
  153. // Creates an asset resource.
  154. rpc CreateAsset(CreateAssetRequest) returns (google.longrunning.Operation) {
  155. option (google.api.http) = {
  156. post: "/v1/{parent=projects/*/locations/*/lakes/*/zones/*}/assets"
  157. body: "asset"
  158. };
  159. option (google.api.method_signature) = "parent,asset,asset_id";
  160. option (google.longrunning.operation_info) = {
  161. response_type: "Asset"
  162. metadata_type: "OperationMetadata"
  163. };
  164. }
  165. // Updates an asset resource.
  166. rpc UpdateAsset(UpdateAssetRequest) returns (google.longrunning.Operation) {
  167. option (google.api.http) = {
  168. patch: "/v1/{asset.name=projects/*/locations/*/lakes/*/zones/*/assets/*}"
  169. body: "asset"
  170. };
  171. option (google.api.method_signature) = "asset,update_mask";
  172. option (google.longrunning.operation_info) = {
  173. response_type: "Asset"
  174. metadata_type: "OperationMetadata"
  175. };
  176. }
  177. // Deletes an asset resource. The referenced storage resource is detached
  178. // (default) or deleted based on the associated Lifecycle policy.
  179. rpc DeleteAsset(DeleteAssetRequest) returns (google.longrunning.Operation) {
  180. option (google.api.http) = {
  181. delete: "/v1/{name=projects/*/locations/*/lakes/*/zones/*/assets/*}"
  182. };
  183. option (google.api.method_signature) = "name";
  184. option (google.longrunning.operation_info) = {
  185. response_type: "google.protobuf.Empty"
  186. metadata_type: "OperationMetadata"
  187. };
  188. }
  189. // Lists asset resources in a zone.
  190. rpc ListAssets(ListAssetsRequest) returns (ListAssetsResponse) {
  191. option (google.api.http) = {
  192. get: "/v1/{parent=projects/*/locations/*/lakes/*/zones/*}/assets"
  193. };
  194. option (google.api.method_signature) = "parent";
  195. }
  196. // Retrieves an asset resource.
  197. rpc GetAsset(GetAssetRequest) returns (Asset) {
  198. option (google.api.http) = {
  199. get: "/v1/{name=projects/*/locations/*/lakes/*/zones/*/assets/*}"
  200. };
  201. option (google.api.method_signature) = "name";
  202. }
  203. // Lists action resources in an asset.
  204. rpc ListAssetActions(ListAssetActionsRequest) returns (ListActionsResponse) {
  205. option (google.api.http) = {
  206. get: "/v1/{parent=projects/*/locations/*/lakes/*/zones/*/assets/*}/actions"
  207. };
  208. option (google.api.method_signature) = "parent";
  209. }
  210. // Creates a task resource within a lake.
  211. rpc CreateTask(CreateTaskRequest) returns (google.longrunning.Operation) {
  212. option (google.api.http) = {
  213. post: "/v1/{parent=projects/*/locations/*/lakes/*}/tasks"
  214. body: "task"
  215. };
  216. option (google.api.method_signature) = "parent,task,task_id";
  217. option (google.longrunning.operation_info) = {
  218. response_type: "Task"
  219. metadata_type: "OperationMetadata"
  220. };
  221. }
  222. // Update the task resource.
  223. rpc UpdateTask(UpdateTaskRequest) returns (google.longrunning.Operation) {
  224. option (google.api.http) = {
  225. patch: "/v1/{task.name=projects/*/locations/*/lakes/*/tasks/*}"
  226. body: "task"
  227. };
  228. option (google.api.method_signature) = "task,update_mask";
  229. option (google.longrunning.operation_info) = {
  230. response_type: "Task"
  231. metadata_type: "OperationMetadata"
  232. };
  233. }
  234. // Delete the task resource.
  235. rpc DeleteTask(DeleteTaskRequest) returns (google.longrunning.Operation) {
  236. option (google.api.http) = {
  237. delete: "/v1/{name=projects/*/locations/*/lakes/*/tasks/*}"
  238. };
  239. option (google.api.method_signature) = "name";
  240. option (google.longrunning.operation_info) = {
  241. response_type: "google.protobuf.Empty"
  242. metadata_type: "OperationMetadata"
  243. };
  244. }
  245. // Lists tasks under the given lake.
  246. rpc ListTasks(ListTasksRequest) returns (ListTasksResponse) {
  247. option (google.api.http) = {
  248. get: "/v1/{parent=projects/*/locations/*/lakes/*}/tasks"
  249. };
  250. option (google.api.method_signature) = "parent";
  251. }
  252. // Get task resource.
  253. rpc GetTask(GetTaskRequest) returns (Task) {
  254. option (google.api.http) = {
  255. get: "/v1/{name=projects/*/locations/*/lakes/*/tasks/*}"
  256. };
  257. option (google.api.method_signature) = "name";
  258. }
  259. // Lists Jobs under the given task.
  260. rpc ListJobs(ListJobsRequest) returns (ListJobsResponse) {
  261. option (google.api.http) = {
  262. get: "/v1/{parent=projects/*/locations/*/lakes/*/tasks/*}/jobs"
  263. };
  264. option (google.api.method_signature) = "parent";
  265. }
  266. // Get job resource.
  267. rpc GetJob(GetJobRequest) returns (Job) {
  268. option (google.api.http) = {
  269. get: "/v1/{name=projects/*/locations/*/lakes/*/tasks/*/jobs/*}"
  270. };
  271. option (google.api.method_signature) = "name";
  272. }
  273. // Cancel jobs running for the task resource.
  274. rpc CancelJob(CancelJobRequest) returns (google.protobuf.Empty) {
  275. option (google.api.http) = {
  276. post: "/v1/{name=projects/*/locations/*/lakes/*/tasks/*/jobs/*}:cancel"
  277. body: "*"
  278. };
  279. option (google.api.method_signature) = "name";
  280. }
  281. // Create an environment resource.
  282. rpc CreateEnvironment(CreateEnvironmentRequest) returns (google.longrunning.Operation) {
  283. option (google.api.http) = {
  284. post: "/v1/{parent=projects/*/locations/*/lakes/*}/environments"
  285. body: "environment"
  286. };
  287. option (google.api.method_signature) = "parent,environment,environment_id";
  288. option (google.longrunning.operation_info) = {
  289. response_type: "Environment"
  290. metadata_type: "OperationMetadata"
  291. };
  292. }
  293. // Update the environment resource.
  294. rpc UpdateEnvironment(UpdateEnvironmentRequest) returns (google.longrunning.Operation) {
  295. option (google.api.http) = {
  296. patch: "/v1/{environment.name=projects/*/locations/*/lakes/*/environments/*}"
  297. body: "environment"
  298. };
  299. option (google.api.method_signature) = "environment,update_mask";
  300. option (google.longrunning.operation_info) = {
  301. response_type: "Environment"
  302. metadata_type: "OperationMetadata"
  303. };
  304. }
  305. // Delete the environment resource. All the child resources must have been
  306. // deleted before environment deletion can be initiated.
  307. rpc DeleteEnvironment(DeleteEnvironmentRequest) returns (google.longrunning.Operation) {
  308. option (google.api.http) = {
  309. delete: "/v1/{name=projects/*/locations/*/lakes/*/environments/*}"
  310. };
  311. option (google.api.method_signature) = "name";
  312. option (google.longrunning.operation_info) = {
  313. response_type: "google.protobuf.Empty"
  314. metadata_type: "OperationMetadata"
  315. };
  316. }
  317. // Lists environments under the given lake.
  318. rpc ListEnvironments(ListEnvironmentsRequest) returns (ListEnvironmentsResponse) {
  319. option (google.api.http) = {
  320. get: "/v1/{parent=projects/*/locations/*/lakes/*}/environments"
  321. };
  322. option (google.api.method_signature) = "parent";
  323. }
  324. // Get environment resource.
  325. rpc GetEnvironment(GetEnvironmentRequest) returns (Environment) {
  326. option (google.api.http) = {
  327. get: "/v1/{name=projects/*/locations/*/lakes/*/environments/*}"
  328. };
  329. option (google.api.method_signature) = "name";
  330. }
  331. // Lists session resources in an environment.
  332. rpc ListSessions(ListSessionsRequest) returns (ListSessionsResponse) {
  333. option (google.api.http) = {
  334. get: "/v1/{parent=projects/*/locations/*/lakes/*/environments/*}/sessions"
  335. };
  336. option (google.api.method_signature) = "parent";
  337. }
  338. }
  339. // Create lake request.
  340. message CreateLakeRequest {
  341. // Required. The resource name of the lake location, of the form:
  342. // projects/{project_number}/locations/{location_id}
  343. // where `location_id` refers to a GCP region.
  344. string parent = 1 [
  345. (google.api.field_behavior) = REQUIRED,
  346. (google.api.resource_reference) = {
  347. type: "locations.googleapis.com/Location"
  348. }
  349. ];
  350. // Required. Lake identifier.
  351. // This ID will be used to generate names such as database and dataset names
  352. // when publishing metadata to Hive Metastore and BigQuery.
  353. // * Must contain only lowercase letters, numbers and hyphens.
  354. // * Must start with a letter.
  355. // * Must end with a number or a letter.
  356. // * Must be between 1-63 characters.
  357. // * Must be unique within the customer project / location.
  358. string lake_id = 2 [(google.api.field_behavior) = REQUIRED];
  359. // Required. Lake resource
  360. Lake lake = 3 [(google.api.field_behavior) = REQUIRED];
  361. // Optional. Only validate the request, but do not perform mutations.
  362. // The default is false.
  363. bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL];
  364. }
  365. // Update lake request.
  366. message UpdateLakeRequest {
  367. // Required. Mask of fields to update.
  368. google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED];
  369. // Required. Update description.
  370. // Only fields specified in `update_mask` are updated.
  371. Lake lake = 2 [(google.api.field_behavior) = REQUIRED];
  372. // Optional. Only validate the request, but do not perform mutations.
  373. // The default is false.
  374. bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL];
  375. }
  376. // Delete lake request.
  377. message DeleteLakeRequest {
  378. // Required. The resource name of the lake:
  379. // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`.
  380. string name = 1 [
  381. (google.api.field_behavior) = REQUIRED,
  382. (google.api.resource_reference) = {
  383. type: "dataplex.googleapis.com/Lake"
  384. }
  385. ];
  386. }
  387. // List lakes request.
  388. message ListLakesRequest {
  389. // Required. The resource name of the lake location, of the form:
  390. // `projects/{project_number}/locations/{location_id}`
  391. // where `location_id` refers to a GCP region.
  392. string parent = 1 [
  393. (google.api.field_behavior) = REQUIRED,
  394. (google.api.resource_reference) = {
  395. type: "locations.googleapis.com/Location"
  396. }
  397. ];
  398. // Optional. Maximum number of Lakes to return. The service may return fewer than this
  399. // value. If unspecified, at most 10 lakes will be returned. The maximum
  400. // value is 1000; values above 1000 will be coerced to 1000.
  401. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
  402. // Optional. Page token received from a previous `ListLakes` call. Provide this to
  403. // retrieve the subsequent page. When paginating, all other parameters
  404. // provided to `ListLakes` must match the call that provided the page token.
  405. string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
  406. // Optional. Filter request.
  407. string filter = 4 [(google.api.field_behavior) = OPTIONAL];
  408. // Optional. Order by fields for the result.
  409. string order_by = 5 [(google.api.field_behavior) = OPTIONAL];
  410. }
  411. // List lakes response.
  412. message ListLakesResponse {
  413. // Lakes under the given parent location.
  414. repeated Lake lakes = 1;
  415. // Token to retrieve the next page of results, or empty if there are no more
  416. // results in the list.
  417. string next_page_token = 2;
  418. // Locations that could not be reached.
  419. repeated string unreachable_locations = 3;
  420. }
  421. // List lake actions request.
  422. message ListLakeActionsRequest {
  423. // Required. The resource name of the parent lake:
  424. // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`.
  425. string parent = 1 [
  426. (google.api.field_behavior) = REQUIRED,
  427. (google.api.resource_reference) = {
  428. type: "dataplex.googleapis.com/Lake"
  429. }
  430. ];
  431. // Optional. Maximum number of actions to return. The service may return fewer than this
  432. // value. If unspecified, at most 10 actions will be returned. The maximum
  433. // value is 1000; values above 1000 will be coerced to 1000.
  434. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
  435. // Optional. Page token received from a previous `ListLakeActions` call. Provide this to
  436. // retrieve the subsequent page. When paginating, all other parameters
  437. // provided to `ListLakeActions` must match the call that provided the page
  438. // token.
  439. string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
  440. }
  441. // List actions response.
  442. message ListActionsResponse {
  443. // Actions under the given parent lake/zone/asset.
  444. repeated Action actions = 1;
  445. // Token to retrieve the next page of results, or empty if there are no more
  446. // results in the list.
  447. string next_page_token = 2;
  448. }
  449. // Get lake request.
  450. message GetLakeRequest {
  451. // Required. The resource name of the lake:
  452. // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`.
  453. string name = 1 [
  454. (google.api.field_behavior) = REQUIRED,
  455. (google.api.resource_reference) = {
  456. type: "dataplex.googleapis.com/Lake"
  457. }
  458. ];
  459. }
  460. // Create zone request.
  461. message CreateZoneRequest {
  462. // Required. The resource name of the parent lake:
  463. // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`.
  464. string parent = 1 [
  465. (google.api.field_behavior) = REQUIRED,
  466. (google.api.resource_reference) = {
  467. type: "dataplex.googleapis.com/Lake"
  468. }
  469. ];
  470. // Required. Zone identifier.
  471. // This ID will be used to generate names such as database and dataset names
  472. // when publishing metadata to Hive Metastore and BigQuery.
  473. // * Must contain only lowercase letters, numbers and hyphens.
  474. // * Must start with a letter.
  475. // * Must end with a number or a letter.
  476. // * Must be between 1-63 characters.
  477. // * Must be unique across all lakes from all locations in a project.
  478. // * Must not be one of the reserved IDs (i.e. "default", "global-temp")
  479. string zone_id = 2 [(google.api.field_behavior) = REQUIRED];
  480. // Required. Zone resource.
  481. Zone zone = 3 [(google.api.field_behavior) = REQUIRED];
  482. // Optional. Only validate the request, but do not perform mutations.
  483. // The default is false.
  484. bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL];
  485. }
  486. // Update zone request.
  487. message UpdateZoneRequest {
  488. // Required. Mask of fields to update.
  489. google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED];
  490. // Required. Update description.
  491. // Only fields specified in `update_mask` are updated.
  492. Zone zone = 2 [(google.api.field_behavior) = REQUIRED];
  493. // Optional. Only validate the request, but do not perform mutations.
  494. // The default is false.
  495. bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL];
  496. }
  497. // Delete zone request.
  498. message DeleteZoneRequest {
  499. // Required. The resource name of the zone:
  500. // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}`.
  501. string name = 1 [
  502. (google.api.field_behavior) = REQUIRED,
  503. (google.api.resource_reference) = {
  504. type: "dataplex.googleapis.com/Zone"
  505. }
  506. ];
  507. }
  508. // List zones request.
  509. message ListZonesRequest {
  510. // Required. The resource name of the parent lake:
  511. // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`.
  512. string parent = 1 [
  513. (google.api.field_behavior) = REQUIRED,
  514. (google.api.resource_reference) = {
  515. type: "dataplex.googleapis.com/Lake"
  516. }
  517. ];
  518. // Optional. Maximum number of zones to return. The service may return fewer than this
  519. // value. If unspecified, at most 10 zones will be returned. The maximum
  520. // value is 1000; values above 1000 will be coerced to 1000.
  521. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
  522. // Optional. Page token received from a previous `ListZones` call. Provide this to
  523. // retrieve the subsequent page. When paginating, all other parameters
  524. // provided to `ListZones` must match the call that provided the page token.
  525. string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
  526. // Optional. Filter request.
  527. string filter = 4 [(google.api.field_behavior) = OPTIONAL];
  528. // Optional. Order by fields for the result.
  529. string order_by = 5 [(google.api.field_behavior) = OPTIONAL];
  530. }
  531. // List zones response.
  532. message ListZonesResponse {
  533. // Zones under the given parent lake.
  534. repeated Zone zones = 1;
  535. // Token to retrieve the next page of results, or empty if there are no more
  536. // results in the list.
  537. string next_page_token = 2;
  538. }
  539. // List zone actions request.
  540. message ListZoneActionsRequest {
  541. // Required. The resource name of the parent zone:
  542. // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}`.
  543. string parent = 1 [
  544. (google.api.field_behavior) = REQUIRED,
  545. (google.api.resource_reference) = {
  546. type: "dataplex.googleapis.com/Zone"
  547. }
  548. ];
  549. // Optional. Maximum number of actions to return. The service may return fewer than this
  550. // value. If unspecified, at most 10 actions will be returned. The maximum
  551. // value is 1000; values above 1000 will be coerced to 1000.
  552. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
  553. // Optional. Page token received from a previous `ListZoneActions` call. Provide this to
  554. // retrieve the subsequent page. When paginating, all other parameters
  555. // provided to `ListZoneActions` must match the call that provided the page
  556. // token.
  557. string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
  558. }
  559. // Get zone request.
  560. message GetZoneRequest {
  561. // Required. The resource name of the zone:
  562. // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}`.
  563. string name = 1 [
  564. (google.api.field_behavior) = REQUIRED,
  565. (google.api.resource_reference) = {
  566. type: "dataplex.googleapis.com/Zone"
  567. }
  568. ];
  569. }
  570. // Create asset request.
  571. message CreateAssetRequest {
  572. // Required. The resource name of the parent zone:
  573. // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}`.
  574. string parent = 1 [
  575. (google.api.field_behavior) = REQUIRED,
  576. (google.api.resource_reference) = {
  577. type: "dataplex.googleapis.com/Zone"
  578. }
  579. ];
  580. // Required. Asset identifier.
  581. // This ID will be used to generate names such as table names when publishing
  582. // metadata to Hive Metastore and BigQuery.
  583. // * Must contain only lowercase letters, numbers and hyphens.
  584. // * Must start with a letter.
  585. // * Must end with a number or a letter.
  586. // * Must be between 1-63 characters.
  587. // * Must be unique within the zone.
  588. string asset_id = 2 [(google.api.field_behavior) = REQUIRED];
  589. // Required. Asset resource.
  590. Asset asset = 3 [(google.api.field_behavior) = REQUIRED];
  591. // Optional. Only validate the request, but do not perform mutations.
  592. // The default is false.
  593. bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL];
  594. }
  595. // Update asset request.
  596. message UpdateAssetRequest {
  597. // Required. Mask of fields to update.
  598. google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED];
  599. // Required. Update description.
  600. // Only fields specified in `update_mask` are updated.
  601. Asset asset = 2 [(google.api.field_behavior) = REQUIRED];
  602. // Optional. Only validate the request, but do not perform mutations.
  603. // The default is false.
  604. bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL];
  605. }
  606. // Delete asset request.
  607. message DeleteAssetRequest {
  608. // Required. The resource name of the asset:
  609. // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/assets/{asset_id}`.
  610. string name = 1 [
  611. (google.api.field_behavior) = REQUIRED,
  612. (google.api.resource_reference) = {
  613. type: "dataplex.googleapis.com/Asset"
  614. }
  615. ];
  616. }
  617. // List assets request.
  618. message ListAssetsRequest {
  619. // Required. The resource name of the parent zone:
  620. // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}`.
  621. string parent = 1 [
  622. (google.api.field_behavior) = REQUIRED,
  623. (google.api.resource_reference) = {
  624. type: "dataplex.googleapis.com/Zone"
  625. }
  626. ];
  627. // Optional. Maximum number of asset to return. The service may return fewer than
  628. // this value. If unspecified, at most 10 assets will be returned. The
  629. // maximum value is 1000; values above 1000 will be coerced to 1000.
  630. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
  631. // Optional. Page token received from a previous `ListAssets` call. Provide this to
  632. // retrieve the subsequent page. When paginating, all other parameters
  633. // provided to `ListAssets` must match the call that provided the page
  634. // token.
  635. string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
  636. // Optional. Filter request.
  637. string filter = 4 [(google.api.field_behavior) = OPTIONAL];
  638. // Optional. Order by fields for the result.
  639. string order_by = 5 [(google.api.field_behavior) = OPTIONAL];
  640. }
  641. // List assets response.
  642. message ListAssetsResponse {
  643. // Asset under the given parent zone.
  644. repeated Asset assets = 1;
  645. // Token to retrieve the next page of results, or empty if there are no more
  646. // results in the list.
  647. string next_page_token = 2;
  648. }
  649. // List asset actions request.
  650. message ListAssetActionsRequest {
  651. // Required. The resource name of the parent asset:
  652. // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/assets/{asset_id}`.
  653. string parent = 1 [
  654. (google.api.field_behavior) = REQUIRED,
  655. (google.api.resource_reference) = {
  656. type: "dataplex.googleapis.com/Asset"
  657. }
  658. ];
  659. // Optional. Maximum number of actions to return. The service may return fewer than this
  660. // value. If unspecified, at most 10 actions will be returned. The maximum
  661. // value is 1000; values above 1000 will be coerced to 1000.
  662. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
  663. // Optional. Page token received from a previous `ListAssetActions` call. Provide this
  664. // to retrieve the subsequent page. When paginating, all other parameters
  665. // provided to `ListAssetActions` must match the call that provided the page
  666. // token.
  667. string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
  668. }
  669. // Get asset request.
  670. message GetAssetRequest {
  671. // Required. The resource name of the asset:
  672. // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/assets/{asset_id}`.
  673. string name = 1 [
  674. (google.api.field_behavior) = REQUIRED,
  675. (google.api.resource_reference) = {
  676. type: "dataplex.googleapis.com/Asset"
  677. }
  678. ];
  679. }
  680. // Represents the metadata of a long-running operation.
  681. message OperationMetadata {
  682. // Output only. The time the operation was created.
  683. google.protobuf.Timestamp create_time = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  684. // Output only. The time the operation finished running.
  685. google.protobuf.Timestamp end_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
  686. // Output only. Server-defined resource path for the target of the operation.
  687. string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
  688. // Output only. Name of the verb executed by the operation.
  689. string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
  690. // Output only. Human-readable status of the operation, if any.
  691. string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
  692. // Output only. Identifies whether the user has requested cancellation
  693. // of the operation. Operations that have successfully been cancelled
  694. // have [Operation.error][] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1,
  695. // corresponding to `Code.CANCELLED`.
  696. bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
  697. // Output only. API version used to start the operation.
  698. string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
  699. }
  700. // Create task request.
  701. message CreateTaskRequest {
  702. // Required. The resource name of the parent lake:
  703. // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`.
  704. string parent = 1 [
  705. (google.api.field_behavior) = REQUIRED,
  706. (google.api.resource_reference) = {
  707. type: "dataplex.googleapis.com/Lake"
  708. }
  709. ];
  710. // Required. Task identifier.
  711. string task_id = 2 [(google.api.field_behavior) = REQUIRED];
  712. // Required. Task resource.
  713. Task task = 3 [(google.api.field_behavior) = REQUIRED];
  714. // Optional. Only validate the request, but do not perform mutations.
  715. // The default is false.
  716. bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL];
  717. }
  718. // Update task request.
  719. message UpdateTaskRequest {
  720. // Required. Mask of fields to update.
  721. google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED];
  722. // Required. Update description.
  723. // Only fields specified in `update_mask` are updated.
  724. Task task = 2 [(google.api.field_behavior) = REQUIRED];
  725. // Optional. Only validate the request, but do not perform mutations.
  726. // The default is false.
  727. bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL];
  728. }
  729. // Delete task request.
  730. message DeleteTaskRequest {
  731. // Required. The resource name of the task:
  732. // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/task/{task_id}`.
  733. string name = 1 [
  734. (google.api.field_behavior) = REQUIRED,
  735. (google.api.resource_reference) = {
  736. type: "dataplex.googleapis.com/Task"
  737. }
  738. ];
  739. }
  740. // List tasks request.
  741. message ListTasksRequest {
  742. // Required. The resource name of the parent lake:
  743. // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`.
  744. string parent = 1 [
  745. (google.api.field_behavior) = REQUIRED,
  746. (google.api.resource_reference) = {
  747. type: "dataplex.googleapis.com/Lake"
  748. }
  749. ];
  750. // Optional. Maximum number of tasks to return. The service may return fewer than this
  751. // value. If unspecified, at most 10 tasks will be returned. The maximum
  752. // value is 1000; values above 1000 will be coerced to 1000.
  753. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
  754. // Optional. Page token received from a previous `ListZones` call. Provide this to
  755. // retrieve the subsequent page. When paginating, all other parameters
  756. // provided to `ListZones` must match the call that provided the page token.
  757. string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
  758. // Optional. Filter request.
  759. string filter = 4 [(google.api.field_behavior) = OPTIONAL];
  760. // Optional. Order by fields for the result.
  761. string order_by = 5 [(google.api.field_behavior) = OPTIONAL];
  762. }
  763. // List tasks response.
  764. message ListTasksResponse {
  765. // Tasks under the given parent lake.
  766. repeated Task tasks = 1;
  767. // Token to retrieve the next page of results, or empty if there are no more
  768. // results in the list.
  769. string next_page_token = 2;
  770. // Locations that could not be reached.
  771. repeated string unreachable_locations = 3;
  772. }
  773. // Get task request.
  774. message GetTaskRequest {
  775. // Required. The resource name of the task:
  776. // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{tasks_id}`.
  777. string name = 1 [
  778. (google.api.field_behavior) = REQUIRED,
  779. (google.api.resource_reference) = {
  780. type: "dataplex.googleapis.com/Task"
  781. }
  782. ];
  783. }
  784. // Get job request.
  785. message GetJobRequest {
  786. // Required. The resource name of the job:
  787. // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{task_id}/jobs/{job_id}`.
  788. string name = 1 [
  789. (google.api.field_behavior) = REQUIRED,
  790. (google.api.resource_reference) = {
  791. type: "dataplex.googleapis.com/Job"
  792. }
  793. ];
  794. }
  795. // List jobs request.
  796. message ListJobsRequest {
  797. // Required. The resource name of the parent environment:
  798. // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{task_id}`.
  799. string parent = 1 [
  800. (google.api.field_behavior) = REQUIRED,
  801. (google.api.resource_reference) = {
  802. type: "dataplex.googleapis.com/Task"
  803. }
  804. ];
  805. // Optional. Maximum number of jobs to return. The service may return fewer than
  806. // this value. If unspecified, at most 10 jobs will be returned. The
  807. // maximum value is 1000; values above 1000 will be coerced to 1000.
  808. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
  809. // Optional. Page token received from a previous `ListJobs` call. Provide this to
  810. // retrieve the subsequent page. When paginating, all other parameters
  811. // provided to `ListJobs` must match the call that provided the page
  812. // token.
  813. string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
  814. }
  815. // List jobs response.
  816. message ListJobsResponse {
  817. // Jobs under a given task.
  818. repeated Job jobs = 1;
  819. // Token to retrieve the next page of results, or empty if there are no more
  820. // results in the list.
  821. string next_page_token = 2;
  822. }
  823. // Cancel task jobs.
  824. message CancelJobRequest {
  825. // Required. The resource name of the job:
  826. // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/task/{task_id}/job/{job_id}`.
  827. string name = 1 [
  828. (google.api.field_behavior) = REQUIRED,
  829. (google.api.resource_reference) = {
  830. type: "dataplex.googleapis.com/Job"
  831. }
  832. ];
  833. }
  834. // Create environment request.
  835. message CreateEnvironmentRequest {
  836. // Required. The resource name of the parent lake:
  837. // `projects/{project_id}/locations/{location_id}/lakes/{lake_id}`.
  838. string parent = 1 [
  839. (google.api.field_behavior) = REQUIRED,
  840. (google.api.resource_reference) = {
  841. type: "dataplex.googleapis.com/Lake"
  842. }
  843. ];
  844. // Required. Environment identifier.
  845. // * Must contain only lowercase letters, numbers and hyphens.
  846. // * Must start with a letter.
  847. // * Must be between 1-63 characters.
  848. // * Must end with a number or a letter.
  849. // * Must be unique within the lake.
  850. string environment_id = 2 [(google.api.field_behavior) = REQUIRED];
  851. // Required. Environment resource.
  852. Environment environment = 3 [(google.api.field_behavior) = REQUIRED];
  853. // Optional. Only validate the request, but do not perform mutations.
  854. // The default is false.
  855. bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL];
  856. }
  857. // Update environment request.
  858. message UpdateEnvironmentRequest {
  859. // Required. Mask of fields to update.
  860. google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED];
  861. // Required. Update description.
  862. // Only fields specified in `update_mask` are updated.
  863. Environment environment = 2 [(google.api.field_behavior) = REQUIRED];
  864. // Optional. Only validate the request, but do not perform mutations.
  865. // The default is false.
  866. bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL];
  867. }
  868. // Delete environment request.
  869. message DeleteEnvironmentRequest {
  870. // Required. The resource name of the environment:
  871. // `projects/{project_id}/locations/{location_id}/lakes/{lake_id}/environments/{environment_id}`.
  872. string name = 1 [
  873. (google.api.field_behavior) = REQUIRED,
  874. (google.api.resource_reference) = {
  875. type: "dataplex.googleapis.com/Environment"
  876. }
  877. ];
  878. }
  879. // List environments request.
  880. message ListEnvironmentsRequest {
  881. // Required. The resource name of the parent lake:
  882. // `projects/{project_id}/locations/{location_id}/lakes/{lake_id}`.
  883. string parent = 1 [
  884. (google.api.field_behavior) = REQUIRED,
  885. (google.api.resource_reference) = {
  886. type: "dataplex.googleapis.com/Lake"
  887. }
  888. ];
  889. // Optional. Maximum number of environments to return. The service may return fewer than
  890. // this value. If unspecified, at most 10 environments will be returned. The
  891. // maximum value is 1000; values above 1000 will be coerced to 1000.
  892. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
  893. // Optional. Page token received from a previous `ListEnvironments` call. Provide this
  894. // to retrieve the subsequent page. When paginating, all other parameters
  895. // provided to `ListEnvironments` must match the call that provided the page
  896. // token.
  897. string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
  898. // Optional. Filter request.
  899. string filter = 4 [(google.api.field_behavior) = OPTIONAL];
  900. // Optional. Order by fields for the result.
  901. string order_by = 5 [(google.api.field_behavior) = OPTIONAL];
  902. }
  903. // List environments response.
  904. message ListEnvironmentsResponse {
  905. // Environments under the given parent lake.
  906. repeated Environment environments = 1;
  907. // Token to retrieve the next page of results, or empty if there are no more
  908. // results in the list.
  909. string next_page_token = 2;
  910. }
  911. // Get environment request.
  912. message GetEnvironmentRequest {
  913. // Required. The resource name of the environment:
  914. // `projects/{project_id}/locations/{location_id}/lakes/{lake_id}/environments/{environment_id}`.
  915. string name = 1 [
  916. (google.api.field_behavior) = REQUIRED,
  917. (google.api.resource_reference) = {
  918. type: "dataplex.googleapis.com/Environment"
  919. }
  920. ];
  921. }
  922. // List sessions request.
  923. message ListSessionsRequest {
  924. // Required. The resource name of the parent environment:
  925. // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/environment/{environment_id}`.
  926. string parent = 1 [
  927. (google.api.field_behavior) = REQUIRED,
  928. (google.api.resource_reference) = {
  929. type: "dataplex.googleapis.com/Environment"
  930. }
  931. ];
  932. // Optional. Maximum number of sessions to return. The service may return fewer than
  933. // this value. If unspecified, at most 10 sessions will be returned. The
  934. // maximum value is 1000; values above 1000 will be coerced to 1000.
  935. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
  936. // Optional. Page token received from a previous `ListSessions` call. Provide this to
  937. // retrieve the subsequent page. When paginating, all other parameters
  938. // provided to `ListSessions` must match the call that provided the page
  939. // token.
  940. string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
  941. // Optional. Filter request. The following `mode` filter is supported to return only the
  942. // sessions belonging to the requester when the mode is USER and return
  943. // sessions of all the users when the mode is ADMIN. When no filter is sent
  944. // default to USER mode.
  945. // NOTE: When the mode is ADMIN, the requester should have
  946. // `dataplex.environments.listAllSessions` permission to list all sessions,
  947. // in absence of the permission, the request fails.
  948. //
  949. // mode = ADMIN | USER
  950. string filter = 4 [(google.api.field_behavior) = OPTIONAL];
  951. }
  952. // List sessions response.
  953. message ListSessionsResponse {
  954. // Sessions under a given environment.
  955. repeated Session sessions = 1;
  956. // Token to retrieve the next page of results, or empty if there are no more
  957. // results in the list.
  958. string next_page_token = 2;
  959. }