v1beta1.proto 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791
  1. // Copyright 2021 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.datafusion.v1beta1;
  16. import "google/api/annotations.proto";
  17. import "google/api/client.proto";
  18. import "google/api/field_behavior.proto";
  19. import "google/api/resource.proto";
  20. import "google/iam/v1/policy.proto";
  21. import "google/longrunning/operations.proto";
  22. import "google/protobuf/field_mask.proto";
  23. import "google/protobuf/timestamp.proto";
  24. import "google/rpc/status.proto";
  25. option csharp_namespace = "Google.Cloud.DataFusion.V1Beta1";
  26. option go_package = "google.golang.org/genproto/googleapis/cloud/datafusion/v1beta1;datafusion";
  27. option java_multiple_files = true;
  28. option java_package = "com.google.cloud.datafusion.v1beta1";
  29. option php_namespace = "Google\\Cloud\\DataFusion\\V1beta1";
  30. option ruby_package = "Google::Cloud::DataFusion::V1beta1";
  31. option (google.api.resource_definition) = {
  32. type: "cloudkms.googleapis.com/CryptoKey"
  33. pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}"
  34. };
  35. // Service for creating and managing Data Fusion instances.
  36. // Data Fusion enables ETL developers to build code-free, data integration
  37. // pipelines via a point-and-click UI.
  38. service DataFusion {
  39. option (google.api.default_host) = "datafusion.googleapis.com";
  40. option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
  41. // Lists possible versions for Data Fusion instances in the specified project
  42. // and location.
  43. rpc ListAvailableVersions(ListAvailableVersionsRequest) returns (ListAvailableVersionsResponse) {
  44. option (google.api.http) = {
  45. get: "/v1beta1/{parent=projects/*/locations/*}/versions"
  46. };
  47. option (google.api.method_signature) = "parent";
  48. }
  49. // Lists Data Fusion instances in the specified project and location.
  50. rpc ListInstances(ListInstancesRequest) returns (ListInstancesResponse) {
  51. option (google.api.http) = {
  52. get: "/v1beta1/{parent=projects/*/locations/*}/instances"
  53. };
  54. }
  55. // Gets details of a single Data Fusion instance.
  56. rpc GetInstance(GetInstanceRequest) returns (Instance) {
  57. option (google.api.http) = {
  58. get: "/v1beta1/{name=projects/*/locations/*/instances/*}"
  59. };
  60. }
  61. // Creates a new Data Fusion instance in the specified project and location.
  62. rpc CreateInstance(CreateInstanceRequest) returns (google.longrunning.Operation) {
  63. option (google.api.http) = {
  64. post: "/v1beta1/{parent=projects/*/locations/*}/instances"
  65. body: "instance"
  66. };
  67. option (google.api.method_signature) = "parent,instance,instance_id";
  68. option (google.longrunning.operation_info) = {
  69. response_type: "Instance"
  70. metadata_type: "OperationMetadata"
  71. };
  72. }
  73. // Deletes a single Data Fusion instance.
  74. rpc DeleteInstance(DeleteInstanceRequest) returns (google.longrunning.Operation) {
  75. option (google.api.http) = {
  76. delete: "/v1beta1/{name=projects/*/locations/*/instances/*}"
  77. };
  78. option (google.api.method_signature) = "name";
  79. option (google.longrunning.operation_info) = {
  80. response_type: "google.protobuf.Empty"
  81. metadata_type: "OperationMetadata"
  82. };
  83. }
  84. // Updates a single Data Fusion instance.
  85. rpc UpdateInstance(UpdateInstanceRequest) returns (google.longrunning.Operation) {
  86. option (google.api.http) = {
  87. patch: "/v1beta1/{instance.name=projects/*/locations/*/instances/*}"
  88. body: "instance"
  89. };
  90. option (google.api.method_signature) = "instance,update_mask";
  91. option (google.longrunning.operation_info) = {
  92. response_type: "Instance"
  93. metadata_type: "OperationMetadata"
  94. };
  95. }
  96. // Restart a single Data Fusion instance.
  97. // At the end of an operation instance is fully restarted.
  98. rpc RestartInstance(RestartInstanceRequest) returns (google.longrunning.Operation) {
  99. option (google.api.http) = {
  100. post: "/v1beta1/{name=projects/*/locations/*/instances/*}:restart"
  101. body: "*"
  102. };
  103. option (google.longrunning.operation_info) = {
  104. response_type: "Instance"
  105. metadata_type: "OperationMetadata"
  106. };
  107. }
  108. // Upgrade a single Data Fusion instance.
  109. // At the end of an operation instance is fully upgraded.
  110. rpc UpgradeInstance(UpgradeInstanceRequest) returns (google.longrunning.Operation) {
  111. option (google.api.http) = {
  112. post: "/v1beta1/{name=projects/*/locations/*/instances/*}:upgrade"
  113. body: "*"
  114. };
  115. option (google.longrunning.operation_info) = {
  116. response_type: "Instance"
  117. metadata_type: "OperationMetadata"
  118. };
  119. }
  120. // Remove IAM policy that is currently set on the given resource.
  121. rpc RemoveIamPolicy(RemoveIamPolicyRequest) returns (RemoveIamPolicyResponse) {
  122. option (google.api.http) = {
  123. post: "/v1beta1/{resource=projects/*/locations/*/**}:removeIamPolicy"
  124. body: "*"
  125. };
  126. }
  127. // List namespaces in a given instance
  128. rpc ListNamespaces(ListNamespacesRequest) returns (ListNamespacesResponse) {
  129. option (google.api.http) = {
  130. get: "/v1beta1/{parent=projects/*/locations/*/instances/*}/namespaces"
  131. };
  132. option (google.api.method_signature) = "parent";
  133. }
  134. // Add DNS peering on the given resource.
  135. rpc AddDnsPeering(AddDnsPeeringRequest) returns (AddDnsPeeringResponse) {
  136. option (google.api.http) = {
  137. post: "/v1beta1/{parent=projects/*/locations/*/instances/*}/dnsPeerings:add"
  138. body: "*"
  139. };
  140. option (google.api.method_signature) = "parent";
  141. }
  142. // Remove DNS peering on the given resource.
  143. rpc RemoveDnsPeering(RemoveDnsPeeringRequest) returns (RemoveDnsPeeringResponse) {
  144. option (google.api.http) = {
  145. post: "/v1beta1/{parent=projects/*/locations/*/instances/*}/dnsPeerings:remove"
  146. body: "*"
  147. };
  148. option (google.api.method_signature) = "parent";
  149. }
  150. // List DNS peering for a given resource.
  151. rpc ListDnsPeerings(ListDnsPeeringsRequest) returns (ListDnsPeeringsResponse) {
  152. option (google.api.http) = {
  153. get: "/v1beta1/{parent=projects/*/locations/*/instances/*}/dnsPeerings:list"
  154. };
  155. option (google.api.method_signature) = "parent";
  156. }
  157. }
  158. // Network configuration for a Data Fusion instance. These configurations
  159. // are used for peering with the customer network. Configurations are optional
  160. // when a public Data Fusion instance is to be created. However, providing
  161. // these configurations allows several benefits, such as reduced network latency
  162. // while accessing the customer resources from managed Data Fusion instance
  163. // nodes, as well as access to the customer on-prem resources.
  164. message NetworkConfig {
  165. // Name of the network in the customer project with which the Tenant Project
  166. // will be peered for executing pipelines. In case of shared VPC where the
  167. // network resides in another host project the network should specified in
  168. // the form of projects/{host-project-id}/global/networks/{network}
  169. string network = 1;
  170. // The IP range in CIDR notation to use for the managed Data Fusion instance
  171. // nodes. This range must not overlap with any other ranges used in the Data
  172. // Fusion instance network.
  173. string ip_allocation = 2;
  174. }
  175. // The Data Fusion version.
  176. message Version {
  177. // Each type represents the release availability of a CDF version
  178. enum Type {
  179. // Version does not have availability yet
  180. TYPE_UNSPECIFIED = 0;
  181. // Version is under development and not considered stable
  182. TYPE_PREVIEW = 1;
  183. // Version is available for public use
  184. TYPE_GENERAL_AVAILABILITY = 2;
  185. }
  186. // The version number of the Data Fusion instance, such as '6.0.1.0'.
  187. string version_number = 1;
  188. // Whether this is currently the default version for Cloud Data Fusion
  189. bool default_version = 2;
  190. // Represents a list of available feature names for a given version.
  191. repeated string available_features = 3;
  192. // Type represents the release availability of the version
  193. Type type = 4;
  194. }
  195. // Identifies Data Fusion accelerators for an instance.
  196. message Accelerator {
  197. // Each type represents an Accelerator (Add-On) supported by Cloud Data Fusion
  198. // service.
  199. enum AcceleratorType {
  200. // Default value, if unspecified.
  201. ACCELERATOR_TYPE_UNSPECIFIED = 0;
  202. // Change Data Capture accelerator for CDF.
  203. CDC = 1;
  204. // Cloud Healthcare accelerator for CDF. This accelerator is to enable Cloud
  205. // Healthcare specific CDF plugins developed by Healthcare team.
  206. HEALTHCARE = 2;
  207. }
  208. // The type of an accelator for a CDF instance.
  209. AcceleratorType accelerator_type = 1;
  210. }
  211. // The crypto key configuration. This field is used by the Customer-managed
  212. // encryption keys (CMEK) feature.
  213. message CryptoKeyConfig {
  214. // The name of the key which is used to encrypt/decrypt customer data. For key
  215. // in Cloud KMS, the key should be in the format of
  216. // `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
  217. string key_reference = 1 [(google.api.resource_reference) = {
  218. type: "cloudkms.googleapis.com/CryptoKey"
  219. }];
  220. }
  221. // Represents a Data Fusion instance.
  222. message Instance {
  223. option (google.api.resource) = {
  224. type: "datafusion.googleapis.com/Instance"
  225. pattern: "projects/{project}/locations/{location}/instances/{instance}"
  226. };
  227. // Represents the type of Data Fusion instance. Each type is configured with
  228. // the default settings for processing and memory.
  229. enum Type {
  230. // No type specified. The instance creation will fail.
  231. TYPE_UNSPECIFIED = 0;
  232. // Basic Data Fusion instance. In Basic type, the user will be able to
  233. // create data pipelines using point and click UI. However, there are
  234. // certain limitations, such as fewer number of concurrent pipelines, no
  235. // support for streaming pipelines, etc.
  236. BASIC = 1;
  237. // Enterprise Data Fusion instance. In Enterprise type, the user will have
  238. // all features available, such as support for streaming pipelines,
  239. // unlimited number of concurrent pipelines, etc.
  240. ENTERPRISE = 2;
  241. // Developer Data Fusion instance. In Developer type, the user will have all
  242. // features available but with restrictive capabilities. This is to help
  243. // enterprises design and develop their data ingestion and integration
  244. // pipelines at low cost.
  245. DEVELOPER = 3;
  246. }
  247. // Represents the state of a Data Fusion instance
  248. enum State {
  249. // Instance does not have a state yet
  250. STATE_UNSPECIFIED = 0;
  251. // Instance is being created
  252. CREATING = 1;
  253. // Instance is running and ready for requests
  254. RUNNING = 2;
  255. // Instance creation failed
  256. FAILED = 3;
  257. // Instance is being deleted
  258. DELETING = 4;
  259. // Instance is being upgraded
  260. UPGRADING = 5;
  261. // Instance is being restarted
  262. RESTARTING = 6;
  263. // Instance is being updated on customer request
  264. UPDATING = 7;
  265. // Instance is being auto-updated
  266. AUTO_UPDATING = 8;
  267. // Instance is being auto-upgraded
  268. AUTO_UPGRADING = 9;
  269. // Instance is disabled
  270. DISABLED = 10;
  271. }
  272. // The reason for disabling the instance if the state is DISABLED.
  273. enum DisabledReason {
  274. // This is an unknown reason for disabling.
  275. DISABLED_REASON_UNSPECIFIED = 0;
  276. // The KMS key used by the instance is either revoked or denied access to
  277. KMS_KEY_ISSUE = 1;
  278. }
  279. // Output only. The name of this instance is in the form of
  280. // projects/{project}/locations/{location}/instances/{instance}.
  281. string name = 1 [
  282. (google.api.field_behavior) = OUTPUT_ONLY,
  283. (google.api.resource_reference) = {
  284. type: "datafusion.googleapis.com/Instance"
  285. }
  286. ];
  287. // A description of this instance.
  288. string description = 2;
  289. // Required. Instance type.
  290. Type type = 3 [(google.api.field_behavior) = REQUIRED];
  291. // Option to enable Stackdriver Logging.
  292. bool enable_stackdriver_logging = 4;
  293. // Option to enable Stackdriver Monitoring.
  294. bool enable_stackdriver_monitoring = 5;
  295. // Specifies whether the Data Fusion instance should be private. If set to
  296. // true, all Data Fusion nodes will have private IP addresses and will not be
  297. // able to access the public internet.
  298. bool private_instance = 6;
  299. // Network configuration options. These are required when a private Data
  300. // Fusion instance is to be created.
  301. NetworkConfig network_config = 7;
  302. // The resource labels for instance to use to annotate any related underlying
  303. // resources such as Compute Engine VMs. The character '=' is not allowed to
  304. // be used within the labels.
  305. map<string, string> labels = 8;
  306. // Map of additional options used to configure the behavior of
  307. // Data Fusion instance.
  308. map<string, string> options = 9;
  309. // Output only. The time the instance was created.
  310. google.protobuf.Timestamp create_time = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
  311. // Output only. The time the instance was last updated.
  312. google.protobuf.Timestamp update_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
  313. // Output only. The current state of this Data Fusion instance.
  314. State state = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
  315. // Output only. Additional information about the current state of this Data
  316. // Fusion instance if available.
  317. string state_message = 13 [(google.api.field_behavior) = OUTPUT_ONLY];
  318. // Output only. Endpoint on which the Data Fusion UI is accessible.
  319. string service_endpoint = 14 [(google.api.field_behavior) = OUTPUT_ONLY];
  320. // Name of the zone in which the Data Fusion instance will be created. Only
  321. // DEVELOPER instances use this field.
  322. string zone = 15;
  323. // Current version of Data Fusion.
  324. string version = 16;
  325. // Output only. Deprecated. Use tenant_project_id instead to extract the tenant project ID.
  326. string service_account = 17 [
  327. deprecated = true,
  328. (google.api.field_behavior) = OUTPUT_ONLY
  329. ];
  330. // Display name for an instance.
  331. string display_name = 18;
  332. // Available versions that the instance can be upgraded to using
  333. // UpdateInstanceRequest.
  334. repeated Version available_version = 19;
  335. // Output only. Endpoint on which the REST APIs is accessible.
  336. string api_endpoint = 20 [(google.api.field_behavior) = OUTPUT_ONLY];
  337. // Output only. Cloud Storage bucket generated by Data Fusion in the customer project.
  338. string gcs_bucket = 21 [(google.api.field_behavior) = OUTPUT_ONLY];
  339. // List of accelerators enabled for this CDF instance.
  340. repeated Accelerator accelerators = 22;
  341. // Output only. P4 service account for the customer project.
  342. string p4_service_account = 23 [(google.api.field_behavior) = OUTPUT_ONLY];
  343. // Output only. The name of the tenant project.
  344. string tenant_project_id = 24 [(google.api.field_behavior) = OUTPUT_ONLY];
  345. // User-managed service account to set on Dataproc when Cloud Data Fusion
  346. // creates Dataproc to run data processing pipelines.
  347. //
  348. // This allows users to have fine-grained access control on Dataproc's
  349. // accesses to cloud resources.
  350. string dataproc_service_account = 25;
  351. // Option to enable granular role-based access control.
  352. bool enable_rbac = 26;
  353. // The crypto key configuration. This field is used by the Customer-Managed
  354. // Encryption Keys (CMEK) feature.
  355. CryptoKeyConfig crypto_key_config = 27;
  356. // Output only. If the instance state is DISABLED, the reason for disabling the instance.
  357. repeated DisabledReason disabled_reason = 28 [(google.api.field_behavior) = OUTPUT_ONLY];
  358. }
  359. // Request message for listing Data Fusion instances.
  360. message ListInstancesRequest {
  361. // Required. The project and location for which to retrieve instance information
  362. // in the format projects/{project}/locations/{location}. If the location is
  363. // specified as '-' (wildcard), then all regions available to the project
  364. // are queried, and the results are aggregated.
  365. string parent = 1 [
  366. (google.api.field_behavior) = REQUIRED,
  367. (google.api.resource_reference) = {
  368. type: "locations.googleapis.com/Location"
  369. }
  370. ];
  371. // The maximum number of items to return.
  372. int32 page_size = 2;
  373. // The next_page_token value to use if there are additional
  374. // results to retrieve for this list request.
  375. string page_token = 3;
  376. // List filter.
  377. string filter = 4;
  378. // Sort results. Supported values are "name", "name desc", or "" (unsorted).
  379. string order_by = 5;
  380. }
  381. // Response message for the list instance request.
  382. message ListInstancesResponse {
  383. // Represents a list of Data Fusion instances.
  384. repeated Instance instances = 1;
  385. // Token to retrieve the next page of results or empty if there are no more
  386. // results in the list.
  387. string next_page_token = 2;
  388. // Locations that could not be reached.
  389. repeated string unreachable = 3;
  390. }
  391. // Request message for the list available versions request.
  392. message ListAvailableVersionsRequest {
  393. // Required. The project and location for which to retrieve instance information
  394. // in the format projects/{project}/locations/{location}.
  395. string parent = 1 [
  396. (google.api.field_behavior) = REQUIRED,
  397. (google.api.resource_reference) = {
  398. type: "locations.googleapis.com/Location"
  399. }
  400. ];
  401. // The maximum number of items to return.
  402. int32 page_size = 2;
  403. // The next_page_token value to use if there are additional
  404. // results to retrieve for this list request.
  405. string page_token = 3;
  406. // Whether or not to return the latest patch of every available minor version.
  407. // If true, only the latest patch will be returned. Ex. if allowed versions is
  408. // [6.1.1, 6.1.2, 6.2.0] then response will be [6.1.2, 6.2.0]
  409. bool latest_patch_only = 4;
  410. }
  411. // Response message for the list available versions request.
  412. message ListAvailableVersionsResponse {
  413. // Represents a list of versions that are supported.
  414. repeated Version available_versions = 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. }
  419. // Request message for getting details about a Data Fusion instance.
  420. message GetInstanceRequest {
  421. // Required. The instance resource name in the format
  422. // projects/{project}/locations/{location}/instances/{instance}.
  423. string name = 1 [
  424. (google.api.field_behavior) = REQUIRED,
  425. (google.api.resource_reference) = {
  426. type: "datafusion.googleapis.com/Instance"
  427. }
  428. ];
  429. }
  430. // Request message for creating a Data Fusion instance.
  431. message CreateInstanceRequest {
  432. // Required. The instance's project and location in the format
  433. // projects/{project}/locations/{location}.
  434. string parent = 1 [
  435. (google.api.field_behavior) = REQUIRED,
  436. (google.api.resource_reference) = {
  437. type: "locations.googleapis.com/Location"
  438. }
  439. ];
  440. // Required. The name of the instance to create.
  441. string instance_id = 2 [(google.api.field_behavior) = REQUIRED];
  442. // An instance resource.
  443. Instance instance = 3;
  444. }
  445. // Request message for deleting a Data Fusion instance.
  446. message DeleteInstanceRequest {
  447. // Required. The instance resource name in the format
  448. // projects/{project}/locations/{location}/instances/{instance}
  449. string name = 1 [
  450. (google.api.field_behavior) = REQUIRED,
  451. (google.api.resource_reference) = {
  452. type: "datafusion.googleapis.com/Instance"
  453. }
  454. ];
  455. }
  456. // Request message for updating a Data Fusion instance.
  457. // Data Fusion only allows updating the labels, options, and stack driver
  458. // settings.
  459. message UpdateInstanceRequest {
  460. // Required. The instance resource that replaces the resource on the server. Currently,
  461. // Data Fusion only allows replacing labels, options, and stack driver
  462. // settings. All other fields will be ignored.
  463. Instance instance = 1 [(google.api.field_behavior) = REQUIRED];
  464. // Field mask is used to specify the fields that the update will overwrite
  465. // in an instance resource. The fields specified in the update_mask are
  466. // relative to the resource, not the full request.
  467. // A field will be overwritten if it is in the mask.
  468. // If the user does not provide a mask, all the supported fields (labels and
  469. // options currently) will be overwritten.
  470. google.protobuf.FieldMask update_mask = 2;
  471. }
  472. // Request message for restarting a Data Fusion instance.
  473. message RestartInstanceRequest {
  474. // Required. Name of the Data Fusion instance which need to be restarted in the form of
  475. // projects/{project}/locations/{location}/instances/{instance}
  476. string name = 1 [
  477. (google.api.field_behavior) = REQUIRED,
  478. (google.api.resource_reference) = {
  479. type: "datafusion.googleapis.com/Instance"
  480. }
  481. ];
  482. }
  483. // Request message for upgrading a Data Fusion instance.
  484. // To change the instance properties, instance update should be used.
  485. message UpgradeInstanceRequest {
  486. // Required. Name of the Data Fusion instance which need to be upgraded in the form of
  487. // projects/{project}/locations/{location}/instances/{instance}
  488. // Instance will be upgraded with the latest stable version of the Data
  489. // Fusion.
  490. string name = 1 [
  491. (google.api.field_behavior) = REQUIRED,
  492. (google.api.resource_reference) = {
  493. type: "datafusion.googleapis.com/Instance"
  494. }
  495. ];
  496. }
  497. // Represents the metadata of a long-running operation.
  498. message OperationMetadata {
  499. // The time the operation was created.
  500. google.protobuf.Timestamp create_time = 1;
  501. // The time the operation finished running.
  502. google.protobuf.Timestamp end_time = 2;
  503. // Server-defined resource path for the target of the operation.
  504. string target = 3;
  505. // Name of the verb executed by the operation.
  506. string verb = 4;
  507. // Human-readable status of the operation if any.
  508. string status_detail = 5;
  509. // Identifies whether the user has requested cancellation
  510. // of the operation. Operations that have successfully been cancelled
  511. // have [Operation.error][] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1,
  512. // corresponding to `Code.CANCELLED`.
  513. bool requested_cancellation = 6;
  514. // API version used to start the operation.
  515. string api_version = 7;
  516. }
  517. // Request message for RemoveIamPolicy method.
  518. message RemoveIamPolicyRequest {
  519. // Required. The resource on which IAM policy to be removed is attached to.
  520. string resource = 1 [(google.api.field_behavior) = REQUIRED];
  521. }
  522. // Response message for RemoveIamPolicy method.
  523. message RemoveIamPolicyResponse {
  524. }
  525. // List namespaces request.
  526. message ListNamespacesRequest {
  527. // Required. The instance to list its namespaces.
  528. string parent = 1 [
  529. (google.api.field_behavior) = REQUIRED,
  530. (google.api.resource_reference) = {
  531. type: "datafusion.googleapis.com/Instance"
  532. }
  533. ];
  534. // The maximum number of items to return.
  535. int32 page_size = 2;
  536. // The next_page_token value to use if there are additional
  537. // results to retrieve for this list request.
  538. string page_token = 3;
  539. // By default, only basic information about a namespace is returned
  540. // (e.g. name). When `NAMESPACE_VIEW_FULL` is specified, additional
  541. // information associated with a namespace gets returned
  542. // (e.g. IAM policy set on the namespace)
  543. NamespaceView view = 4;
  544. }
  545. // IAMPolicy encapsulates the IAM policy name, definition and status of
  546. // policy fetching.
  547. message IAMPolicy {
  548. // Policy definition if IAM policy fetching is successful,
  549. // otherwise empty.
  550. google.iam.v1.Policy policy = 1;
  551. // Status of iam policy fetching.
  552. google.rpc.Status status = 2;
  553. }
  554. // Represents the information of a namespace
  555. message Namespace {
  556. option (google.api.resource) = {
  557. type: "datafusion.googleapis.com/Namespace"
  558. pattern: "projects/{project}/locations/{location}/instances/{instance}/namespaces/{namespace}"
  559. };
  560. // Name of the given namespace.
  561. string name = 1;
  562. // IAM policy associated with this namespace.
  563. IAMPolicy iam_policy = 2;
  564. }
  565. // List namespaces response.
  566. message ListNamespacesResponse {
  567. // List of namespaces
  568. repeated Namespace namespaces = 1;
  569. // Token to retrieve the next page of results or empty if there are no more
  570. // results in the list.
  571. string next_page_token = 2;
  572. }
  573. // DNS peering configuration. These configurations are used to create
  574. // DNS peering with the customer Cloud DNS.
  575. message DnsPeering {
  576. // Required. Name of the zone.
  577. string zone = 1 [(google.api.field_behavior) = REQUIRED];
  578. // Required. Name of the dns.
  579. string domain = 2 [(google.api.field_behavior) = REQUIRED];
  580. // Optional. Optional description of the dns zone.
  581. string description = 3 [(google.api.field_behavior) = OPTIONAL];
  582. // Optional. Optional target project to which dns peering should happen.
  583. string target_project = 4 [(google.api.field_behavior) = OPTIONAL];
  584. // Optional. Optional target network to which dns peering should happen.
  585. string target_network = 5 [(google.api.field_behavior) = OPTIONAL];
  586. }
  587. // Request message to create dns peering.
  588. message AddDnsPeeringRequest {
  589. // Required. The resource on which DNS peering will be created.
  590. string parent = 1 [
  591. (google.api.field_behavior) = REQUIRED,
  592. (google.api.resource_reference) = {
  593. type: "datafusion.googleapis.com/Instance"
  594. }
  595. ];
  596. // Dns peering config.
  597. DnsPeering dns_peering = 2;
  598. }
  599. // Response message for set dns peering method.
  600. message AddDnsPeeringResponse {
  601. }
  602. // A view for Namespace
  603. enum NamespaceView {
  604. // Default/unset value, which will use BASIC view.
  605. NAMESPACE_VIEW_UNSPECIFIED = 0;
  606. // Show the most basic metadata of a namespace
  607. NAMESPACE_VIEW_BASIC = 1;
  608. // Returns all metadata of a namespace
  609. NAMESPACE_VIEW_FULL = 2;
  610. }
  611. // Request message to remove dns peering.
  612. message RemoveDnsPeeringRequest {
  613. // Required. The resource on which DNS peering will be removed.
  614. string parent = 1 [
  615. (google.api.field_behavior) = REQUIRED,
  616. (google.api.resource_reference) = {
  617. type: "datafusion.googleapis.com/Instance"
  618. }
  619. ];
  620. // Required. The zone to be removed.
  621. string zone = 2 [(google.api.field_behavior) = REQUIRED];
  622. }
  623. // Response message for set dns peering method.
  624. message RemoveDnsPeeringResponse {
  625. }
  626. // List dns peering request.
  627. message ListDnsPeeringsRequest {
  628. // Required. The resource on which dns peering will be listed.
  629. string parent = 1 [
  630. (google.api.field_behavior) = REQUIRED,
  631. (google.api.resource_reference) = {
  632. type: "datafusion.googleapis.com/Instance"
  633. }
  634. ];
  635. // The maximum number of items to return.
  636. int32 page_size = 2;
  637. // The next_page_token value to use if there are additional
  638. // results to retrieve for this list request.
  639. string page_token = 3;
  640. }
  641. // List dns peering response.
  642. message ListDnsPeeringsResponse {
  643. // List of dns peering configs.
  644. repeated DnsPeering dns_peerings = 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. }