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