aboutsummaryrefslogtreecommitdiffhomepage
path: root/third_party/googleapis/google/bigtable/admin/v2/instance.proto
blob: 67921d6e155ca5c4f3d02fa2200f6521cbd6dc5f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
// Copyright 2016 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

syntax = "proto3";

package google.bigtable.admin.v2;

import "google/api/annotations.proto";
import "google/bigtable/admin/v2/common.proto";

option go_package = "google.golang.org/genproto/googleapis/bigtable/admin/v2;admin";
option java_multiple_files = true;
option java_outer_classname = "InstanceProto";
option java_package = "com.google.bigtable.admin.v2";


// A collection of Bigtable [Tables][google.bigtable.admin.v2.Table] and
// the resources that serve them.
// All tables in an instance are served from a single
// [Cluster][google.bigtable.admin.v2.Cluster].
message Instance {
  // Possible states of an instance.
  enum State {
    // The state of the instance could not be determined.
    STATE_NOT_KNOWN = 0;

    // The instance has been successfully created and can serve requests
    // to its tables.
    READY = 1;

    // The instance is currently being created, and may be destroyed
    // if the creation process encounters an error.
    CREATING = 2;
  }

  // The type of the instance.
  enum Type {
    // The type of the instance is unspecified. If set when creating an
    // instance, a `PRODUCTION` instance will be created. If set when updating
    // an instance, the type will be left unchanged.
    TYPE_UNSPECIFIED = 0;

    // An instance meant for production use. `serve_nodes` must be set
    // on the cluster.
    PRODUCTION = 1;
  }

  // (`OutputOnly`)
  // The unique name of the instance. Values are of the form
  // `projects/<project>/instances/[a-z][a-z0-9\\-]+[a-z0-9]`.
  string name = 1;

  // The descriptive name for this instance as it appears in UIs.
  // Can be changed at any time, but should be kept globally unique
  // to avoid confusion.
  string display_name = 2;

  // (`OutputOnly`)
  // The current state of the instance.
  State state = 3;

  // The type of the instance. Defaults to `PRODUCTION`.
  Type type = 4;
}

// A resizable group of nodes in a particular cloud location, capable
// of serving all [Tables][google.bigtable.admin.v2.Table] in the parent
// [Instance][google.bigtable.admin.v2.Instance].
message Cluster {
  // Possible states of a cluster.
  enum State {
    // The state of the cluster could not be determined.
    STATE_NOT_KNOWN = 0;

    // The cluster has been successfully created and is ready to serve requests.
    READY = 1;

    // The cluster is currently being created, and may be destroyed
    // if the creation process encounters an error.
    // A cluster may not be able to serve requests while being created.
    CREATING = 2;

    // The cluster is currently being resized, and may revert to its previous
    // node count if the process encounters an error.
    // A cluster is still capable of serving requests while being resized,
    // but may exhibit performance as if its number of allocated nodes is
    // between the starting and requested states.
    RESIZING = 3;

    // The cluster has no backing nodes. The data (tables) still
    // exist, but no operations can be performed on the cluster.
    DISABLED = 4;
  }

  // (`OutputOnly`)
  // The unique name of the cluster. Values are of the form
  // `projects/<project>/instances/<instance>/clusters/[a-z][-a-z0-9]*`.
  string name = 1;

  // (`CreationOnly`)
  // The location where this cluster's nodes and storage reside. For best
  // performance, clients should be located as close as possible to this cluster.
  // Currently only zones are supported, so values should be of the form
  // `projects/<project>/locations/<zone>`.
  string location = 2;

  // (`OutputOnly`)
  // The current state of the cluster.
  State state = 3;

  // The number of nodes allocated to this cluster. More nodes enable higher
  // throughput and more consistent performance.
  int32 serve_nodes = 4;

  // (`CreationOnly`)
  // The type of storage used by this cluster to serve its
  // parent instance's tables, unless explicitly overridden.
  StorageType default_storage_type = 5;
}