xref: /aosp_15_r20/external/googleapis/google/cloud/alloydb/v1/resources.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 Google LLC
2*d5c09012SAndroid Build Coastguard Worker//
3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*d5c09012SAndroid Build Coastguard Worker//
7*d5c09012SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*d5c09012SAndroid Build Coastguard Worker//
9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*d5c09012SAndroid Build Coastguard Worker// limitations under the License.
14*d5c09012SAndroid Build Coastguard Worker
15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3";
16*d5c09012SAndroid Build Coastguard Worker
17*d5c09012SAndroid Build Coastguard Workerpackage google.cloud.alloydb.v1;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/duration.proto";
22*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto";
23*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/wrappers.proto";
24*d5c09012SAndroid Build Coastguard Workerimport "google/type/dayofweek.proto";
25*d5c09012SAndroid Build Coastguard Workerimport "google/type/timeofday.proto";
26*d5c09012SAndroid Build Coastguard Worker
27*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.AlloyDb.V1";
28*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/alloydb/apiv1/alloydbpb;alloydbpb";
29*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
30*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "ResourcesProto";
31*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.alloydb.v1";
32*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\AlloyDb\\V1";
33*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::AlloyDB::V1";
34*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = {
35*d5c09012SAndroid Build Coastguard Worker  type: "cloudkms.googleapis.com/CryptoKeyVersion"
36*d5c09012SAndroid Build Coastguard Worker  pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}"
37*d5c09012SAndroid Build Coastguard Worker};
38*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = {
39*d5c09012SAndroid Build Coastguard Worker  type: "compute.googleapis.com/Network"
40*d5c09012SAndroid Build Coastguard Worker  pattern: "projects/{project}/global/networks/{network}"
41*d5c09012SAndroid Build Coastguard Worker};
42*d5c09012SAndroid Build Coastguard Worker
43*d5c09012SAndroid Build Coastguard Worker// View on Instance. Pass this enum to rpcs that returns an Instance message to
44*d5c09012SAndroid Build Coastguard Worker// control which subsets of fields to get.
45*d5c09012SAndroid Build Coastguard Workerenum InstanceView {
46*d5c09012SAndroid Build Coastguard Worker  // INSTANCE_VIEW_UNSPECIFIED Not specified, equivalent to BASIC.
47*d5c09012SAndroid Build Coastguard Worker  INSTANCE_VIEW_UNSPECIFIED = 0;
48*d5c09012SAndroid Build Coastguard Worker
49*d5c09012SAndroid Build Coastguard Worker  // BASIC server responses for a primary or read instance include all the
50*d5c09012SAndroid Build Coastguard Worker  // relevant instance details, excluding the details of each node in the
51*d5c09012SAndroid Build Coastguard Worker  // instance. The default value.
52*d5c09012SAndroid Build Coastguard Worker  INSTANCE_VIEW_BASIC = 1;
53*d5c09012SAndroid Build Coastguard Worker
54*d5c09012SAndroid Build Coastguard Worker  // FULL response is equivalent to BASIC for primary instance (for now).
55*d5c09012SAndroid Build Coastguard Worker  // For read pool instance, this includes details of each node in the pool.
56*d5c09012SAndroid Build Coastguard Worker  INSTANCE_VIEW_FULL = 2;
57*d5c09012SAndroid Build Coastguard Worker}
58*d5c09012SAndroid Build Coastguard Worker
59*d5c09012SAndroid Build Coastguard Worker// View on Cluster. Pass this enum to rpcs that returns a cluster message to
60*d5c09012SAndroid Build Coastguard Worker// control which subsets of fields to get.
61*d5c09012SAndroid Build Coastguard Workerenum ClusterView {
62*d5c09012SAndroid Build Coastguard Worker  // CLUSTER_VIEW_UNSPECIFIED Not specified, equivalent to BASIC.
63*d5c09012SAndroid Build Coastguard Worker  CLUSTER_VIEW_UNSPECIFIED = 0;
64*d5c09012SAndroid Build Coastguard Worker
65*d5c09012SAndroid Build Coastguard Worker  // BASIC server responses include all the relevant cluster details, excluding
66*d5c09012SAndroid Build Coastguard Worker  // Cluster.ContinuousBackupInfo.EarliestRestorableTime and other view-specific
67*d5c09012SAndroid Build Coastguard Worker  // fields. The default value.
68*d5c09012SAndroid Build Coastguard Worker  CLUSTER_VIEW_BASIC = 1;
69*d5c09012SAndroid Build Coastguard Worker
70*d5c09012SAndroid Build Coastguard Worker  // CONTINUOUS_BACKUP response returns all the fields from BASIC plus
71*d5c09012SAndroid Build Coastguard Worker  // the earliest restorable time if continuous backups are enabled.
72*d5c09012SAndroid Build Coastguard Worker  // May increase latency.
73*d5c09012SAndroid Build Coastguard Worker  CLUSTER_VIEW_CONTINUOUS_BACKUP = 2;
74*d5c09012SAndroid Build Coastguard Worker}
75*d5c09012SAndroid Build Coastguard Worker
76*d5c09012SAndroid Build Coastguard Worker// The supported database engine versions.
77*d5c09012SAndroid Build Coastguard Workerenum DatabaseVersion {
78*d5c09012SAndroid Build Coastguard Worker  // This is an unknown database version.
79*d5c09012SAndroid Build Coastguard Worker  DATABASE_VERSION_UNSPECIFIED = 0;
80*d5c09012SAndroid Build Coastguard Worker
81*d5c09012SAndroid Build Coastguard Worker  // DEPRECATED - The database version is Postgres 13.
82*d5c09012SAndroid Build Coastguard Worker  POSTGRES_13 = 1 [deprecated = true];
83*d5c09012SAndroid Build Coastguard Worker
84*d5c09012SAndroid Build Coastguard Worker  // The database version is Postgres 14.
85*d5c09012SAndroid Build Coastguard Worker  POSTGRES_14 = 2;
86*d5c09012SAndroid Build Coastguard Worker}
87*d5c09012SAndroid Build Coastguard Worker
88*d5c09012SAndroid Build Coastguard Worker// The username/password for a database user. Used for specifying initial
89*d5c09012SAndroid Build Coastguard Worker// users at cluster creation time.
90*d5c09012SAndroid Build Coastguard Workermessage UserPassword {
91*d5c09012SAndroid Build Coastguard Worker  // The database username.
92*d5c09012SAndroid Build Coastguard Worker  string user = 1;
93*d5c09012SAndroid Build Coastguard Worker
94*d5c09012SAndroid Build Coastguard Worker  // The initial password for the user.
95*d5c09012SAndroid Build Coastguard Worker  string password = 2;
96*d5c09012SAndroid Build Coastguard Worker}
97*d5c09012SAndroid Build Coastguard Worker
98*d5c09012SAndroid Build Coastguard Worker// Subset of the source instance configuration that is available when reading
99*d5c09012SAndroid Build Coastguard Worker// the cluster resource.
100*d5c09012SAndroid Build Coastguard Workermessage MigrationSource {
101*d5c09012SAndroid Build Coastguard Worker  // Denote the type of migration source that created this cluster.
102*d5c09012SAndroid Build Coastguard Worker  enum MigrationSourceType {
103*d5c09012SAndroid Build Coastguard Worker    // Migration source is unknown.
104*d5c09012SAndroid Build Coastguard Worker    MIGRATION_SOURCE_TYPE_UNSPECIFIED = 0;
105*d5c09012SAndroid Build Coastguard Worker
106*d5c09012SAndroid Build Coastguard Worker    // DMS source means the cluster was created via DMS migration job.
107*d5c09012SAndroid Build Coastguard Worker    DMS = 1;
108*d5c09012SAndroid Build Coastguard Worker  }
109*d5c09012SAndroid Build Coastguard Worker
110*d5c09012SAndroid Build Coastguard Worker  // Output only. The host and port of the on-premises instance in host:port
111*d5c09012SAndroid Build Coastguard Worker  // format
112*d5c09012SAndroid Build Coastguard Worker  string host_port = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
113*d5c09012SAndroid Build Coastguard Worker
114*d5c09012SAndroid Build Coastguard Worker  // Output only. Place holder for the external source identifier(e.g DMS job
115*d5c09012SAndroid Build Coastguard Worker  // name) that created the cluster.
116*d5c09012SAndroid Build Coastguard Worker  string reference_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
117*d5c09012SAndroid Build Coastguard Worker
118*d5c09012SAndroid Build Coastguard Worker  // Output only. Type of migration source.
119*d5c09012SAndroid Build Coastguard Worker  MigrationSourceType source_type = 3
120*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
121*d5c09012SAndroid Build Coastguard Worker}
122*d5c09012SAndroid Build Coastguard Worker
123*d5c09012SAndroid Build Coastguard Worker// EncryptionConfig describes the encryption config of a cluster or a backup
124*d5c09012SAndroid Build Coastguard Worker// that is encrypted with a CMEK (customer-managed encryption key).
125*d5c09012SAndroid Build Coastguard Workermessage EncryptionConfig {
126*d5c09012SAndroid Build Coastguard Worker  // The fully-qualified resource name of the KMS key.
127*d5c09012SAndroid Build Coastguard Worker  // Each Cloud KMS key is regionalized and has the following format:
128*d5c09012SAndroid Build Coastguard Worker  // projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME]
129*d5c09012SAndroid Build Coastguard Worker  string kms_key_name = 1;
130*d5c09012SAndroid Build Coastguard Worker}
131*d5c09012SAndroid Build Coastguard Worker
132*d5c09012SAndroid Build Coastguard Worker// EncryptionInfo describes the encryption information of a cluster or a backup.
133*d5c09012SAndroid Build Coastguard Workermessage EncryptionInfo {
134*d5c09012SAndroid Build Coastguard Worker  // Possible encryption types.
135*d5c09012SAndroid Build Coastguard Worker  enum Type {
136*d5c09012SAndroid Build Coastguard Worker    // Encryption type not specified. Defaults to GOOGLE_DEFAULT_ENCRYPTION.
137*d5c09012SAndroid Build Coastguard Worker    TYPE_UNSPECIFIED = 0;
138*d5c09012SAndroid Build Coastguard Worker
139*d5c09012SAndroid Build Coastguard Worker    // The data is encrypted at rest with a key that is fully managed by Google.
140*d5c09012SAndroid Build Coastguard Worker    // No key version will be populated. This is the default state.
141*d5c09012SAndroid Build Coastguard Worker    GOOGLE_DEFAULT_ENCRYPTION = 1;
142*d5c09012SAndroid Build Coastguard Worker
143*d5c09012SAndroid Build Coastguard Worker    // The data is encrypted at rest with a key that is managed by the customer.
144*d5c09012SAndroid Build Coastguard Worker    // KMS key versions will be populated.
145*d5c09012SAndroid Build Coastguard Worker    CUSTOMER_MANAGED_ENCRYPTION = 2;
146*d5c09012SAndroid Build Coastguard Worker  }
147*d5c09012SAndroid Build Coastguard Worker
148*d5c09012SAndroid Build Coastguard Worker  // Output only. Type of encryption.
149*d5c09012SAndroid Build Coastguard Worker  Type encryption_type = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
150*d5c09012SAndroid Build Coastguard Worker
151*d5c09012SAndroid Build Coastguard Worker  // Output only. Cloud KMS key versions that are being used to protect the
152*d5c09012SAndroid Build Coastguard Worker  // database or the backup.
153*d5c09012SAndroid Build Coastguard Worker  repeated string kms_key_versions = 2 [
154*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = OUTPUT_ONLY,
155*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
156*d5c09012SAndroid Build Coastguard Worker      type: "cloudkms.googleapis.com/CryptoKeyVersion"
157*d5c09012SAndroid Build Coastguard Worker    }
158*d5c09012SAndroid Build Coastguard Worker  ];
159*d5c09012SAndroid Build Coastguard Worker}
160*d5c09012SAndroid Build Coastguard Worker
161*d5c09012SAndroid Build Coastguard Worker// SSL configuration.
162*d5c09012SAndroid Build Coastguard Workermessage SslConfig {
163*d5c09012SAndroid Build Coastguard Worker  // SSL mode options.
164*d5c09012SAndroid Build Coastguard Worker  enum SslMode {
165*d5c09012SAndroid Build Coastguard Worker    // SSL mode not specified. Defaults to ENCRYPTED_ONLY.
166*d5c09012SAndroid Build Coastguard Worker    SSL_MODE_UNSPECIFIED = 0;
167*d5c09012SAndroid Build Coastguard Worker
168*d5c09012SAndroid Build Coastguard Worker    // SSL connections are optional. CA verification not enforced.
169*d5c09012SAndroid Build Coastguard Worker    SSL_MODE_ALLOW = 1 [deprecated = true];
170*d5c09012SAndroid Build Coastguard Worker
171*d5c09012SAndroid Build Coastguard Worker    // SSL connections are required. CA verification not enforced.
172*d5c09012SAndroid Build Coastguard Worker    // Clients may use locally self-signed certificates (default psql client
173*d5c09012SAndroid Build Coastguard Worker    // behavior).
174*d5c09012SAndroid Build Coastguard Worker    SSL_MODE_REQUIRE = 2 [deprecated = true];
175*d5c09012SAndroid Build Coastguard Worker
176*d5c09012SAndroid Build Coastguard Worker    // SSL connections are required. CA verification enforced.
177*d5c09012SAndroid Build Coastguard Worker    // Clients must have certificates signed by a Cluster CA, e.g. via
178*d5c09012SAndroid Build Coastguard Worker    // GenerateClientCertificate.
179*d5c09012SAndroid Build Coastguard Worker    SSL_MODE_VERIFY_CA = 3 [deprecated = true];
180*d5c09012SAndroid Build Coastguard Worker
181*d5c09012SAndroid Build Coastguard Worker    // SSL connections are optional. CA verification not enforced.
182*d5c09012SAndroid Build Coastguard Worker    ALLOW_UNENCRYPTED_AND_ENCRYPTED = 4;
183*d5c09012SAndroid Build Coastguard Worker
184*d5c09012SAndroid Build Coastguard Worker    // SSL connections are required. CA verification not enforced.
185*d5c09012SAndroid Build Coastguard Worker    ENCRYPTED_ONLY = 5;
186*d5c09012SAndroid Build Coastguard Worker  }
187*d5c09012SAndroid Build Coastguard Worker
188*d5c09012SAndroid Build Coastguard Worker  // Certificate Authority (CA) source for SSL/TLS certificates.
189*d5c09012SAndroid Build Coastguard Worker  enum CaSource {
190*d5c09012SAndroid Build Coastguard Worker    // Certificate Authority (CA) source not specified. Defaults to
191*d5c09012SAndroid Build Coastguard Worker    // CA_SOURCE_MANAGED.
192*d5c09012SAndroid Build Coastguard Worker    CA_SOURCE_UNSPECIFIED = 0;
193*d5c09012SAndroid Build Coastguard Worker
194*d5c09012SAndroid Build Coastguard Worker    // Certificate Authority (CA) managed by the AlloyDB Cluster.
195*d5c09012SAndroid Build Coastguard Worker    CA_SOURCE_MANAGED = 1;
196*d5c09012SAndroid Build Coastguard Worker  }
197*d5c09012SAndroid Build Coastguard Worker
198*d5c09012SAndroid Build Coastguard Worker  // Optional. SSL mode. Specifies client-server SSL/TLS connection behavior.
199*d5c09012SAndroid Build Coastguard Worker  SslMode ssl_mode = 1 [(google.api.field_behavior) = OPTIONAL];
200*d5c09012SAndroid Build Coastguard Worker
201*d5c09012SAndroid Build Coastguard Worker  // Optional. Certificate Authority (CA) source. Only CA_SOURCE_MANAGED is
202*d5c09012SAndroid Build Coastguard Worker  // supported currently, and is the default value.
203*d5c09012SAndroid Build Coastguard Worker  CaSource ca_source = 2 [(google.api.field_behavior) = OPTIONAL];
204*d5c09012SAndroid Build Coastguard Worker}
205*d5c09012SAndroid Build Coastguard Worker
206*d5c09012SAndroid Build Coastguard Worker// Message describing the user-specified automated backup policy.
207*d5c09012SAndroid Build Coastguard Worker//
208*d5c09012SAndroid Build Coastguard Worker// All fields in the automated backup policy are optional. Defaults for each
209*d5c09012SAndroid Build Coastguard Worker// field are provided if they are not set.
210*d5c09012SAndroid Build Coastguard Workermessage AutomatedBackupPolicy {
211*d5c09012SAndroid Build Coastguard Worker  // A weekly schedule starts a backup at prescribed start times within a
212*d5c09012SAndroid Build Coastguard Worker  // day, for the specified days of the week.
213*d5c09012SAndroid Build Coastguard Worker  //
214*d5c09012SAndroid Build Coastguard Worker  // The weekly schedule message is flexible and can be used to create many
215*d5c09012SAndroid Build Coastguard Worker  // types of schedules. For example, to have a daily backup that starts at
216*d5c09012SAndroid Build Coastguard Worker  // 22:00, configure the `start_times` field to have one element "22:00" and
217*d5c09012SAndroid Build Coastguard Worker  // the `days_of_week` field to have all seven days of the week.
218*d5c09012SAndroid Build Coastguard Worker  message WeeklySchedule {
219*d5c09012SAndroid Build Coastguard Worker    // The times during the day to start a backup. The start times are assumed
220*d5c09012SAndroid Build Coastguard Worker    // to be in UTC and to be an exact hour (e.g., 04:00:00).
221*d5c09012SAndroid Build Coastguard Worker    //
222*d5c09012SAndroid Build Coastguard Worker    // If no start times are provided, a single fixed start time is chosen
223*d5c09012SAndroid Build Coastguard Worker    // arbitrarily.
224*d5c09012SAndroid Build Coastguard Worker    repeated google.type.TimeOfDay start_times = 1;
225*d5c09012SAndroid Build Coastguard Worker
226*d5c09012SAndroid Build Coastguard Worker    // The days of the week to perform a backup.
227*d5c09012SAndroid Build Coastguard Worker    //
228*d5c09012SAndroid Build Coastguard Worker    // If this field is left empty, the default of every day of the week is
229*d5c09012SAndroid Build Coastguard Worker    // used.
230*d5c09012SAndroid Build Coastguard Worker    repeated google.type.DayOfWeek days_of_week = 2;
231*d5c09012SAndroid Build Coastguard Worker  }
232*d5c09012SAndroid Build Coastguard Worker
233*d5c09012SAndroid Build Coastguard Worker  // A time based retention policy specifies that all backups within a certain
234*d5c09012SAndroid Build Coastguard Worker  // time period should be retained.
235*d5c09012SAndroid Build Coastguard Worker  message TimeBasedRetention {
236*d5c09012SAndroid Build Coastguard Worker    // The retention period.
237*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Duration retention_period = 1;
238*d5c09012SAndroid Build Coastguard Worker  }
239*d5c09012SAndroid Build Coastguard Worker
240*d5c09012SAndroid Build Coastguard Worker  // A quantity based policy specifies that a certain number of the most recent
241*d5c09012SAndroid Build Coastguard Worker  // successful backups should be retained.
242*d5c09012SAndroid Build Coastguard Worker  message QuantityBasedRetention {
243*d5c09012SAndroid Build Coastguard Worker    // The number of backups to retain.
244*d5c09012SAndroid Build Coastguard Worker    int32 count = 1;
245*d5c09012SAndroid Build Coastguard Worker  }
246*d5c09012SAndroid Build Coastguard Worker
247*d5c09012SAndroid Build Coastguard Worker  // The schedule for this automated backup policy.
248*d5c09012SAndroid Build Coastguard Worker  //
249*d5c09012SAndroid Build Coastguard Worker  // A schedule specifies times at which to start a backup. If a backup
250*d5c09012SAndroid Build Coastguard Worker  // window is also provided, the backup is guaranteed to be started and
251*d5c09012SAndroid Build Coastguard Worker  // completed within the start time plus the backup window. If the backup is
252*d5c09012SAndroid Build Coastguard Worker  // not completed within the backup window it is marked as failed.
253*d5c09012SAndroid Build Coastguard Worker  //
254*d5c09012SAndroid Build Coastguard Worker  // If not set, the schedule defaults to a weekly schedule with one backup
255*d5c09012SAndroid Build Coastguard Worker  // per day and a start time chosen arbitrarily.
256*d5c09012SAndroid Build Coastguard Worker  oneof schedule {
257*d5c09012SAndroid Build Coastguard Worker    // Weekly schedule for the Backup.
258*d5c09012SAndroid Build Coastguard Worker    WeeklySchedule weekly_schedule = 2;
259*d5c09012SAndroid Build Coastguard Worker  }
260*d5c09012SAndroid Build Coastguard Worker
261*d5c09012SAndroid Build Coastguard Worker  // The retention policy for automated backups.
262*d5c09012SAndroid Build Coastguard Worker  //
263*d5c09012SAndroid Build Coastguard Worker  // The retention policy for a backup is fixed at the time the backup is
264*d5c09012SAndroid Build Coastguard Worker  // created. Changes to this field only apply to new backups taken with the
265*d5c09012SAndroid Build Coastguard Worker  // policy; the retentions of existing backups remain unchanged.
266*d5c09012SAndroid Build Coastguard Worker  //
267*d5c09012SAndroid Build Coastguard Worker  // If no retention policy is set, a default of 14 days is used.
268*d5c09012SAndroid Build Coastguard Worker  oneof retention {
269*d5c09012SAndroid Build Coastguard Worker    // Time-based Backup retention policy.
270*d5c09012SAndroid Build Coastguard Worker    TimeBasedRetention time_based_retention = 4;
271*d5c09012SAndroid Build Coastguard Worker
272*d5c09012SAndroid Build Coastguard Worker    // Quantity-based Backup retention policy to retain recent backups.
273*d5c09012SAndroid Build Coastguard Worker    QuantityBasedRetention quantity_based_retention = 5;
274*d5c09012SAndroid Build Coastguard Worker  }
275*d5c09012SAndroid Build Coastguard Worker
276*d5c09012SAndroid Build Coastguard Worker  // Whether automated automated backups are enabled. If not set, defaults to
277*d5c09012SAndroid Build Coastguard Worker  // true.
278*d5c09012SAndroid Build Coastguard Worker  optional bool enabled = 1;
279*d5c09012SAndroid Build Coastguard Worker
280*d5c09012SAndroid Build Coastguard Worker  // The length of the time window during which a backup can be
281*d5c09012SAndroid Build Coastguard Worker  // taken. If a backup does not succeed within this time window, it will be
282*d5c09012SAndroid Build Coastguard Worker  // canceled and considered failed.
283*d5c09012SAndroid Build Coastguard Worker  //
284*d5c09012SAndroid Build Coastguard Worker  // The backup window must be at least 5 minutes long. There is no upper bound
285*d5c09012SAndroid Build Coastguard Worker  // on the window. If not set, it defaults to 1 hour.
286*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Duration backup_window = 3;
287*d5c09012SAndroid Build Coastguard Worker
288*d5c09012SAndroid Build Coastguard Worker  // Optional. The encryption config can be specified to encrypt the
289*d5c09012SAndroid Build Coastguard Worker  // backups with a customer-managed encryption key (CMEK). When this field is
290*d5c09012SAndroid Build Coastguard Worker  // not specified, the backup will then use default encryption scheme to
291*d5c09012SAndroid Build Coastguard Worker  // protect the user data.
292*d5c09012SAndroid Build Coastguard Worker  EncryptionConfig encryption_config = 8
293*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
294*d5c09012SAndroid Build Coastguard Worker
295*d5c09012SAndroid Build Coastguard Worker  // The location where the backup will be stored. Currently, the only supported
296*d5c09012SAndroid Build Coastguard Worker  // option is to store the backup in the same region as the cluster.
297*d5c09012SAndroid Build Coastguard Worker  //
298*d5c09012SAndroid Build Coastguard Worker  // If empty, defaults to the region of the cluster.
299*d5c09012SAndroid Build Coastguard Worker  string location = 6;
300*d5c09012SAndroid Build Coastguard Worker
301*d5c09012SAndroid Build Coastguard Worker  // Labels to apply to backups created using this configuration.
302*d5c09012SAndroid Build Coastguard Worker  map<string, string> labels = 7;
303*d5c09012SAndroid Build Coastguard Worker}
304*d5c09012SAndroid Build Coastguard Worker
305*d5c09012SAndroid Build Coastguard Worker// ContinuousBackupConfig describes the continuous backups recovery
306*d5c09012SAndroid Build Coastguard Worker// configurations of a cluster.
307*d5c09012SAndroid Build Coastguard Workermessage ContinuousBackupConfig {
308*d5c09012SAndroid Build Coastguard Worker  // Whether ContinuousBackup is enabled.
309*d5c09012SAndroid Build Coastguard Worker  optional bool enabled = 1;
310*d5c09012SAndroid Build Coastguard Worker
311*d5c09012SAndroid Build Coastguard Worker  // The number of days that are eligible to restore from using PITR. To support
312*d5c09012SAndroid Build Coastguard Worker  // the entire recovery window, backups and logs are retained for one day more
313*d5c09012SAndroid Build Coastguard Worker  // than the recovery window. If not set, defaults to 14 days.
314*d5c09012SAndroid Build Coastguard Worker  int32 recovery_window_days = 4;
315*d5c09012SAndroid Build Coastguard Worker
316*d5c09012SAndroid Build Coastguard Worker  // The encryption config can be specified to encrypt the
317*d5c09012SAndroid Build Coastguard Worker  // backups with a customer-managed encryption key (CMEK). When this field is
318*d5c09012SAndroid Build Coastguard Worker  // not specified, the backup will then use default encryption scheme to
319*d5c09012SAndroid Build Coastguard Worker  // protect the user data.
320*d5c09012SAndroid Build Coastguard Worker  EncryptionConfig encryption_config = 3;
321*d5c09012SAndroid Build Coastguard Worker}
322*d5c09012SAndroid Build Coastguard Worker
323*d5c09012SAndroid Build Coastguard Worker// ContinuousBackupInfo describes the continuous backup properties of a
324*d5c09012SAndroid Build Coastguard Worker// cluster.
325*d5c09012SAndroid Build Coastguard Workermessage ContinuousBackupInfo {
326*d5c09012SAndroid Build Coastguard Worker  // Output only. The encryption information for the WALs and backups required
327*d5c09012SAndroid Build Coastguard Worker  // for ContinuousBackup.
328*d5c09012SAndroid Build Coastguard Worker  EncryptionInfo encryption_info = 1
329*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
330*d5c09012SAndroid Build Coastguard Worker
331*d5c09012SAndroid Build Coastguard Worker  // Output only. When ContinuousBackup was most recently enabled. Set to null
332*d5c09012SAndroid Build Coastguard Worker  // if ContinuousBackup is not enabled.
333*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp enabled_time = 2
334*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
335*d5c09012SAndroid Build Coastguard Worker
336*d5c09012SAndroid Build Coastguard Worker  // Output only. Days of the week on which a continuous backup is taken. Output
337*d5c09012SAndroid Build Coastguard Worker  // only field. Ignored if passed into the request.
338*d5c09012SAndroid Build Coastguard Worker  repeated google.type.DayOfWeek schedule = 3
339*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
340*d5c09012SAndroid Build Coastguard Worker
341*d5c09012SAndroid Build Coastguard Worker  // Output only. The earliest restorable time that can be restored to. Output
342*d5c09012SAndroid Build Coastguard Worker  // only field.
343*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp earliest_restorable_time = 4
344*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
345*d5c09012SAndroid Build Coastguard Worker}
346*d5c09012SAndroid Build Coastguard Worker
347*d5c09012SAndroid Build Coastguard Worker// Message describing a BackupSource.
348*d5c09012SAndroid Build Coastguard Workermessage BackupSource {
349*d5c09012SAndroid Build Coastguard Worker  // Output only. The system-generated UID of the backup which was used to
350*d5c09012SAndroid Build Coastguard Worker  // create this resource. The UID is generated when the backup is created, and
351*d5c09012SAndroid Build Coastguard Worker  // it is retained until the backup is deleted.
352*d5c09012SAndroid Build Coastguard Worker  string backup_uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
353*d5c09012SAndroid Build Coastguard Worker
354*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the backup resource with the format:
355*d5c09012SAndroid Build Coastguard Worker  //  * projects/{project}/locations/{region}/backups/{backup_id}
356*d5c09012SAndroid Build Coastguard Worker  string backup_name = 1 [
357*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
358*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "alloydb.googleapis.com/Backup" }
359*d5c09012SAndroid Build Coastguard Worker  ];
360*d5c09012SAndroid Build Coastguard Worker}
361*d5c09012SAndroid Build Coastguard Worker
362*d5c09012SAndroid Build Coastguard Worker// Message describing a ContinuousBackupSource.
363*d5c09012SAndroid Build Coastguard Workermessage ContinuousBackupSource {
364*d5c09012SAndroid Build Coastguard Worker  // Required. The source cluster from which to restore. This cluster must have
365*d5c09012SAndroid Build Coastguard Worker  // continuous backup enabled for this operation to succeed. For the required
366*d5c09012SAndroid Build Coastguard Worker  // format, see the comment on the Cluster.name field.
367*d5c09012SAndroid Build Coastguard Worker  string cluster = 1 [(google.api.field_behavior) = REQUIRED];
368*d5c09012SAndroid Build Coastguard Worker
369*d5c09012SAndroid Build Coastguard Worker  // Required. The point in time to restore to.
370*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp point_in_time = 2
371*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = REQUIRED];
372*d5c09012SAndroid Build Coastguard Worker}
373*d5c09012SAndroid Build Coastguard Worker
374*d5c09012SAndroid Build Coastguard Worker// A cluster is a collection of regional AlloyDB resources. It can include a
375*d5c09012SAndroid Build Coastguard Worker// primary instance and one or more read pool instances.
376*d5c09012SAndroid Build Coastguard Worker// All cluster resources share a storage layer, which scales as needed.
377*d5c09012SAndroid Build Coastguard Workermessage Cluster {
378*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
379*d5c09012SAndroid Build Coastguard Worker    type: "alloydb.googleapis.com/Cluster"
380*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/clusters/{cluster}"
381*d5c09012SAndroid Build Coastguard Worker    style: DECLARATIVE_FRIENDLY
382*d5c09012SAndroid Build Coastguard Worker  };
383*d5c09012SAndroid Build Coastguard Worker
384*d5c09012SAndroid Build Coastguard Worker  // Metadata related to network configuration.
385*d5c09012SAndroid Build Coastguard Worker  message NetworkConfig {
386*d5c09012SAndroid Build Coastguard Worker    // Required. The resource link for the VPC network in which cluster
387*d5c09012SAndroid Build Coastguard Worker    // resources are created and from which they are accessible via Private IP.
388*d5c09012SAndroid Build Coastguard Worker    // The network must belong to the same project as the cluster. It is
389*d5c09012SAndroid Build Coastguard Worker    // specified in the form:
390*d5c09012SAndroid Build Coastguard Worker    // "projects/{project_number}/global/networks/{network_id}". This is
391*d5c09012SAndroid Build Coastguard Worker    // required to create a cluster.
392*d5c09012SAndroid Build Coastguard Worker    string network = 1 [
393*d5c09012SAndroid Build Coastguard Worker      (google.api.field_behavior) = REQUIRED,
394*d5c09012SAndroid Build Coastguard Worker      (google.api.resource_reference) = {
395*d5c09012SAndroid Build Coastguard Worker        type: "compute.googleapis.com/Network"
396*d5c09012SAndroid Build Coastguard Worker      }
397*d5c09012SAndroid Build Coastguard Worker    ];
398*d5c09012SAndroid Build Coastguard Worker
399*d5c09012SAndroid Build Coastguard Worker    // Optional. Name of the allocated IP range for the private IP AlloyDB
400*d5c09012SAndroid Build Coastguard Worker    // cluster, for example: "google-managed-services-default". If set, the
401*d5c09012SAndroid Build Coastguard Worker    // instance IPs for this cluster will be created in the allocated range. The
402*d5c09012SAndroid Build Coastguard Worker    // range name must comply with RFC 1035. Specifically, the name must be 1-63
403*d5c09012SAndroid Build Coastguard Worker    // characters long and match the regular expression
404*d5c09012SAndroid Build Coastguard Worker    // `[a-z]([-a-z0-9]*[a-z0-9])?`.
405*d5c09012SAndroid Build Coastguard Worker    // Field name is intended to be consistent with Cloud SQL.
406*d5c09012SAndroid Build Coastguard Worker    string allocated_ip_range = 2 [(google.api.field_behavior) = OPTIONAL];
407*d5c09012SAndroid Build Coastguard Worker  }
408*d5c09012SAndroid Build Coastguard Worker
409*d5c09012SAndroid Build Coastguard Worker  // Configuration information for the secondary cluster. This should be set
410*d5c09012SAndroid Build Coastguard Worker  // if and only if the cluster is of type SECONDARY.
411*d5c09012SAndroid Build Coastguard Worker  message SecondaryConfig {
412*d5c09012SAndroid Build Coastguard Worker    // The name of the primary cluster name with the format:
413*d5c09012SAndroid Build Coastguard Worker    // * projects/{project}/locations/{region}/clusters/{cluster_id}
414*d5c09012SAndroid Build Coastguard Worker    string primary_cluster_name = 1;
415*d5c09012SAndroid Build Coastguard Worker  }
416*d5c09012SAndroid Build Coastguard Worker
417*d5c09012SAndroid Build Coastguard Worker  // Configuration for the primary cluster. It has the list of clusters that are
418*d5c09012SAndroid Build Coastguard Worker  // replicating from this cluster. This should be set if and only if the
419*d5c09012SAndroid Build Coastguard Worker  // cluster is of type PRIMARY.
420*d5c09012SAndroid Build Coastguard Worker  message PrimaryConfig {
421*d5c09012SAndroid Build Coastguard Worker    // Output only. Names of the clusters that are replicating from this
422*d5c09012SAndroid Build Coastguard Worker    // cluster.
423*d5c09012SAndroid Build Coastguard Worker    repeated string secondary_cluster_names = 1
424*d5c09012SAndroid Build Coastguard Worker        [(google.api.field_behavior) = OUTPUT_ONLY];
425*d5c09012SAndroid Build Coastguard Worker  }
426*d5c09012SAndroid Build Coastguard Worker
427*d5c09012SAndroid Build Coastguard Worker  // Cluster State
428*d5c09012SAndroid Build Coastguard Worker  enum State {
429*d5c09012SAndroid Build Coastguard Worker    // The state of the cluster is unknown.
430*d5c09012SAndroid Build Coastguard Worker    STATE_UNSPECIFIED = 0;
431*d5c09012SAndroid Build Coastguard Worker
432*d5c09012SAndroid Build Coastguard Worker    // The cluster is active and running.
433*d5c09012SAndroid Build Coastguard Worker    READY = 1;
434*d5c09012SAndroid Build Coastguard Worker
435*d5c09012SAndroid Build Coastguard Worker    // The cluster is stopped. All instances in the cluster are stopped.
436*d5c09012SAndroid Build Coastguard Worker    // Customers can start a stopped cluster at any point and all their
437*d5c09012SAndroid Build Coastguard Worker    // instances will come back to life with same names and IP resources. In
438*d5c09012SAndroid Build Coastguard Worker    // this state, customer pays for storage.
439*d5c09012SAndroid Build Coastguard Worker    // Associated backups could also be present in a stopped cluster.
440*d5c09012SAndroid Build Coastguard Worker    STOPPED = 2;
441*d5c09012SAndroid Build Coastguard Worker
442*d5c09012SAndroid Build Coastguard Worker    // The cluster is empty and has no associated resources.
443*d5c09012SAndroid Build Coastguard Worker    // All instances, associated storage and backups have been deleted.
444*d5c09012SAndroid Build Coastguard Worker    EMPTY = 3;
445*d5c09012SAndroid Build Coastguard Worker
446*d5c09012SAndroid Build Coastguard Worker    // The cluster is being created.
447*d5c09012SAndroid Build Coastguard Worker    CREATING = 4;
448*d5c09012SAndroid Build Coastguard Worker
449*d5c09012SAndroid Build Coastguard Worker    // The cluster is being deleted.
450*d5c09012SAndroid Build Coastguard Worker    DELETING = 5;
451*d5c09012SAndroid Build Coastguard Worker
452*d5c09012SAndroid Build Coastguard Worker    // The creation of the cluster failed.
453*d5c09012SAndroid Build Coastguard Worker    FAILED = 6;
454*d5c09012SAndroid Build Coastguard Worker
455*d5c09012SAndroid Build Coastguard Worker    // The cluster is bootstrapping with data from some other source.
456*d5c09012SAndroid Build Coastguard Worker    // Direct mutations to the cluster (e.g. adding read pool) are not allowed.
457*d5c09012SAndroid Build Coastguard Worker    BOOTSTRAPPING = 7;
458*d5c09012SAndroid Build Coastguard Worker
459*d5c09012SAndroid Build Coastguard Worker    // The cluster is under maintenance. AlloyDB regularly performs maintenance
460*d5c09012SAndroid Build Coastguard Worker    // and upgrades on customer clusters. Updates on the cluster are
461*d5c09012SAndroid Build Coastguard Worker    // not allowed while the cluster is in this state.
462*d5c09012SAndroid Build Coastguard Worker    MAINTENANCE = 8;
463*d5c09012SAndroid Build Coastguard Worker
464*d5c09012SAndroid Build Coastguard Worker    // The cluster is being promoted.
465*d5c09012SAndroid Build Coastguard Worker    PROMOTING = 9;
466*d5c09012SAndroid Build Coastguard Worker  }
467*d5c09012SAndroid Build Coastguard Worker
468*d5c09012SAndroid Build Coastguard Worker  // Type of Cluster
469*d5c09012SAndroid Build Coastguard Worker  enum ClusterType {
470*d5c09012SAndroid Build Coastguard Worker    // The type of the cluster is unknown.
471*d5c09012SAndroid Build Coastguard Worker    CLUSTER_TYPE_UNSPECIFIED = 0;
472*d5c09012SAndroid Build Coastguard Worker
473*d5c09012SAndroid Build Coastguard Worker    // Primary cluster that support read and write operations.
474*d5c09012SAndroid Build Coastguard Worker    PRIMARY = 1;
475*d5c09012SAndroid Build Coastguard Worker
476*d5c09012SAndroid Build Coastguard Worker    // Secondary cluster that is replicating from another region.
477*d5c09012SAndroid Build Coastguard Worker    // This only supports read.
478*d5c09012SAndroid Build Coastguard Worker    SECONDARY = 2;
479*d5c09012SAndroid Build Coastguard Worker  }
480*d5c09012SAndroid Build Coastguard Worker
481*d5c09012SAndroid Build Coastguard Worker  // In case of an imported cluster, this field contains information about the
482*d5c09012SAndroid Build Coastguard Worker  // source this cluster was imported from.
483*d5c09012SAndroid Build Coastguard Worker  oneof source {
484*d5c09012SAndroid Build Coastguard Worker    // Output only. Cluster created from backup.
485*d5c09012SAndroid Build Coastguard Worker    BackupSource backup_source = 15 [(google.api.field_behavior) = OUTPUT_ONLY];
486*d5c09012SAndroid Build Coastguard Worker
487*d5c09012SAndroid Build Coastguard Worker    // Output only. Cluster created via DMS migration.
488*d5c09012SAndroid Build Coastguard Worker    MigrationSource migration_source = 16
489*d5c09012SAndroid Build Coastguard Worker        [(google.api.field_behavior) = OUTPUT_ONLY];
490*d5c09012SAndroid Build Coastguard Worker  }
491*d5c09012SAndroid Build Coastguard Worker
492*d5c09012SAndroid Build Coastguard Worker  // Output only. The name of the cluster resource with the format:
493*d5c09012SAndroid Build Coastguard Worker  //  * projects/{project}/locations/{region}/clusters/{cluster_id}
494*d5c09012SAndroid Build Coastguard Worker  // where the cluster ID segment should satisfy the regex expression
495*d5c09012SAndroid Build Coastguard Worker  // `[a-z0-9-]+`. For more details see https://google.aip.dev/122.
496*d5c09012SAndroid Build Coastguard Worker  // The prefix of the cluster resource name is the name of the parent resource:
497*d5c09012SAndroid Build Coastguard Worker  //  * projects/{project}/locations/{region}
498*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
499*d5c09012SAndroid Build Coastguard Worker
500*d5c09012SAndroid Build Coastguard Worker  // User-settable and human-readable display name for the Cluster.
501*d5c09012SAndroid Build Coastguard Worker  string display_name = 2;
502*d5c09012SAndroid Build Coastguard Worker
503*d5c09012SAndroid Build Coastguard Worker  // Output only. The system-generated UID of the resource. The UID is assigned
504*d5c09012SAndroid Build Coastguard Worker  // when the resource is created, and it is retained until it is deleted.
505*d5c09012SAndroid Build Coastguard Worker  string uid = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
506*d5c09012SAndroid Build Coastguard Worker
507*d5c09012SAndroid Build Coastguard Worker  // Output only. Create time stamp
508*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 4
509*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
510*d5c09012SAndroid Build Coastguard Worker
511*d5c09012SAndroid Build Coastguard Worker  // Output only. Update time stamp
512*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 5
513*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
514*d5c09012SAndroid Build Coastguard Worker
515*d5c09012SAndroid Build Coastguard Worker  // Output only. Delete time stamp
516*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp delete_time = 6
517*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
518*d5c09012SAndroid Build Coastguard Worker
519*d5c09012SAndroid Build Coastguard Worker  // Labels as key value pairs
520*d5c09012SAndroid Build Coastguard Worker  map<string, string> labels = 7;
521*d5c09012SAndroid Build Coastguard Worker
522*d5c09012SAndroid Build Coastguard Worker  // Output only. The current serving state of the cluster.
523*d5c09012SAndroid Build Coastguard Worker  State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
524*d5c09012SAndroid Build Coastguard Worker
525*d5c09012SAndroid Build Coastguard Worker  // Output only. The type of the cluster. This is an output-only field and it's
526*d5c09012SAndroid Build Coastguard Worker  // populated at the Cluster creation time or the Cluster promotion
527*d5c09012SAndroid Build Coastguard Worker  // time. The cluster type is determined by which RPC was used to create
528*d5c09012SAndroid Build Coastguard Worker  // the cluster (i.e. `CreateCluster` vs. `CreateSecondaryCluster`
529*d5c09012SAndroid Build Coastguard Worker  ClusterType cluster_type = 24 [(google.api.field_behavior) = OUTPUT_ONLY];
530*d5c09012SAndroid Build Coastguard Worker
531*d5c09012SAndroid Build Coastguard Worker  // Optional. The database engine major version. This is an optional field and
532*d5c09012SAndroid Build Coastguard Worker  // it is populated at the Cluster creation time. If a database version is not
533*d5c09012SAndroid Build Coastguard Worker  // supplied at cluster creation time, then a default database version will
534*d5c09012SAndroid Build Coastguard Worker  // be used.
535*d5c09012SAndroid Build Coastguard Worker  DatabaseVersion database_version = 9 [(google.api.field_behavior) = OPTIONAL];
536*d5c09012SAndroid Build Coastguard Worker
537*d5c09012SAndroid Build Coastguard Worker  NetworkConfig network_config = 29 [(google.api.field_behavior) = OPTIONAL];
538*d5c09012SAndroid Build Coastguard Worker
539*d5c09012SAndroid Build Coastguard Worker  // Required. The resource link for the VPC network in which cluster resources
540*d5c09012SAndroid Build Coastguard Worker  // are created and from which they are accessible via Private IP. The network
541*d5c09012SAndroid Build Coastguard Worker  // must belong to the same project as the cluster. It is specified in the
542*d5c09012SAndroid Build Coastguard Worker  // form: "projects/{project}/global/networks/{network_id}". This is required
543*d5c09012SAndroid Build Coastguard Worker  // to create a cluster. Deprecated, use network_config.network instead.
544*d5c09012SAndroid Build Coastguard Worker  string network = 10 [
545*d5c09012SAndroid Build Coastguard Worker    deprecated = true,
546*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
547*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "compute.googleapis.com/Network" }
548*d5c09012SAndroid Build Coastguard Worker  ];
549*d5c09012SAndroid Build Coastguard Worker
550*d5c09012SAndroid Build Coastguard Worker  // For Resource freshness validation (https://google.aip.dev/154)
551*d5c09012SAndroid Build Coastguard Worker  string etag = 11;
552*d5c09012SAndroid Build Coastguard Worker
553*d5c09012SAndroid Build Coastguard Worker  // Annotations to allow client tools to store small amount of arbitrary data.
554*d5c09012SAndroid Build Coastguard Worker  // This is distinct from labels.
555*d5c09012SAndroid Build Coastguard Worker  // https://google.aip.dev/128
556*d5c09012SAndroid Build Coastguard Worker  map<string, string> annotations = 12;
557*d5c09012SAndroid Build Coastguard Worker
558*d5c09012SAndroid Build Coastguard Worker  // Output only. Reconciling (https://google.aip.dev/128#reconciliation).
559*d5c09012SAndroid Build Coastguard Worker  // Set to true if the current state of Cluster does not match the user's
560*d5c09012SAndroid Build Coastguard Worker  // intended state, and the service is actively updating the resource to
561*d5c09012SAndroid Build Coastguard Worker  // reconcile them. This can happen due to user-triggered updates or
562*d5c09012SAndroid Build Coastguard Worker  // system actions like failover or maintenance.
563*d5c09012SAndroid Build Coastguard Worker  bool reconciling = 13 [(google.api.field_behavior) = OUTPUT_ONLY];
564*d5c09012SAndroid Build Coastguard Worker
565*d5c09012SAndroid Build Coastguard Worker  // Input only. Initial user to setup during cluster creation. Required.
566*d5c09012SAndroid Build Coastguard Worker  // If used in `RestoreCluster` this is ignored.
567*d5c09012SAndroid Build Coastguard Worker  UserPassword initial_user = 14 [(google.api.field_behavior) = INPUT_ONLY];
568*d5c09012SAndroid Build Coastguard Worker
569*d5c09012SAndroid Build Coastguard Worker  // The automated backup policy for this cluster.
570*d5c09012SAndroid Build Coastguard Worker  //
571*d5c09012SAndroid Build Coastguard Worker  // If no policy is provided then the default policy will be used. If backups
572*d5c09012SAndroid Build Coastguard Worker  // are supported for the cluster, the default policy takes one backup a day,
573*d5c09012SAndroid Build Coastguard Worker  // has a backup window of 1 hour, and retains backups for 14 days.
574*d5c09012SAndroid Build Coastguard Worker  // For more information on the defaults, consult the
575*d5c09012SAndroid Build Coastguard Worker  // documentation for the message type.
576*d5c09012SAndroid Build Coastguard Worker  AutomatedBackupPolicy automated_backup_policy = 17;
577*d5c09012SAndroid Build Coastguard Worker
578*d5c09012SAndroid Build Coastguard Worker  // SSL configuration for this AlloyDB cluster.
579*d5c09012SAndroid Build Coastguard Worker  SslConfig ssl_config = 18 [deprecated = true];
580*d5c09012SAndroid Build Coastguard Worker
581*d5c09012SAndroid Build Coastguard Worker  // Optional. The encryption config can be specified to encrypt the data disks
582*d5c09012SAndroid Build Coastguard Worker  // and other persistent data resources of a cluster with a
583*d5c09012SAndroid Build Coastguard Worker  // customer-managed encryption key (CMEK). When this field is not
584*d5c09012SAndroid Build Coastguard Worker  // specified, the cluster will then use default encryption scheme to
585*d5c09012SAndroid Build Coastguard Worker  // protect the user data.
586*d5c09012SAndroid Build Coastguard Worker  EncryptionConfig encryption_config = 19
587*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
588*d5c09012SAndroid Build Coastguard Worker
589*d5c09012SAndroid Build Coastguard Worker  // Output only. The encryption information for the cluster.
590*d5c09012SAndroid Build Coastguard Worker  EncryptionInfo encryption_info = 20
591*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
592*d5c09012SAndroid Build Coastguard Worker
593*d5c09012SAndroid Build Coastguard Worker  // Optional. Continuous backup configuration for this cluster.
594*d5c09012SAndroid Build Coastguard Worker  ContinuousBackupConfig continuous_backup_config = 27
595*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
596*d5c09012SAndroid Build Coastguard Worker
597*d5c09012SAndroid Build Coastguard Worker  // Output only. Continuous backup properties for this cluster.
598*d5c09012SAndroid Build Coastguard Worker  ContinuousBackupInfo continuous_backup_info = 28
599*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
600*d5c09012SAndroid Build Coastguard Worker
601*d5c09012SAndroid Build Coastguard Worker  // Cross Region replication config specific to SECONDARY cluster.
602*d5c09012SAndroid Build Coastguard Worker  SecondaryConfig secondary_config = 22;
603*d5c09012SAndroid Build Coastguard Worker
604*d5c09012SAndroid Build Coastguard Worker  // Output only. Cross Region replication config specific to PRIMARY cluster.
605*d5c09012SAndroid Build Coastguard Worker  PrimaryConfig primary_config = 23 [(google.api.field_behavior) = OUTPUT_ONLY];
606*d5c09012SAndroid Build Coastguard Worker}
607*d5c09012SAndroid Build Coastguard Worker
608*d5c09012SAndroid Build Coastguard Worker// An Instance is a computing unit that an end customer can connect to.
609*d5c09012SAndroid Build Coastguard Worker// It's the main unit of computing resources in AlloyDB.
610*d5c09012SAndroid Build Coastguard Workermessage Instance {
611*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
612*d5c09012SAndroid Build Coastguard Worker    type: "alloydb.googleapis.com/Instance"
613*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/clusters/{cluster}/instances/{instance}"
614*d5c09012SAndroid Build Coastguard Worker    style: DECLARATIVE_FRIENDLY
615*d5c09012SAndroid Build Coastguard Worker  };
616*d5c09012SAndroid Build Coastguard Worker
617*d5c09012SAndroid Build Coastguard Worker  // MachineConfig describes the configuration of a machine.
618*d5c09012SAndroid Build Coastguard Worker  message MachineConfig {
619*d5c09012SAndroid Build Coastguard Worker    // The number of CPU's in the VM instance.
620*d5c09012SAndroid Build Coastguard Worker    int32 cpu_count = 1;
621*d5c09012SAndroid Build Coastguard Worker  }
622*d5c09012SAndroid Build Coastguard Worker
623*d5c09012SAndroid Build Coastguard Worker  // Details of a single node in the instance.
624*d5c09012SAndroid Build Coastguard Worker  // Nodes in an AlloyDB instance are ephemereal, they can change during
625*d5c09012SAndroid Build Coastguard Worker  // update, failover, autohealing and resize operations.
626*d5c09012SAndroid Build Coastguard Worker  message Node {
627*d5c09012SAndroid Build Coastguard Worker    // The Compute Engine zone of the VM e.g. "us-central1-b".
628*d5c09012SAndroid Build Coastguard Worker    string zone_id = 1;
629*d5c09012SAndroid Build Coastguard Worker
630*d5c09012SAndroid Build Coastguard Worker    // The identifier of the VM e.g. "test-read-0601-407e52be-ms3l".
631*d5c09012SAndroid Build Coastguard Worker    string id = 2;
632*d5c09012SAndroid Build Coastguard Worker
633*d5c09012SAndroid Build Coastguard Worker    // The private IP address of the VM e.g. "10.57.0.34".
634*d5c09012SAndroid Build Coastguard Worker    string ip = 3;
635*d5c09012SAndroid Build Coastguard Worker
636*d5c09012SAndroid Build Coastguard Worker    // Determined by state of the compute VM and postgres-service health.
637*d5c09012SAndroid Build Coastguard Worker    // Compute VM state can have values listed in
638*d5c09012SAndroid Build Coastguard Worker    // https://cloud.google.com/compute/docs/instances/instance-life-cycle and
639*d5c09012SAndroid Build Coastguard Worker    // postgres-service health can have values: HEALTHY and UNHEALTHY.
640*d5c09012SAndroid Build Coastguard Worker    string state = 4;
641*d5c09012SAndroid Build Coastguard Worker  }
642*d5c09012SAndroid Build Coastguard Worker
643*d5c09012SAndroid Build Coastguard Worker  // QueryInsights Instance specific configuration.
644*d5c09012SAndroid Build Coastguard Worker  message QueryInsightsInstanceConfig {
645*d5c09012SAndroid Build Coastguard Worker    // Record application tags for an instance.
646*d5c09012SAndroid Build Coastguard Worker    // This flag is turned "on" by default.
647*d5c09012SAndroid Build Coastguard Worker    optional bool record_application_tags = 2;
648*d5c09012SAndroid Build Coastguard Worker
649*d5c09012SAndroid Build Coastguard Worker    // Record client address for an instance. Client address is PII information.
650*d5c09012SAndroid Build Coastguard Worker    // This flag is turned "on" by default.
651*d5c09012SAndroid Build Coastguard Worker    optional bool record_client_address = 3;
652*d5c09012SAndroid Build Coastguard Worker
653*d5c09012SAndroid Build Coastguard Worker    // Query string length. The default value is 1024.
654*d5c09012SAndroid Build Coastguard Worker    // Any integer between 256 and 4500 is considered valid.
655*d5c09012SAndroid Build Coastguard Worker    uint32 query_string_length = 4;
656*d5c09012SAndroid Build Coastguard Worker
657*d5c09012SAndroid Build Coastguard Worker    // Number of query execution plans captured by Insights per minute
658*d5c09012SAndroid Build Coastguard Worker    // for all queries combined. The default value is 5.
659*d5c09012SAndroid Build Coastguard Worker    // Any integer between 0 and 20 is considered valid.
660*d5c09012SAndroid Build Coastguard Worker    optional uint32 query_plans_per_minute = 5;
661*d5c09012SAndroid Build Coastguard Worker  }
662*d5c09012SAndroid Build Coastguard Worker
663*d5c09012SAndroid Build Coastguard Worker  // Configuration for a read pool instance.
664*d5c09012SAndroid Build Coastguard Worker  message ReadPoolConfig {
665*d5c09012SAndroid Build Coastguard Worker    // Read capacity, i.e. number of nodes in a read pool instance.
666*d5c09012SAndroid Build Coastguard Worker    int32 node_count = 1;
667*d5c09012SAndroid Build Coastguard Worker  }
668*d5c09012SAndroid Build Coastguard Worker
669*d5c09012SAndroid Build Coastguard Worker  // Client connection configuration
670*d5c09012SAndroid Build Coastguard Worker  message ClientConnectionConfig {
671*d5c09012SAndroid Build Coastguard Worker    // Optional. Configuration to enforce connectors only (ex: AuthProxy)
672*d5c09012SAndroid Build Coastguard Worker    // connections to the database.
673*d5c09012SAndroid Build Coastguard Worker    bool require_connectors = 1 [(google.api.field_behavior) = OPTIONAL];
674*d5c09012SAndroid Build Coastguard Worker
675*d5c09012SAndroid Build Coastguard Worker    // Optional. SSL config option for this instance.
676*d5c09012SAndroid Build Coastguard Worker    SslConfig ssl_config = 2 [(google.api.field_behavior) = OPTIONAL];
677*d5c09012SAndroid Build Coastguard Worker  }
678*d5c09012SAndroid Build Coastguard Worker
679*d5c09012SAndroid Build Coastguard Worker  // Instance State
680*d5c09012SAndroid Build Coastguard Worker  enum State {
681*d5c09012SAndroid Build Coastguard Worker    // The state of the instance is unknown.
682*d5c09012SAndroid Build Coastguard Worker    STATE_UNSPECIFIED = 0;
683*d5c09012SAndroid Build Coastguard Worker
684*d5c09012SAndroid Build Coastguard Worker    // The instance is active and running.
685*d5c09012SAndroid Build Coastguard Worker    READY = 1;
686*d5c09012SAndroid Build Coastguard Worker
687*d5c09012SAndroid Build Coastguard Worker    // The instance is stopped. Instance name and IP resources are preserved.
688*d5c09012SAndroid Build Coastguard Worker    STOPPED = 2;
689*d5c09012SAndroid Build Coastguard Worker
690*d5c09012SAndroid Build Coastguard Worker    // The instance is being created.
691*d5c09012SAndroid Build Coastguard Worker    CREATING = 3;
692*d5c09012SAndroid Build Coastguard Worker
693*d5c09012SAndroid Build Coastguard Worker    // The instance is being deleted.
694*d5c09012SAndroid Build Coastguard Worker    DELETING = 4;
695*d5c09012SAndroid Build Coastguard Worker
696*d5c09012SAndroid Build Coastguard Worker    // The instance is down for maintenance.
697*d5c09012SAndroid Build Coastguard Worker    MAINTENANCE = 5;
698*d5c09012SAndroid Build Coastguard Worker
699*d5c09012SAndroid Build Coastguard Worker    // The creation of the instance failed or a fatal error occurred during
700*d5c09012SAndroid Build Coastguard Worker    // an operation on the instance.
701*d5c09012SAndroid Build Coastguard Worker    // Note: Instances in this state would tried to be auto-repaired. And
702*d5c09012SAndroid Build Coastguard Worker    // Customers should be able to restart, update or delete these instances.
703*d5c09012SAndroid Build Coastguard Worker    FAILED = 6;
704*d5c09012SAndroid Build Coastguard Worker
705*d5c09012SAndroid Build Coastguard Worker    // Index 7 is used in the producer apis for ROLLED_BACK state. Keeping that
706*d5c09012SAndroid Build Coastguard Worker    // index unused in case that state also needs to exposed via consumer apis
707*d5c09012SAndroid Build Coastguard Worker    // in future.
708*d5c09012SAndroid Build Coastguard Worker    // The instance has been configured to sync data from some other source.
709*d5c09012SAndroid Build Coastguard Worker    BOOTSTRAPPING = 8;
710*d5c09012SAndroid Build Coastguard Worker
711*d5c09012SAndroid Build Coastguard Worker    // The instance is being promoted.
712*d5c09012SAndroid Build Coastguard Worker    PROMOTING = 9;
713*d5c09012SAndroid Build Coastguard Worker  }
714*d5c09012SAndroid Build Coastguard Worker
715*d5c09012SAndroid Build Coastguard Worker  // Type of an Instance
716*d5c09012SAndroid Build Coastguard Worker  enum InstanceType {
717*d5c09012SAndroid Build Coastguard Worker    // The type of the instance is unknown.
718*d5c09012SAndroid Build Coastguard Worker    INSTANCE_TYPE_UNSPECIFIED = 0;
719*d5c09012SAndroid Build Coastguard Worker
720*d5c09012SAndroid Build Coastguard Worker    // PRIMARY instances support read and write operations.
721*d5c09012SAndroid Build Coastguard Worker    PRIMARY = 1;
722*d5c09012SAndroid Build Coastguard Worker
723*d5c09012SAndroid Build Coastguard Worker    // READ POOL instances support read operations only. Each read pool instance
724*d5c09012SAndroid Build Coastguard Worker    // consists of one or more homogeneous nodes.
725*d5c09012SAndroid Build Coastguard Worker    //  * Read pool of size 1 can only have zonal availability.
726*d5c09012SAndroid Build Coastguard Worker    //  * Read pools with node count of 2 or more can have regional
727*d5c09012SAndroid Build Coastguard Worker    //    availability (nodes are present in 2 or more zones in a region).
728*d5c09012SAndroid Build Coastguard Worker    READ_POOL = 2;
729*d5c09012SAndroid Build Coastguard Worker
730*d5c09012SAndroid Build Coastguard Worker    // SECONDARY instances support read operations only. SECONDARY instance
731*d5c09012SAndroid Build Coastguard Worker    // is a cross-region read replica
732*d5c09012SAndroid Build Coastguard Worker    SECONDARY = 3;
733*d5c09012SAndroid Build Coastguard Worker  }
734*d5c09012SAndroid Build Coastguard Worker
735*d5c09012SAndroid Build Coastguard Worker  // The Availability type of an instance. Potential values:
736*d5c09012SAndroid Build Coastguard Worker  //
737*d5c09012SAndroid Build Coastguard Worker  // - ZONAL: The instance serves data from only one zone. Outages in that
738*d5c09012SAndroid Build Coastguard Worker  //     zone affect instance availability.
739*d5c09012SAndroid Build Coastguard Worker  // - REGIONAL: The instance can serve data from more than one zone in a
740*d5c09012SAndroid Build Coastguard Worker  //     region (it is highly available).
741*d5c09012SAndroid Build Coastguard Worker  enum AvailabilityType {
742*d5c09012SAndroid Build Coastguard Worker    // This is an unknown Availability type.
743*d5c09012SAndroid Build Coastguard Worker    AVAILABILITY_TYPE_UNSPECIFIED = 0;
744*d5c09012SAndroid Build Coastguard Worker
745*d5c09012SAndroid Build Coastguard Worker    // Zonal available instance.
746*d5c09012SAndroid Build Coastguard Worker    ZONAL = 1;
747*d5c09012SAndroid Build Coastguard Worker
748*d5c09012SAndroid Build Coastguard Worker    // Regional (or Highly) available instance.
749*d5c09012SAndroid Build Coastguard Worker    REGIONAL = 2;
750*d5c09012SAndroid Build Coastguard Worker  }
751*d5c09012SAndroid Build Coastguard Worker
752*d5c09012SAndroid Build Coastguard Worker  // Output only. The name of the instance resource with the format:
753*d5c09012SAndroid Build Coastguard Worker  //  * projects/{project}/locations/{region}/clusters/{cluster_id}/instances/{instance_id}
754*d5c09012SAndroid Build Coastguard Worker  // where the cluster and instance ID segments should satisfy the regex
755*d5c09012SAndroid Build Coastguard Worker  // expression `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`, e.g. 1-63 characters of
756*d5c09012SAndroid Build Coastguard Worker  // lowercase letters, numbers, and dashes, starting with a letter, and ending
757*d5c09012SAndroid Build Coastguard Worker  // with a letter or number. For more details see https://google.aip.dev/122.
758*d5c09012SAndroid Build Coastguard Worker  // The prefix of the instance resource name is the name of the parent
759*d5c09012SAndroid Build Coastguard Worker  // resource:
760*d5c09012SAndroid Build Coastguard Worker  //  * projects/{project}/locations/{region}/clusters/{cluster_id}
761*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
762*d5c09012SAndroid Build Coastguard Worker
763*d5c09012SAndroid Build Coastguard Worker  // User-settable and human-readable display name for the Instance.
764*d5c09012SAndroid Build Coastguard Worker  string display_name = 2;
765*d5c09012SAndroid Build Coastguard Worker
766*d5c09012SAndroid Build Coastguard Worker  // Output only. The system-generated UID of the resource. The UID is assigned
767*d5c09012SAndroid Build Coastguard Worker  // when the resource is created, and it is retained until it is deleted.
768*d5c09012SAndroid Build Coastguard Worker  string uid = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
769*d5c09012SAndroid Build Coastguard Worker
770*d5c09012SAndroid Build Coastguard Worker  // Output only. Create time stamp
771*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 4
772*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
773*d5c09012SAndroid Build Coastguard Worker
774*d5c09012SAndroid Build Coastguard Worker  // Output only. Update time stamp
775*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 5
776*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
777*d5c09012SAndroid Build Coastguard Worker
778*d5c09012SAndroid Build Coastguard Worker  // Output only. Delete time stamp
779*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp delete_time = 6
780*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
781*d5c09012SAndroid Build Coastguard Worker
782*d5c09012SAndroid Build Coastguard Worker  // Labels as key value pairs
783*d5c09012SAndroid Build Coastguard Worker  map<string, string> labels = 7;
784*d5c09012SAndroid Build Coastguard Worker
785*d5c09012SAndroid Build Coastguard Worker  // Output only. The current serving state of the instance.
786*d5c09012SAndroid Build Coastguard Worker  State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
787*d5c09012SAndroid Build Coastguard Worker
788*d5c09012SAndroid Build Coastguard Worker  // Required. The type of the instance. Specified at creation time.
789*d5c09012SAndroid Build Coastguard Worker  InstanceType instance_type = 9 [(google.api.field_behavior) = REQUIRED];
790*d5c09012SAndroid Build Coastguard Worker
791*d5c09012SAndroid Build Coastguard Worker  // Configurations for the machines that host the underlying
792*d5c09012SAndroid Build Coastguard Worker  // database engine.
793*d5c09012SAndroid Build Coastguard Worker  MachineConfig machine_config = 10;
794*d5c09012SAndroid Build Coastguard Worker
795*d5c09012SAndroid Build Coastguard Worker  // Availability type of an Instance.
796*d5c09012SAndroid Build Coastguard Worker  // If empty, defaults to REGIONAL for primary instances.
797*d5c09012SAndroid Build Coastguard Worker  // For read pools, availability_type is always UNSPECIFIED. Instances in the
798*d5c09012SAndroid Build Coastguard Worker  // read pools are evenly distributed across available zones within the region
799*d5c09012SAndroid Build Coastguard Worker  // (i.e. read pools with more than one node will have a node in at
800*d5c09012SAndroid Build Coastguard Worker  // least two zones).
801*d5c09012SAndroid Build Coastguard Worker  AvailabilityType availability_type = 11;
802*d5c09012SAndroid Build Coastguard Worker
803*d5c09012SAndroid Build Coastguard Worker  // The Compute Engine zone that the instance should serve from, per
804*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/compute/docs/regions-zones
805*d5c09012SAndroid Build Coastguard Worker  // This can ONLY be specified for ZONAL instances.
806*d5c09012SAndroid Build Coastguard Worker  // If present for a REGIONAL instance, an error will be thrown.
807*d5c09012SAndroid Build Coastguard Worker  // If this is absent for a ZONAL instance, instance is created in a random
808*d5c09012SAndroid Build Coastguard Worker  // zone with available capacity.
809*d5c09012SAndroid Build Coastguard Worker  string gce_zone = 12;
810*d5c09012SAndroid Build Coastguard Worker
811*d5c09012SAndroid Build Coastguard Worker  // Database flags. Set at instance level.
812*d5c09012SAndroid Build Coastguard Worker  //  * They are copied from primary instance on read instance creation.
813*d5c09012SAndroid Build Coastguard Worker  //  * Read instances can set new or override existing flags that are relevant
814*d5c09012SAndroid Build Coastguard Worker  //    for reads, e.g. for enabling columnar cache on a read instance. Flags
815*d5c09012SAndroid Build Coastguard Worker  //    set on read instance may or may not be present on primary.
816*d5c09012SAndroid Build Coastguard Worker  //
817*d5c09012SAndroid Build Coastguard Worker  //
818*d5c09012SAndroid Build Coastguard Worker  // This is a list of "key": "value" pairs.
819*d5c09012SAndroid Build Coastguard Worker  // "key": The name of the flag. These flags are passed at instance setup time,
820*d5c09012SAndroid Build Coastguard Worker  // so include both server options and system variables for Postgres. Flags are
821*d5c09012SAndroid Build Coastguard Worker  // specified with underscores, not hyphens.
822*d5c09012SAndroid Build Coastguard Worker  // "value": The value of the flag. Booleans are set to **on** for true
823*d5c09012SAndroid Build Coastguard Worker  // and **off** for false. This field must be omitted if the flag
824*d5c09012SAndroid Build Coastguard Worker  // doesn't take a value.
825*d5c09012SAndroid Build Coastguard Worker  map<string, string> database_flags = 13;
826*d5c09012SAndroid Build Coastguard Worker
827*d5c09012SAndroid Build Coastguard Worker  // Output only. This is set for the read-write VM of the PRIMARY instance
828*d5c09012SAndroid Build Coastguard Worker  // only.
829*d5c09012SAndroid Build Coastguard Worker  Node writable_node = 19 [(google.api.field_behavior) = OUTPUT_ONLY];
830*d5c09012SAndroid Build Coastguard Worker
831*d5c09012SAndroid Build Coastguard Worker  // Output only. List of available read-only VMs in this instance, including
832*d5c09012SAndroid Build Coastguard Worker  // the standby for a PRIMARY instance.
833*d5c09012SAndroid Build Coastguard Worker  repeated Node nodes = 20 [(google.api.field_behavior) = OUTPUT_ONLY];
834*d5c09012SAndroid Build Coastguard Worker
835*d5c09012SAndroid Build Coastguard Worker  // Configuration for query insights.
836*d5c09012SAndroid Build Coastguard Worker  QueryInsightsInstanceConfig query_insights_config = 21;
837*d5c09012SAndroid Build Coastguard Worker
838*d5c09012SAndroid Build Coastguard Worker  // Read pool instance configuration.
839*d5c09012SAndroid Build Coastguard Worker  // This is required if the value of instanceType is READ_POOL.
840*d5c09012SAndroid Build Coastguard Worker  ReadPoolConfig read_pool_config = 14;
841*d5c09012SAndroid Build Coastguard Worker
842*d5c09012SAndroid Build Coastguard Worker  // Output only. The IP address for the Instance.
843*d5c09012SAndroid Build Coastguard Worker  // This is the connection endpoint for an end-user application.
844*d5c09012SAndroid Build Coastguard Worker  string ip_address = 15 [(google.api.field_behavior) = OUTPUT_ONLY];
845*d5c09012SAndroid Build Coastguard Worker
846*d5c09012SAndroid Build Coastguard Worker  // Output only. Reconciling (https://google.aip.dev/128#reconciliation).
847*d5c09012SAndroid Build Coastguard Worker  // Set to true if the current state of Instance does not match the user's
848*d5c09012SAndroid Build Coastguard Worker  // intended state, and the service is actively updating the resource to
849*d5c09012SAndroid Build Coastguard Worker  // reconcile them. This can happen due to user-triggered updates or
850*d5c09012SAndroid Build Coastguard Worker  // system actions like failover or maintenance.
851*d5c09012SAndroid Build Coastguard Worker  bool reconciling = 16 [(google.api.field_behavior) = OUTPUT_ONLY];
852*d5c09012SAndroid Build Coastguard Worker
853*d5c09012SAndroid Build Coastguard Worker  // For Resource freshness validation (https://google.aip.dev/154)
854*d5c09012SAndroid Build Coastguard Worker  string etag = 17;
855*d5c09012SAndroid Build Coastguard Worker
856*d5c09012SAndroid Build Coastguard Worker  // Annotations to allow client tools to store small amount of arbitrary data.
857*d5c09012SAndroid Build Coastguard Worker  // This is distinct from labels.
858*d5c09012SAndroid Build Coastguard Worker  // https://google.aip.dev/128
859*d5c09012SAndroid Build Coastguard Worker  map<string, string> annotations = 18;
860*d5c09012SAndroid Build Coastguard Worker
861*d5c09012SAndroid Build Coastguard Worker  // Optional. Client connection specific configurations
862*d5c09012SAndroid Build Coastguard Worker  ClientConnectionConfig client_connection_config = 23
863*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
864*d5c09012SAndroid Build Coastguard Worker}
865*d5c09012SAndroid Build Coastguard Worker
866*d5c09012SAndroid Build Coastguard Worker// ConnectionInfo singleton resource.
867*d5c09012SAndroid Build Coastguard Worker// https://google.aip.dev/156
868*d5c09012SAndroid Build Coastguard Workermessage ConnectionInfo {
869*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
870*d5c09012SAndroid Build Coastguard Worker    type: "alloydb.googleapis.com/ConnectionInfo"
871*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/clusters/{cluster}/instances/{instance}/connectionInfo"
872*d5c09012SAndroid Build Coastguard Worker  };
873*d5c09012SAndroid Build Coastguard Worker
874*d5c09012SAndroid Build Coastguard Worker  // The name of the ConnectionInfo singleton resource, e.g.:
875*d5c09012SAndroid Build Coastguard Worker  // projects/{project}/locations/{location}/clusters/*/instances/*/connectionInfo
876*d5c09012SAndroid Build Coastguard Worker  // This field currently has no semantic meaning.
877*d5c09012SAndroid Build Coastguard Worker  string name = 1;
878*d5c09012SAndroid Build Coastguard Worker
879*d5c09012SAndroid Build Coastguard Worker  // Output only. The private network IP address for the Instance. This is the
880*d5c09012SAndroid Build Coastguard Worker  // default IP for the instance and is always created (even if enable_public_ip
881*d5c09012SAndroid Build Coastguard Worker  // is set). This is the connection endpoint for an end-user application.
882*d5c09012SAndroid Build Coastguard Worker  string ip_address = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
883*d5c09012SAndroid Build Coastguard Worker
884*d5c09012SAndroid Build Coastguard Worker  // Output only. The unique ID of the Instance.
885*d5c09012SAndroid Build Coastguard Worker  string instance_uid = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
886*d5c09012SAndroid Build Coastguard Worker}
887*d5c09012SAndroid Build Coastguard Worker
888*d5c09012SAndroid Build Coastguard Worker// Message describing Backup object
889*d5c09012SAndroid Build Coastguard Workermessage Backup {
890*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
891*d5c09012SAndroid Build Coastguard Worker    type: "alloydb.googleapis.com/Backup"
892*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/backups/{backup}"
893*d5c09012SAndroid Build Coastguard Worker    style: DECLARATIVE_FRIENDLY
894*d5c09012SAndroid Build Coastguard Worker  };
895*d5c09012SAndroid Build Coastguard Worker
896*d5c09012SAndroid Build Coastguard Worker  // A backup's position in a quantity-based retention queue, of backups with
897*d5c09012SAndroid Build Coastguard Worker  // the same source cluster and type, with length, retention, specified by the
898*d5c09012SAndroid Build Coastguard Worker  // backup's retention policy.
899*d5c09012SAndroid Build Coastguard Worker  // Once the position is greater than the retention, the backup is eligible to
900*d5c09012SAndroid Build Coastguard Worker  // be garbage collected.
901*d5c09012SAndroid Build Coastguard Worker  //
902*d5c09012SAndroid Build Coastguard Worker  // Example: 5 backups from the same source cluster and type with a
903*d5c09012SAndroid Build Coastguard Worker  // quantity-based retention of 3 and denoted by backup_id (position,
904*d5c09012SAndroid Build Coastguard Worker  // retention).
905*d5c09012SAndroid Build Coastguard Worker  //
906*d5c09012SAndroid Build Coastguard Worker  // Safe: backup_5 (1, 3), backup_4, (2, 3), backup_3 (3, 3).
907*d5c09012SAndroid Build Coastguard Worker  // Awaiting garbage collection: backup_2 (4, 3), backup_1 (5, 3)
908*d5c09012SAndroid Build Coastguard Worker  message QuantityBasedExpiry {
909*d5c09012SAndroid Build Coastguard Worker    // Output only. The backup's position among its backups with the same source
910*d5c09012SAndroid Build Coastguard Worker    // cluster and type, by descending chronological order create time(i.e.
911*d5c09012SAndroid Build Coastguard Worker    // newest first).
912*d5c09012SAndroid Build Coastguard Worker    int32 retention_count = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
913*d5c09012SAndroid Build Coastguard Worker
914*d5c09012SAndroid Build Coastguard Worker    // Output only. The length of the quantity-based queue, specified by the
915*d5c09012SAndroid Build Coastguard Worker    // backup's retention policy.
916*d5c09012SAndroid Build Coastguard Worker    int32 total_retention_count = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
917*d5c09012SAndroid Build Coastguard Worker  }
918*d5c09012SAndroid Build Coastguard Worker
919*d5c09012SAndroid Build Coastguard Worker  // Backup State
920*d5c09012SAndroid Build Coastguard Worker  enum State {
921*d5c09012SAndroid Build Coastguard Worker    // The state of the backup is unknown.
922*d5c09012SAndroid Build Coastguard Worker    STATE_UNSPECIFIED = 0;
923*d5c09012SAndroid Build Coastguard Worker
924*d5c09012SAndroid Build Coastguard Worker    // The backup is ready.
925*d5c09012SAndroid Build Coastguard Worker    READY = 1;
926*d5c09012SAndroid Build Coastguard Worker
927*d5c09012SAndroid Build Coastguard Worker    // The backup is creating.
928*d5c09012SAndroid Build Coastguard Worker    CREATING = 2;
929*d5c09012SAndroid Build Coastguard Worker
930*d5c09012SAndroid Build Coastguard Worker    // The backup failed.
931*d5c09012SAndroid Build Coastguard Worker    FAILED = 3;
932*d5c09012SAndroid Build Coastguard Worker
933*d5c09012SAndroid Build Coastguard Worker    // The backup is being deleted.
934*d5c09012SAndroid Build Coastguard Worker    DELETING = 4;
935*d5c09012SAndroid Build Coastguard Worker  }
936*d5c09012SAndroid Build Coastguard Worker
937*d5c09012SAndroid Build Coastguard Worker  // Backup Type
938*d5c09012SAndroid Build Coastguard Worker  enum Type {
939*d5c09012SAndroid Build Coastguard Worker    // Backup Type is unknown.
940*d5c09012SAndroid Build Coastguard Worker    TYPE_UNSPECIFIED = 0;
941*d5c09012SAndroid Build Coastguard Worker
942*d5c09012SAndroid Build Coastguard Worker    // ON_DEMAND backups that were triggered by the customer (e.g., not
943*d5c09012SAndroid Build Coastguard Worker    // AUTOMATED).
944*d5c09012SAndroid Build Coastguard Worker    ON_DEMAND = 1;
945*d5c09012SAndroid Build Coastguard Worker
946*d5c09012SAndroid Build Coastguard Worker    // AUTOMATED backups triggered by the automated backups scheduler pursuant
947*d5c09012SAndroid Build Coastguard Worker    // to an automated backup policy.
948*d5c09012SAndroid Build Coastguard Worker    AUTOMATED = 2;
949*d5c09012SAndroid Build Coastguard Worker
950*d5c09012SAndroid Build Coastguard Worker    // CONTINUOUS backups triggered by the automated backups scheduler
951*d5c09012SAndroid Build Coastguard Worker    // due to a continuous backup policy.
952*d5c09012SAndroid Build Coastguard Worker    CONTINUOUS = 3;
953*d5c09012SAndroid Build Coastguard Worker  }
954*d5c09012SAndroid Build Coastguard Worker
955*d5c09012SAndroid Build Coastguard Worker  // Output only. The name of the backup resource with the format:
956*d5c09012SAndroid Build Coastguard Worker  //  * projects/{project}/locations/{region}/backups/{backup_id}
957*d5c09012SAndroid Build Coastguard Worker  // where the cluster and backup ID segments should satisfy the regex
958*d5c09012SAndroid Build Coastguard Worker  // expression `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`, e.g. 1-63 characters of
959*d5c09012SAndroid Build Coastguard Worker  // lowercase letters, numbers, and dashes, starting with a letter, and ending
960*d5c09012SAndroid Build Coastguard Worker  // with a letter or number. For more details see https://google.aip.dev/122.
961*d5c09012SAndroid Build Coastguard Worker  // The prefix of the backup resource name is the name of the parent
962*d5c09012SAndroid Build Coastguard Worker  // resource:
963*d5c09012SAndroid Build Coastguard Worker  //  * projects/{project}/locations/{region}
964*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
965*d5c09012SAndroid Build Coastguard Worker
966*d5c09012SAndroid Build Coastguard Worker  // User-settable and human-readable display name for the Backup.
967*d5c09012SAndroid Build Coastguard Worker  string display_name = 2;
968*d5c09012SAndroid Build Coastguard Worker
969*d5c09012SAndroid Build Coastguard Worker  // Output only. The system-generated UID of the resource. The UID is assigned
970*d5c09012SAndroid Build Coastguard Worker  // when the resource is created, and it is retained until it is deleted.
971*d5c09012SAndroid Build Coastguard Worker  string uid = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
972*d5c09012SAndroid Build Coastguard Worker
973*d5c09012SAndroid Build Coastguard Worker  // Output only. Create time stamp
974*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 4
975*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
976*d5c09012SAndroid Build Coastguard Worker
977*d5c09012SAndroid Build Coastguard Worker  // Output only. Update time stamp
978*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 5
979*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
980*d5c09012SAndroid Build Coastguard Worker
981*d5c09012SAndroid Build Coastguard Worker  // Output only. Delete time stamp
982*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp delete_time = 15
983*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
984*d5c09012SAndroid Build Coastguard Worker
985*d5c09012SAndroid Build Coastguard Worker  // Labels as key value pairs
986*d5c09012SAndroid Build Coastguard Worker  map<string, string> labels = 6;
987*d5c09012SAndroid Build Coastguard Worker
988*d5c09012SAndroid Build Coastguard Worker  // Output only. The current state of the backup.
989*d5c09012SAndroid Build Coastguard Worker  State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
990*d5c09012SAndroid Build Coastguard Worker
991*d5c09012SAndroid Build Coastguard Worker  // The backup type, which suggests the trigger for the backup.
992*d5c09012SAndroid Build Coastguard Worker  Type type = 8;
993*d5c09012SAndroid Build Coastguard Worker
994*d5c09012SAndroid Build Coastguard Worker  // User-provided description of the backup.
995*d5c09012SAndroid Build Coastguard Worker  string description = 9;
996*d5c09012SAndroid Build Coastguard Worker
997*d5c09012SAndroid Build Coastguard Worker  // Output only. The system-generated UID of the cluster which was used to
998*d5c09012SAndroid Build Coastguard Worker  // create this resource.
999*d5c09012SAndroid Build Coastguard Worker  string cluster_uid = 18 [(google.api.field_behavior) = OUTPUT_ONLY];
1000*d5c09012SAndroid Build Coastguard Worker
1001*d5c09012SAndroid Build Coastguard Worker  // Required. The full resource name of the backup source cluster
1002*d5c09012SAndroid Build Coastguard Worker  // (e.g., projects/{project}/locations/{region}/clusters/{cluster_id}).
1003*d5c09012SAndroid Build Coastguard Worker  string cluster_name = 10 [
1004*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1005*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "alloydb.googleapis.com/Cluster" }
1006*d5c09012SAndroid Build Coastguard Worker  ];
1007*d5c09012SAndroid Build Coastguard Worker
1008*d5c09012SAndroid Build Coastguard Worker  // Output only. Reconciling (https://google.aip.dev/128#reconciliation), if
1009*d5c09012SAndroid Build Coastguard Worker  // true, indicates that the service is actively updating the resource. This
1010*d5c09012SAndroid Build Coastguard Worker  // can happen due to user-triggered updates or system actions like failover or
1011*d5c09012SAndroid Build Coastguard Worker  // maintenance.
1012*d5c09012SAndroid Build Coastguard Worker  bool reconciling = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
1013*d5c09012SAndroid Build Coastguard Worker
1014*d5c09012SAndroid Build Coastguard Worker  // Optional. The encryption config can be specified to encrypt the
1015*d5c09012SAndroid Build Coastguard Worker  // backup with a customer-managed encryption key (CMEK). When this field is
1016*d5c09012SAndroid Build Coastguard Worker  // not specified, the backup will then use default encryption scheme to
1017*d5c09012SAndroid Build Coastguard Worker  // protect the user data.
1018*d5c09012SAndroid Build Coastguard Worker  EncryptionConfig encryption_config = 12
1019*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
1020*d5c09012SAndroid Build Coastguard Worker
1021*d5c09012SAndroid Build Coastguard Worker  // Output only. The encryption information for the backup.
1022*d5c09012SAndroid Build Coastguard Worker  EncryptionInfo encryption_info = 13
1023*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
1024*d5c09012SAndroid Build Coastguard Worker
1025*d5c09012SAndroid Build Coastguard Worker  // For Resource freshness validation (https://google.aip.dev/154)
1026*d5c09012SAndroid Build Coastguard Worker  string etag = 14;
1027*d5c09012SAndroid Build Coastguard Worker
1028*d5c09012SAndroid Build Coastguard Worker  // Annotations to allow client tools to store small amount of arbitrary data.
1029*d5c09012SAndroid Build Coastguard Worker  // This is distinct from labels.
1030*d5c09012SAndroid Build Coastguard Worker  // https://google.aip.dev/128
1031*d5c09012SAndroid Build Coastguard Worker  map<string, string> annotations = 16;
1032*d5c09012SAndroid Build Coastguard Worker
1033*d5c09012SAndroid Build Coastguard Worker  // Output only. The size of the backup in bytes.
1034*d5c09012SAndroid Build Coastguard Worker  int64 size_bytes = 17 [(google.api.field_behavior) = OUTPUT_ONLY];
1035*d5c09012SAndroid Build Coastguard Worker
1036*d5c09012SAndroid Build Coastguard Worker  // Output only. The time at which after the backup is eligible to be garbage
1037*d5c09012SAndroid Build Coastguard Worker  // collected. It is the duration specified by the backup's retention policy,
1038*d5c09012SAndroid Build Coastguard Worker  // added to the backup's create_time.
1039*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp expiry_time = 19
1040*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
1041*d5c09012SAndroid Build Coastguard Worker
1042*d5c09012SAndroid Build Coastguard Worker  // Output only. The QuantityBasedExpiry of the backup, specified by the
1043*d5c09012SAndroid Build Coastguard Worker  // backup's retention policy. Once the expiry quantity is over retention, the
1044*d5c09012SAndroid Build Coastguard Worker  // backup is eligible to be garbage collected.
1045*d5c09012SAndroid Build Coastguard Worker  QuantityBasedExpiry expiry_quantity = 20
1046*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
1047*d5c09012SAndroid Build Coastguard Worker
1048*d5c09012SAndroid Build Coastguard Worker  // Output only. The database engine major version of the cluster this backup
1049*d5c09012SAndroid Build Coastguard Worker  // was created from. Any restored cluster created from this backup will have
1050*d5c09012SAndroid Build Coastguard Worker  // the same database version.
1051*d5c09012SAndroid Build Coastguard Worker  DatabaseVersion database_version = 22
1052*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
1053*d5c09012SAndroid Build Coastguard Worker}
1054*d5c09012SAndroid Build Coastguard Worker
1055*d5c09012SAndroid Build Coastguard Worker// SupportedDatabaseFlag gives general information about a database flag,
1056*d5c09012SAndroid Build Coastguard Worker// like type and allowed values. This is a static value that is defined
1057*d5c09012SAndroid Build Coastguard Worker// on the server side, and it cannot be modified by callers.
1058*d5c09012SAndroid Build Coastguard Worker// To set the Database flags on a particular Instance, a caller should modify
1059*d5c09012SAndroid Build Coastguard Worker// the Instance.database_flags field.
1060*d5c09012SAndroid Build Coastguard Workermessage SupportedDatabaseFlag {
1061*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
1062*d5c09012SAndroid Build Coastguard Worker    type: "alloydb.googleapis.com/SupportedDatabaseFlag"
1063*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/flags/{flag}"
1064*d5c09012SAndroid Build Coastguard Worker  };
1065*d5c09012SAndroid Build Coastguard Worker
1066*d5c09012SAndroid Build Coastguard Worker  // Restrictions on STRING type values
1067*d5c09012SAndroid Build Coastguard Worker  message StringRestrictions {
1068*d5c09012SAndroid Build Coastguard Worker    // The list of allowed values, if bounded. This field will be empty
1069*d5c09012SAndroid Build Coastguard Worker    // if there is a unbounded number of allowed values.
1070*d5c09012SAndroid Build Coastguard Worker    repeated string allowed_values = 1;
1071*d5c09012SAndroid Build Coastguard Worker  }
1072*d5c09012SAndroid Build Coastguard Worker
1073*d5c09012SAndroid Build Coastguard Worker  // Restrictions on INTEGER type values.
1074*d5c09012SAndroid Build Coastguard Worker  message IntegerRestrictions {
1075*d5c09012SAndroid Build Coastguard Worker    // The minimum value that can be specified, if applicable.
1076*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Int64Value min_value = 1;
1077*d5c09012SAndroid Build Coastguard Worker
1078*d5c09012SAndroid Build Coastguard Worker    // The maximum value that can be specified, if applicable.
1079*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Int64Value max_value = 2;
1080*d5c09012SAndroid Build Coastguard Worker  }
1081*d5c09012SAndroid Build Coastguard Worker
1082*d5c09012SAndroid Build Coastguard Worker  // ValueType describes the semantic type of the value that the flag accepts.
1083*d5c09012SAndroid Build Coastguard Worker  // Regardless of the ValueType, the Instance.database_flags field accepts the
1084*d5c09012SAndroid Build Coastguard Worker  // stringified version of the value, i.e. "20" or "3.14".
1085*d5c09012SAndroid Build Coastguard Worker  enum ValueType {
1086*d5c09012SAndroid Build Coastguard Worker    // This is an unknown flag type.
1087*d5c09012SAndroid Build Coastguard Worker    VALUE_TYPE_UNSPECIFIED = 0;
1088*d5c09012SAndroid Build Coastguard Worker
1089*d5c09012SAndroid Build Coastguard Worker    // String type flag.
1090*d5c09012SAndroid Build Coastguard Worker    STRING = 1;
1091*d5c09012SAndroid Build Coastguard Worker
1092*d5c09012SAndroid Build Coastguard Worker    // Integer type flag.
1093*d5c09012SAndroid Build Coastguard Worker    INTEGER = 2;
1094*d5c09012SAndroid Build Coastguard Worker
1095*d5c09012SAndroid Build Coastguard Worker    // Float type flag.
1096*d5c09012SAndroid Build Coastguard Worker    FLOAT = 3;
1097*d5c09012SAndroid Build Coastguard Worker
1098*d5c09012SAndroid Build Coastguard Worker    // Denotes that the flag does not accept any values.
1099*d5c09012SAndroid Build Coastguard Worker    NONE = 4;
1100*d5c09012SAndroid Build Coastguard Worker  }
1101*d5c09012SAndroid Build Coastguard Worker
1102*d5c09012SAndroid Build Coastguard Worker  // The restrictions on the flag value per type.
1103*d5c09012SAndroid Build Coastguard Worker  oneof restrictions {
1104*d5c09012SAndroid Build Coastguard Worker    // Restriction on STRING type value.
1105*d5c09012SAndroid Build Coastguard Worker    StringRestrictions string_restrictions = 7;
1106*d5c09012SAndroid Build Coastguard Worker
1107*d5c09012SAndroid Build Coastguard Worker    // Restriction on INTEGER type value.
1108*d5c09012SAndroid Build Coastguard Worker    IntegerRestrictions integer_restrictions = 8;
1109*d5c09012SAndroid Build Coastguard Worker  }
1110*d5c09012SAndroid Build Coastguard Worker
1111*d5c09012SAndroid Build Coastguard Worker  // The name of the flag resource, following Google Cloud conventions, e.g.:
1112*d5c09012SAndroid Build Coastguard Worker  //  * projects/{project}/locations/{location}/flags/{flag}
1113*d5c09012SAndroid Build Coastguard Worker  // This field currently has no semantic meaning.
1114*d5c09012SAndroid Build Coastguard Worker  string name = 1;
1115*d5c09012SAndroid Build Coastguard Worker
1116*d5c09012SAndroid Build Coastguard Worker  // The name of the database flag, e.g. "max_allowed_packets".
1117*d5c09012SAndroid Build Coastguard Worker  // The is a possibly key for the Instance.database_flags map field.
1118*d5c09012SAndroid Build Coastguard Worker  string flag_name = 2;
1119*d5c09012SAndroid Build Coastguard Worker
1120*d5c09012SAndroid Build Coastguard Worker  ValueType value_type = 3;
1121*d5c09012SAndroid Build Coastguard Worker
1122*d5c09012SAndroid Build Coastguard Worker  // Whether the database flag accepts multiple values. If true,
1123*d5c09012SAndroid Build Coastguard Worker  // a comma-separated list of stringified values may be specified.
1124*d5c09012SAndroid Build Coastguard Worker  bool accepts_multiple_values = 4;
1125*d5c09012SAndroid Build Coastguard Worker
1126*d5c09012SAndroid Build Coastguard Worker  // Major database engine versions for which this flag is supported.
1127*d5c09012SAndroid Build Coastguard Worker  repeated DatabaseVersion supported_db_versions = 5;
1128*d5c09012SAndroid Build Coastguard Worker
1129*d5c09012SAndroid Build Coastguard Worker  // Whether setting or updating this flag on an Instance requires a database
1130*d5c09012SAndroid Build Coastguard Worker  // restart. If a flag that requires database restart is set, the backend
1131*d5c09012SAndroid Build Coastguard Worker  // will automatically restart the database (making sure to satisfy any
1132*d5c09012SAndroid Build Coastguard Worker  // availability SLO's).
1133*d5c09012SAndroid Build Coastguard Worker  bool requires_db_restart = 6;
1134*d5c09012SAndroid Build Coastguard Worker}
1135*d5c09012SAndroid Build Coastguard Worker
1136*d5c09012SAndroid Build Coastguard Worker// Message describing User object.
1137*d5c09012SAndroid Build Coastguard Workermessage User {
1138*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
1139*d5c09012SAndroid Build Coastguard Worker    type: "alloydb.googleapis.com/User"
1140*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/clusters/{cluster}/users/{user}"
1141*d5c09012SAndroid Build Coastguard Worker    style: DECLARATIVE_FRIENDLY
1142*d5c09012SAndroid Build Coastguard Worker  };
1143*d5c09012SAndroid Build Coastguard Worker
1144*d5c09012SAndroid Build Coastguard Worker  // Enum that details the user type.
1145*d5c09012SAndroid Build Coastguard Worker  enum UserType {
1146*d5c09012SAndroid Build Coastguard Worker    // Unspecified user type.
1147*d5c09012SAndroid Build Coastguard Worker    USER_TYPE_UNSPECIFIED = 0;
1148*d5c09012SAndroid Build Coastguard Worker
1149*d5c09012SAndroid Build Coastguard Worker    // The default user type that authenticates via password-based
1150*d5c09012SAndroid Build Coastguard Worker    // authentication.
1151*d5c09012SAndroid Build Coastguard Worker    ALLOYDB_BUILT_IN = 1;
1152*d5c09012SAndroid Build Coastguard Worker
1153*d5c09012SAndroid Build Coastguard Worker    // Database user that can authenticate via IAM-Based authentication.
1154*d5c09012SAndroid Build Coastguard Worker    ALLOYDB_IAM_USER = 2;
1155*d5c09012SAndroid Build Coastguard Worker  }
1156*d5c09012SAndroid Build Coastguard Worker
1157*d5c09012SAndroid Build Coastguard Worker  // Output only. Name of the resource in the form of
1158*d5c09012SAndroid Build Coastguard Worker  // projects/{project}/locations/{location}/cluster/{cluster}/users/{user}.
1159*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
1160*d5c09012SAndroid Build Coastguard Worker
1161*d5c09012SAndroid Build Coastguard Worker  // Input only. Password for the user.
1162*d5c09012SAndroid Build Coastguard Worker  string password = 2 [(google.api.field_behavior) = INPUT_ONLY];
1163*d5c09012SAndroid Build Coastguard Worker
1164*d5c09012SAndroid Build Coastguard Worker  // Optional. List of database roles this user has.
1165*d5c09012SAndroid Build Coastguard Worker  // The database role strings are subject to the PostgreSQL naming conventions.
1166*d5c09012SAndroid Build Coastguard Worker  repeated string database_roles = 4 [(google.api.field_behavior) = OPTIONAL];
1167*d5c09012SAndroid Build Coastguard Worker
1168*d5c09012SAndroid Build Coastguard Worker  // Optional. Type of this user.
1169*d5c09012SAndroid Build Coastguard Worker  UserType user_type = 5 [(google.api.field_behavior) = OPTIONAL];
1170*d5c09012SAndroid Build Coastguard Worker}
1171