bigtable_instance_admin.proto 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739
  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.bigtable.admin.v2;
  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/bigtable/admin/v2/instance.proto";
  21. import "google/iam/v1/iam_policy.proto";
  22. import "google/iam/v1/policy.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 csharp_namespace = "Google.Cloud.Bigtable.Admin.V2";
  28. option go_package = "google.golang.org/genproto/googleapis/bigtable/admin/v2;admin";
  29. option java_multiple_files = true;
  30. option java_outer_classname = "BigtableInstanceAdminProto";
  31. option java_package = "com.google.bigtable.admin.v2";
  32. option php_namespace = "Google\\Cloud\\Bigtable\\Admin\\V2";
  33. option ruby_package = "Google::Cloud::Bigtable::Admin::V2";
  34. // Service for creating, configuring, and deleting Cloud Bigtable Instances and
  35. // Clusters. Provides access to the Instance and Cluster schemas only, not the
  36. // tables' metadata or data stored in those tables.
  37. service BigtableInstanceAdmin {
  38. option (google.api.default_host) = "bigtableadmin.googleapis.com";
  39. option (google.api.oauth_scopes) =
  40. "https://www.googleapis.com/auth/bigtable.admin,"
  41. "https://www.googleapis.com/auth/bigtable.admin.cluster,"
  42. "https://www.googleapis.com/auth/bigtable.admin.instance,"
  43. "https://www.googleapis.com/auth/cloud-bigtable.admin,"
  44. "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster,"
  45. "https://www.googleapis.com/auth/cloud-platform,"
  46. "https://www.googleapis.com/auth/cloud-platform.read-only";
  47. // Create an instance within a project.
  48. //
  49. // Note that exactly one of Cluster.serve_nodes and
  50. // Cluster.cluster_config.cluster_autoscaling_config can be set. If
  51. // serve_nodes is set to non-zero, then the cluster is manually scaled. If
  52. // cluster_config.cluster_autoscaling_config is non-empty, then autoscaling is
  53. // enabled.
  54. rpc CreateInstance(CreateInstanceRequest) returns (google.longrunning.Operation) {
  55. option (google.api.http) = {
  56. post: "/v2/{parent=projects/*}/instances"
  57. body: "*"
  58. };
  59. option (google.api.method_signature) = "parent,instance_id,instance,clusters";
  60. option (google.longrunning.operation_info) = {
  61. response_type: "Instance"
  62. metadata_type: "CreateInstanceMetadata"
  63. };
  64. }
  65. // Gets information about an instance.
  66. rpc GetInstance(GetInstanceRequest) returns (Instance) {
  67. option (google.api.http) = {
  68. get: "/v2/{name=projects/*/instances/*}"
  69. };
  70. option (google.api.method_signature) = "name";
  71. }
  72. // Lists information about instances in a project.
  73. rpc ListInstances(ListInstancesRequest) returns (ListInstancesResponse) {
  74. option (google.api.http) = {
  75. get: "/v2/{parent=projects/*}/instances"
  76. };
  77. option (google.api.method_signature) = "parent";
  78. }
  79. // Updates an instance within a project. This method updates only the display
  80. // name and type for an Instance. To update other Instance properties, such as
  81. // labels, use PartialUpdateInstance.
  82. rpc UpdateInstance(Instance) returns (Instance) {
  83. option (google.api.http) = {
  84. put: "/v2/{name=projects/*/instances/*}"
  85. body: "*"
  86. };
  87. }
  88. // Partially updates an instance within a project. This method can modify all
  89. // fields of an Instance and is the preferred way to update an Instance.
  90. rpc PartialUpdateInstance(PartialUpdateInstanceRequest) returns (google.longrunning.Operation) {
  91. option (google.api.http) = {
  92. patch: "/v2/{instance.name=projects/*/instances/*}"
  93. body: "instance"
  94. };
  95. option (google.api.method_signature) = "instance,update_mask";
  96. option (google.longrunning.operation_info) = {
  97. response_type: "Instance"
  98. metadata_type: "UpdateInstanceMetadata"
  99. };
  100. }
  101. // Delete an instance from a project.
  102. rpc DeleteInstance(DeleteInstanceRequest) returns (google.protobuf.Empty) {
  103. option (google.api.http) = {
  104. delete: "/v2/{name=projects/*/instances/*}"
  105. };
  106. option (google.api.method_signature) = "name";
  107. }
  108. // Creates a cluster within an instance.
  109. //
  110. // Note that exactly one of Cluster.serve_nodes and
  111. // Cluster.cluster_config.cluster_autoscaling_config can be set. If
  112. // serve_nodes is set to non-zero, then the cluster is manually scaled. If
  113. // cluster_config.cluster_autoscaling_config is non-empty, then autoscaling is
  114. // enabled.
  115. rpc CreateCluster(CreateClusterRequest) returns (google.longrunning.Operation) {
  116. option (google.api.http) = {
  117. post: "/v2/{parent=projects/*/instances/*}/clusters"
  118. body: "cluster"
  119. };
  120. option (google.api.method_signature) = "parent,cluster_id,cluster";
  121. option (google.longrunning.operation_info) = {
  122. response_type: "Cluster"
  123. metadata_type: "CreateClusterMetadata"
  124. };
  125. }
  126. // Gets information about a cluster.
  127. rpc GetCluster(GetClusterRequest) returns (Cluster) {
  128. option (google.api.http) = {
  129. get: "/v2/{name=projects/*/instances/*/clusters/*}"
  130. };
  131. option (google.api.method_signature) = "name";
  132. }
  133. // Lists information about clusters in an instance.
  134. rpc ListClusters(ListClustersRequest) returns (ListClustersResponse) {
  135. option (google.api.http) = {
  136. get: "/v2/{parent=projects/*/instances/*}/clusters"
  137. };
  138. option (google.api.method_signature) = "parent";
  139. }
  140. // Updates a cluster within an instance.
  141. //
  142. // Note that UpdateCluster does not support updating
  143. // cluster_config.cluster_autoscaling_config. In order to update it, you
  144. // must use PartialUpdateCluster.
  145. rpc UpdateCluster(Cluster) returns (google.longrunning.Operation) {
  146. option (google.api.http) = {
  147. put: "/v2/{name=projects/*/instances/*/clusters/*}"
  148. body: "*"
  149. };
  150. option (google.longrunning.operation_info) = {
  151. response_type: "Cluster"
  152. metadata_type: "UpdateClusterMetadata"
  153. };
  154. }
  155. // Partially updates a cluster within a project. This method is the preferred
  156. // way to update a Cluster.
  157. //
  158. // To enable and update autoscaling, set
  159. // cluster_config.cluster_autoscaling_config. When autoscaling is enabled,
  160. // serve_nodes is treated as an OUTPUT_ONLY field, meaning that updates to it
  161. // are ignored. Note that an update cannot simultaneously set serve_nodes to
  162. // non-zero and cluster_config.cluster_autoscaling_config to non-empty, and
  163. // also specify both in the update_mask.
  164. //
  165. // To disable autoscaling, clear cluster_config.cluster_autoscaling_config,
  166. // and explicitly set a serve_node count via the update_mask.
  167. rpc PartialUpdateCluster(PartialUpdateClusterRequest) returns (google.longrunning.Operation) {
  168. option (google.api.http) = {
  169. patch: "/v2/{cluster.name=projects/*/instances/*/clusters/*}"
  170. body: "cluster"
  171. };
  172. option (google.api.method_signature) = "cluster,update_mask";
  173. option (google.longrunning.operation_info) = {
  174. response_type: "Cluster"
  175. metadata_type: "PartialUpdateClusterMetadata"
  176. };
  177. }
  178. // Deletes a cluster from an instance.
  179. rpc DeleteCluster(DeleteClusterRequest) returns (google.protobuf.Empty) {
  180. option (google.api.http) = {
  181. delete: "/v2/{name=projects/*/instances/*/clusters/*}"
  182. };
  183. option (google.api.method_signature) = "name";
  184. }
  185. // Creates an app profile within an instance.
  186. rpc CreateAppProfile(CreateAppProfileRequest) returns (AppProfile) {
  187. option (google.api.http) = {
  188. post: "/v2/{parent=projects/*/instances/*}/appProfiles"
  189. body: "app_profile"
  190. };
  191. option (google.api.method_signature) = "parent,app_profile_id,app_profile";
  192. }
  193. // Gets information about an app profile.
  194. rpc GetAppProfile(GetAppProfileRequest) returns (AppProfile) {
  195. option (google.api.http) = {
  196. get: "/v2/{name=projects/*/instances/*/appProfiles/*}"
  197. };
  198. option (google.api.method_signature) = "name";
  199. }
  200. // Lists information about app profiles in an instance.
  201. rpc ListAppProfiles(ListAppProfilesRequest) returns (ListAppProfilesResponse) {
  202. option (google.api.http) = {
  203. get: "/v2/{parent=projects/*/instances/*}/appProfiles"
  204. };
  205. option (google.api.method_signature) = "parent";
  206. }
  207. // Updates an app profile within an instance.
  208. rpc UpdateAppProfile(UpdateAppProfileRequest) returns (google.longrunning.Operation) {
  209. option (google.api.http) = {
  210. patch: "/v2/{app_profile.name=projects/*/instances/*/appProfiles/*}"
  211. body: "app_profile"
  212. };
  213. option (google.api.method_signature) = "app_profile,update_mask";
  214. option (google.longrunning.operation_info) = {
  215. response_type: "AppProfile"
  216. metadata_type: "UpdateAppProfileMetadata"
  217. };
  218. }
  219. // Deletes an app profile from an instance.
  220. rpc DeleteAppProfile(DeleteAppProfileRequest) returns (google.protobuf.Empty) {
  221. option (google.api.http) = {
  222. delete: "/v2/{name=projects/*/instances/*/appProfiles/*}"
  223. };
  224. option (google.api.method_signature) = "name";
  225. }
  226. // Gets the access control policy for an instance resource. Returns an empty
  227. // policy if an instance exists but does not have a policy set.
  228. rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) returns (google.iam.v1.Policy) {
  229. option (google.api.http) = {
  230. post: "/v2/{resource=projects/*/instances/*}:getIamPolicy"
  231. body: "*"
  232. };
  233. option (google.api.method_signature) = "resource";
  234. }
  235. // Sets the access control policy on an instance resource. Replaces any
  236. // existing policy.
  237. rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) returns (google.iam.v1.Policy) {
  238. option (google.api.http) = {
  239. post: "/v2/{resource=projects/*/instances/*}:setIamPolicy"
  240. body: "*"
  241. };
  242. option (google.api.method_signature) = "resource,policy";
  243. }
  244. // Returns permissions that the caller has on the specified instance resource.
  245. rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) returns (google.iam.v1.TestIamPermissionsResponse) {
  246. option (google.api.http) = {
  247. post: "/v2/{resource=projects/*/instances/*}:testIamPermissions"
  248. body: "*"
  249. };
  250. option (google.api.method_signature) = "resource,permissions";
  251. }
  252. // Lists hot tablets in a cluster, within the time range provided. Hot
  253. // tablets are ordered based on CPU usage.
  254. rpc ListHotTablets(ListHotTabletsRequest) returns (ListHotTabletsResponse) {
  255. option (google.api.http) = {
  256. get: "/v2/{parent=projects/*/instances/*/clusters/*}/hotTablets"
  257. };
  258. option (google.api.method_signature) = "parent";
  259. }
  260. }
  261. // Request message for BigtableInstanceAdmin.CreateInstance.
  262. message CreateInstanceRequest {
  263. // Required. The unique name of the project in which to create the new instance.
  264. // Values are of the form `projects/{project}`.
  265. string parent = 1 [
  266. (google.api.field_behavior) = REQUIRED,
  267. (google.api.resource_reference) = {
  268. type: "cloudresourcemanager.googleapis.com/Project"
  269. }
  270. ];
  271. // Required. The ID to be used when referring to the new instance within its project,
  272. // e.g., just `myinstance` rather than
  273. // `projects/myproject/instances/myinstance`.
  274. string instance_id = 2 [(google.api.field_behavior) = REQUIRED];
  275. // Required. The instance to create.
  276. // Fields marked `OutputOnly` must be left blank.
  277. Instance instance = 3 [(google.api.field_behavior) = REQUIRED];
  278. // Required. The clusters to be created within the instance, mapped by desired
  279. // cluster ID, e.g., just `mycluster` rather than
  280. // `projects/myproject/instances/myinstance/clusters/mycluster`.
  281. // Fields marked `OutputOnly` must be left blank.
  282. // Currently, at most four clusters can be specified.
  283. map<string, Cluster> clusters = 4 [(google.api.field_behavior) = REQUIRED];
  284. }
  285. // Request message for BigtableInstanceAdmin.GetInstance.
  286. message GetInstanceRequest {
  287. // Required. The unique name of the requested instance. Values are of the form
  288. // `projects/{project}/instances/{instance}`.
  289. string name = 1 [
  290. (google.api.field_behavior) = REQUIRED,
  291. (google.api.resource_reference) = {
  292. type: "bigtableadmin.googleapis.com/Instance"
  293. }
  294. ];
  295. }
  296. // Request message for BigtableInstanceAdmin.ListInstances.
  297. message ListInstancesRequest {
  298. // Required. The unique name of the project for which a list of instances is requested.
  299. // Values are of the form `projects/{project}`.
  300. string parent = 1 [
  301. (google.api.field_behavior) = REQUIRED,
  302. (google.api.resource_reference) = {
  303. type: "cloudresourcemanager.googleapis.com/Project"
  304. }
  305. ];
  306. // DEPRECATED: This field is unused and ignored.
  307. string page_token = 2;
  308. }
  309. // Response message for BigtableInstanceAdmin.ListInstances.
  310. message ListInstancesResponse {
  311. // The list of requested instances.
  312. repeated Instance instances = 1;
  313. // Locations from which Instance information could not be retrieved,
  314. // due to an outage or some other transient condition.
  315. // Instances whose Clusters are all in one of the failed locations
  316. // may be missing from `instances`, and Instances with at least one
  317. // Cluster in a failed location may only have partial information returned.
  318. // Values are of the form `projects/<project>/locations/<zone_id>`
  319. repeated string failed_locations = 2;
  320. // DEPRECATED: This field is unused and ignored.
  321. string next_page_token = 3;
  322. }
  323. // Request message for BigtableInstanceAdmin.PartialUpdateInstance.
  324. message PartialUpdateInstanceRequest {
  325. // Required. The Instance which will (partially) replace the current value.
  326. Instance instance = 1 [(google.api.field_behavior) = REQUIRED];
  327. // Required. The subset of Instance fields which should be replaced.
  328. // Must be explicitly set.
  329. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
  330. }
  331. // Request message for BigtableInstanceAdmin.DeleteInstance.
  332. message DeleteInstanceRequest {
  333. // Required. The unique name of the instance to be deleted.
  334. // Values are of the form `projects/{project}/instances/{instance}`.
  335. string name = 1 [
  336. (google.api.field_behavior) = REQUIRED,
  337. (google.api.resource_reference) = {
  338. type: "bigtableadmin.googleapis.com/Instance"
  339. }
  340. ];
  341. }
  342. // Request message for BigtableInstanceAdmin.CreateCluster.
  343. message CreateClusterRequest {
  344. // Required. The unique name of the instance in which to create the new cluster.
  345. // Values are of the form
  346. // `projects/{project}/instances/{instance}`.
  347. string parent = 1 [
  348. (google.api.field_behavior) = REQUIRED,
  349. (google.api.resource_reference) = {
  350. type: "bigtableadmin.googleapis.com/Instance"
  351. }
  352. ];
  353. // Required. The ID to be used when referring to the new cluster within its instance,
  354. // e.g., just `mycluster` rather than
  355. // `projects/myproject/instances/myinstance/clusters/mycluster`.
  356. string cluster_id = 2 [(google.api.field_behavior) = REQUIRED];
  357. // Required. The cluster to be created.
  358. // Fields marked `OutputOnly` must be left blank.
  359. Cluster cluster = 3 [(google.api.field_behavior) = REQUIRED];
  360. }
  361. // Request message for BigtableInstanceAdmin.GetCluster.
  362. message GetClusterRequest {
  363. // Required. The unique name of the requested cluster. Values are of the form
  364. // `projects/{project}/instances/{instance}/clusters/{cluster}`.
  365. string name = 1 [
  366. (google.api.field_behavior) = REQUIRED,
  367. (google.api.resource_reference) = {
  368. type: "bigtableadmin.googleapis.com/Cluster"
  369. }
  370. ];
  371. }
  372. // Request message for BigtableInstanceAdmin.ListClusters.
  373. message ListClustersRequest {
  374. // Required. The unique name of the instance for which a list of clusters is requested.
  375. // Values are of the form `projects/{project}/instances/{instance}`.
  376. // Use `{instance} = '-'` to list Clusters for all Instances in a project,
  377. // e.g., `projects/myproject/instances/-`.
  378. string parent = 1 [
  379. (google.api.field_behavior) = REQUIRED,
  380. (google.api.resource_reference) = {
  381. type: "bigtableadmin.googleapis.com/Instance"
  382. }
  383. ];
  384. // DEPRECATED: This field is unused and ignored.
  385. string page_token = 2;
  386. }
  387. // Response message for BigtableInstanceAdmin.ListClusters.
  388. message ListClustersResponse {
  389. // The list of requested clusters.
  390. repeated Cluster clusters = 1;
  391. // Locations from which Cluster information could not be retrieved,
  392. // due to an outage or some other transient condition.
  393. // Clusters from these locations may be missing from `clusters`,
  394. // or may only have partial information returned.
  395. // Values are of the form `projects/<project>/locations/<zone_id>`
  396. repeated string failed_locations = 2;
  397. // DEPRECATED: This field is unused and ignored.
  398. string next_page_token = 3;
  399. }
  400. // Request message for BigtableInstanceAdmin.DeleteCluster.
  401. message DeleteClusterRequest {
  402. // Required. The unique name of the cluster to be deleted. Values are of the form
  403. // `projects/{project}/instances/{instance}/clusters/{cluster}`.
  404. string name = 1 [
  405. (google.api.field_behavior) = REQUIRED,
  406. (google.api.resource_reference) = {
  407. type: "bigtableadmin.googleapis.com/Cluster"
  408. }
  409. ];
  410. }
  411. // The metadata for the Operation returned by CreateInstance.
  412. message CreateInstanceMetadata {
  413. // The request that prompted the initiation of this CreateInstance operation.
  414. CreateInstanceRequest original_request = 1;
  415. // The time at which the original request was received.
  416. google.protobuf.Timestamp request_time = 2;
  417. // The time at which the operation failed or was completed successfully.
  418. google.protobuf.Timestamp finish_time = 3;
  419. }
  420. // The metadata for the Operation returned by UpdateInstance.
  421. message UpdateInstanceMetadata {
  422. // The request that prompted the initiation of this UpdateInstance operation.
  423. PartialUpdateInstanceRequest original_request = 1;
  424. // The time at which the original request was received.
  425. google.protobuf.Timestamp request_time = 2;
  426. // The time at which the operation failed or was completed successfully.
  427. google.protobuf.Timestamp finish_time = 3;
  428. }
  429. // The metadata for the Operation returned by CreateCluster.
  430. message CreateClusterMetadata {
  431. // Progress info for copying a table's data to the new cluster.
  432. message TableProgress {
  433. enum State {
  434. STATE_UNSPECIFIED = 0;
  435. // The table has not yet begun copying to the new cluster.
  436. PENDING = 1;
  437. // The table is actively being copied to the new cluster.
  438. COPYING = 2;
  439. // The table has been fully copied to the new cluster.
  440. COMPLETED = 3;
  441. // The table was deleted before it finished copying to the new cluster.
  442. // Note that tables deleted after completion will stay marked as
  443. // COMPLETED, not CANCELLED.
  444. CANCELLED = 4;
  445. }
  446. // Estimate of the size of the table to be copied.
  447. int64 estimated_size_bytes = 2;
  448. // Estimate of the number of bytes copied so far for this table.
  449. // This will eventually reach 'estimated_size_bytes' unless the table copy
  450. // is CANCELLED.
  451. int64 estimated_copied_bytes = 3;
  452. State state = 4;
  453. }
  454. // The request that prompted the initiation of this CreateCluster operation.
  455. CreateClusterRequest original_request = 1;
  456. // The time at which the original request was received.
  457. google.protobuf.Timestamp request_time = 2;
  458. // The time at which the operation failed or was completed successfully.
  459. google.protobuf.Timestamp finish_time = 3;
  460. // Keys: the full `name` of each table that existed in the instance when
  461. // CreateCluster was first called, i.e.
  462. // `projects/<project>/instances/<instance>/tables/<table>`. Any table added
  463. // to the instance by a later API call will be created in the new cluster by
  464. // that API call, not this one.
  465. //
  466. // Values: information on how much of a table's data has been copied to the
  467. // newly-created cluster so far.
  468. map<string, TableProgress> tables = 4;
  469. }
  470. // The metadata for the Operation returned by UpdateCluster.
  471. message UpdateClusterMetadata {
  472. // The request that prompted the initiation of this UpdateCluster operation.
  473. Cluster original_request = 1;
  474. // The time at which the original request was received.
  475. google.protobuf.Timestamp request_time = 2;
  476. // The time at which the operation failed or was completed successfully.
  477. google.protobuf.Timestamp finish_time = 3;
  478. }
  479. // The metadata for the Operation returned by PartialUpdateCluster.
  480. message PartialUpdateClusterMetadata {
  481. // The time at which the original request was received.
  482. google.protobuf.Timestamp request_time = 1;
  483. // The time at which the operation failed or was completed successfully.
  484. google.protobuf.Timestamp finish_time = 2;
  485. // The original request for PartialUpdateCluster.
  486. PartialUpdateClusterRequest original_request = 3;
  487. }
  488. // Request message for BigtableInstanceAdmin.PartialUpdateCluster.
  489. message PartialUpdateClusterRequest {
  490. // Required. The Cluster which contains the partial updates to be applied, subject to
  491. // the update_mask.
  492. Cluster cluster = 1 [(google.api.field_behavior) = REQUIRED];
  493. // Required. The subset of Cluster fields which should be replaced.
  494. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
  495. }
  496. // Request message for BigtableInstanceAdmin.CreateAppProfile.
  497. message CreateAppProfileRequest {
  498. // Required. The unique name of the instance in which to create the new app profile.
  499. // Values are of the form
  500. // `projects/{project}/instances/{instance}`.
  501. string parent = 1 [
  502. (google.api.field_behavior) = REQUIRED,
  503. (google.api.resource_reference) = {
  504. type: "bigtableadmin.googleapis.com/Instance"
  505. }
  506. ];
  507. // Required. The ID to be used when referring to the new app profile within its
  508. // instance, e.g., just `myprofile` rather than
  509. // `projects/myproject/instances/myinstance/appProfiles/myprofile`.
  510. string app_profile_id = 2 [(google.api.field_behavior) = REQUIRED];
  511. // Required. The app profile to be created.
  512. // Fields marked `OutputOnly` will be ignored.
  513. AppProfile app_profile = 3 [(google.api.field_behavior) = REQUIRED];
  514. // If true, ignore safety checks when creating the app profile.
  515. bool ignore_warnings = 4;
  516. }
  517. // Request message for BigtableInstanceAdmin.GetAppProfile.
  518. message GetAppProfileRequest {
  519. // Required. The unique name of the requested app profile. Values are of the form
  520. // `projects/{project}/instances/{instance}/appProfiles/{app_profile}`.
  521. string name = 1 [
  522. (google.api.field_behavior) = REQUIRED,
  523. (google.api.resource_reference) = {
  524. type: "bigtableadmin.googleapis.com/AppProfile"
  525. }
  526. ];
  527. }
  528. // Request message for BigtableInstanceAdmin.ListAppProfiles.
  529. message ListAppProfilesRequest {
  530. // Required. The unique name of the instance for which a list of app profiles is
  531. // requested. Values are of the form
  532. // `projects/{project}/instances/{instance}`.
  533. // Use `{instance} = '-'` to list AppProfiles for all Instances in a project,
  534. // e.g., `projects/myproject/instances/-`.
  535. string parent = 1 [
  536. (google.api.field_behavior) = REQUIRED,
  537. (google.api.resource_reference) = {
  538. type: "bigtableadmin.googleapis.com/Instance"
  539. }
  540. ];
  541. // Maximum number of results per page.
  542. //
  543. // A page_size of zero lets the server choose the number of items to return.
  544. // A page_size which is strictly positive will return at most that many items.
  545. // A negative page_size will cause an error.
  546. //
  547. // Following the first request, subsequent paginated calls are not required
  548. // to pass a page_size. If a page_size is set in subsequent calls, it must
  549. // match the page_size given in the first request.
  550. int32 page_size = 3;
  551. // The value of `next_page_token` returned by a previous call.
  552. string page_token = 2;
  553. }
  554. // Response message for BigtableInstanceAdmin.ListAppProfiles.
  555. message ListAppProfilesResponse {
  556. // The list of requested app profiles.
  557. repeated AppProfile app_profiles = 1;
  558. // Set if not all app profiles could be returned in a single response.
  559. // Pass this value to `page_token` in another request to get the next
  560. // page of results.
  561. string next_page_token = 2;
  562. // Locations from which AppProfile information could not be retrieved,
  563. // due to an outage or some other transient condition.
  564. // AppProfiles from these locations may be missing from `app_profiles`.
  565. // Values are of the form `projects/<project>/locations/<zone_id>`
  566. repeated string failed_locations = 3;
  567. }
  568. // Request message for BigtableInstanceAdmin.UpdateAppProfile.
  569. message UpdateAppProfileRequest {
  570. // Required. The app profile which will (partially) replace the current value.
  571. AppProfile app_profile = 1 [(google.api.field_behavior) = REQUIRED];
  572. // Required. The subset of app profile fields which should be replaced.
  573. // If unset, all fields will be replaced.
  574. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
  575. // If true, ignore safety checks when updating the app profile.
  576. bool ignore_warnings = 3;
  577. }
  578. // Request message for BigtableInstanceAdmin.DeleteAppProfile.
  579. message DeleteAppProfileRequest {
  580. // Required. The unique name of the app profile to be deleted. Values are of the form
  581. // `projects/{project}/instances/{instance}/appProfiles/{app_profile}`.
  582. string name = 1 [
  583. (google.api.field_behavior) = REQUIRED,
  584. (google.api.resource_reference) = {
  585. type: "bigtableadmin.googleapis.com/AppProfile"
  586. }
  587. ];
  588. // Required. If true, ignore safety checks when deleting the app profile.
  589. bool ignore_warnings = 2 [(google.api.field_behavior) = REQUIRED];
  590. }
  591. // The metadata for the Operation returned by UpdateAppProfile.
  592. message UpdateAppProfileMetadata {
  593. }
  594. // Request message for BigtableInstanceAdmin.ListHotTablets.
  595. message ListHotTabletsRequest {
  596. // Required. The cluster name to list hot tablets.
  597. // Value is in the following form:
  598. // `projects/{project}/instances/{instance}/clusters/{cluster}`.
  599. string parent = 1 [
  600. (google.api.field_behavior) = REQUIRED,
  601. (google.api.resource_reference) = {
  602. type: "bigtableadmin.googleapis.com/Cluster"
  603. }
  604. ];
  605. // The start time to list hot tablets. The hot tablets in the response will
  606. // have start times between the requested start time and end time. Start time
  607. // defaults to Now if it is unset, and end time defaults to Now - 24 hours if
  608. // it is unset. The start time should be less than the end time, and the
  609. // maximum allowed time range between start time and end time is 48 hours.
  610. // Start time and end time should have values between Now and Now - 14 days.
  611. google.protobuf.Timestamp start_time = 2;
  612. // The end time to list hot tablets.
  613. google.protobuf.Timestamp end_time = 3;
  614. // Maximum number of results per page.
  615. //
  616. // A page_size that is empty or zero lets the server choose the number of
  617. // items to return. A page_size which is strictly positive will return at most
  618. // that many items. A negative page_size will cause an error.
  619. //
  620. // Following the first request, subsequent paginated calls do not need a
  621. // page_size field. If a page_size is set in subsequent calls, it must match
  622. // the page_size given in the first request.
  623. int32 page_size = 4;
  624. // The value of `next_page_token` returned by a previous call.
  625. string page_token = 5;
  626. }
  627. // Response message for BigtableInstanceAdmin.ListHotTablets.
  628. message ListHotTabletsResponse {
  629. // List of hot tablets in the tables of the requested cluster that fall
  630. // within the requested time range. Hot tablets are ordered by node cpu usage
  631. // percent. If there are multiple hot tablets that correspond to the same
  632. // tablet within a 15-minute interval, only the hot tablet with the highest
  633. // node cpu usage will be included in the response.
  634. repeated HotTablet hot_tablets = 1;
  635. // Set if not all hot tablets could be returned in a single response.
  636. // Pass this value to `page_token` in another request to get the next
  637. // page of results.
  638. string next_page_token = 2;
  639. }