You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1149 lines
43 KiB
1149 lines
43 KiB
// Copyright 2023 Google LLC |
|
// |
|
// Licensed under the Apache License, Version 2.0 (the "License"); |
|
// you may not use this file except in compliance with the License. |
|
// You may obtain a copy of the License at |
|
// |
|
// http://www.apache.org/licenses/LICENSE-2.0 |
|
// |
|
// Unless required by applicable law or agreed to in writing, software |
|
// distributed under the License is distributed on an "AS IS" BASIS, |
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
// See the License for the specific language governing permissions and |
|
// limitations under the License. |
|
|
|
syntax = "proto3"; |
|
|
|
package google.cloud.alloydb.v1beta; |
|
|
|
import "google/api/field_behavior.proto"; |
|
import "google/api/resource.proto"; |
|
import "google/protobuf/duration.proto"; |
|
import "google/protobuf/timestamp.proto"; |
|
import "google/protobuf/wrappers.proto"; |
|
import "google/type/dayofweek.proto"; |
|
import "google/type/timeofday.proto"; |
|
|
|
option csharp_namespace = "Google.Cloud.AlloyDb.V1Beta"; |
|
option go_package = "cloud.google.com/go/alloydb/apiv1beta/alloydbpb;alloydbpb"; |
|
option java_multiple_files = true; |
|
option java_outer_classname = "ResourcesProto"; |
|
option java_package = "com.google.cloud.alloydb.v1beta"; |
|
option php_namespace = "Google\\Cloud\\AlloyDb\\V1beta"; |
|
option ruby_package = "Google::Cloud::AlloyDB::V1beta"; |
|
option (google.api.resource_definition) = { |
|
type: "cloudkms.googleapis.com/CryptoKeyVersion" |
|
pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}" |
|
}; |
|
option (google.api.resource_definition) = { |
|
type: "compute.googleapis.com/Network" |
|
pattern: "projects/{project}/global/networks/{network}" |
|
}; |
|
|
|
// View on Instance. Pass this enum to rpcs that returns an Instance message to |
|
// control which subsets of fields to get. |
|
enum InstanceView { |
|
// INSTANCE_VIEW_UNSPECIFIED Not specified, equivalent to BASIC. |
|
INSTANCE_VIEW_UNSPECIFIED = 0; |
|
|
|
// BASIC server responses for a primary or read instance include all the |
|
// relevant instance details, excluding the details of each node in the |
|
// instance. The default value. |
|
INSTANCE_VIEW_BASIC = 1; |
|
|
|
// FULL response is equivalent to BASIC for primary instance (for now). |
|
// For read pool instance, this includes details of each node in the pool. |
|
INSTANCE_VIEW_FULL = 2; |
|
} |
|
|
|
// View on Cluster. Pass this enum to rpcs that returns a cluster message to |
|
// control which subsets of fields to get. |
|
enum ClusterView { |
|
// CLUSTER_VIEW_UNSPECIFIED Not specified, equivalent to BASIC. |
|
CLUSTER_VIEW_UNSPECIFIED = 0; |
|
|
|
// BASIC server responses include all the relevant cluster details, excluding |
|
// Cluster.ContinuousBackupInfo.EarliestRestorableTime and other view-specific |
|
// fields. The default value. |
|
CLUSTER_VIEW_BASIC = 1; |
|
|
|
// CONTINUOUS_BACKUP response returns all the fields from BASIC plus |
|
// the earliest restorable time if continuous backups are enabled. |
|
// May increase latency. |
|
CLUSTER_VIEW_CONTINUOUS_BACKUP = 2; |
|
} |
|
|
|
// The supported database engine versions. |
|
enum DatabaseVersion { |
|
// This is an unknown database version. |
|
DATABASE_VERSION_UNSPECIFIED = 0; |
|
|
|
// DEPRECATED - The database version is Postgres 13. |
|
POSTGRES_13 = 1 [deprecated = true]; |
|
|
|
// The database version is Postgres 14. |
|
POSTGRES_14 = 2; |
|
} |
|
|
|
// The username/password for a database user. Used for specifying initial |
|
// users at cluster creation time. |
|
message UserPassword { |
|
// The database username. |
|
string user = 1; |
|
|
|
// The initial password for the user. |
|
string password = 2; |
|
} |
|
|
|
// Subset of the source instance configuration that is available when reading |
|
// the cluster resource. |
|
message MigrationSource { |
|
// Denote the type of migration source that created this cluster. |
|
enum MigrationSourceType { |
|
// Migration source is unknown. |
|
MIGRATION_SOURCE_TYPE_UNSPECIFIED = 0; |
|
|
|
// DMS source means the cluster was created via DMS migration job. |
|
DMS = 1; |
|
} |
|
|
|
// Output only. The host and port of the on-premises instance in host:port |
|
// format |
|
string host_port = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Output only. Place holder for the external source identifier(e.g DMS job |
|
// name) that created the cluster. |
|
string reference_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Output only. Type of migration source. |
|
MigrationSourceType source_type = 3 |
|
[(google.api.field_behavior) = OUTPUT_ONLY]; |
|
} |
|
|
|
// EncryptionConfig describes the encryption config of a cluster or a backup |
|
// that is encrypted with a CMEK (customer-managed encryption key). |
|
message EncryptionConfig { |
|
// The fully-qualified resource name of the KMS key. |
|
// Each Cloud KMS key is regionalized and has the following format: |
|
// projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME] |
|
string kms_key_name = 1; |
|
} |
|
|
|
// EncryptionInfo describes the encryption information of a cluster or a backup. |
|
message EncryptionInfo { |
|
// Possible encryption types. |
|
enum Type { |
|
// Encryption type not specified. Defaults to GOOGLE_DEFAULT_ENCRYPTION. |
|
TYPE_UNSPECIFIED = 0; |
|
|
|
// The data is encrypted at rest with a key that is fully managed by Google. |
|
// No key version will be populated. This is the default state. |
|
GOOGLE_DEFAULT_ENCRYPTION = 1; |
|
|
|
// The data is encrypted at rest with a key that is managed by the customer. |
|
// KMS key versions will be populated. |
|
CUSTOMER_MANAGED_ENCRYPTION = 2; |
|
} |
|
|
|
// Output only. Type of encryption. |
|
Type encryption_type = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Output only. Cloud KMS key versions that are being used to protect the |
|
// database or the backup. |
|
repeated string kms_key_versions = 2 [ |
|
(google.api.field_behavior) = OUTPUT_ONLY, |
|
(google.api.resource_reference) = { |
|
type: "cloudkms.googleapis.com/CryptoKeyVersion" |
|
} |
|
]; |
|
} |
|
|
|
// SSL configuration. |
|
message SslConfig { |
|
// SSL mode options. |
|
enum SslMode { |
|
// SSL mode not specified. Defaults to ENCRYPTED_ONLY. |
|
SSL_MODE_UNSPECIFIED = 0; |
|
|
|
// SSL connections are optional. CA verification not enforced. |
|
SSL_MODE_ALLOW = 1 [deprecated = true]; |
|
|
|
// SSL connections are required. CA verification not enforced. |
|
// Clients may use locally self-signed certificates (default psql client |
|
// behavior). |
|
SSL_MODE_REQUIRE = 2 [deprecated = true]; |
|
|
|
// SSL connections are required. CA verification enforced. |
|
// Clients must have certificates signed by a Cluster CA, e.g. via |
|
// GenerateClientCertificate. |
|
SSL_MODE_VERIFY_CA = 3 [deprecated = true]; |
|
|
|
// SSL connections are optional. CA verification not enforced. |
|
ALLOW_UNENCRYPTED_AND_ENCRYPTED = 4; |
|
|
|
// SSL connections are required. CA verification not enforced. |
|
ENCRYPTED_ONLY = 5; |
|
} |
|
|
|
// Certificate Authority (CA) source for SSL/TLS certificates. |
|
enum CaSource { |
|
// Certificate Authority (CA) source not specified. Defaults to |
|
// CA_SOURCE_MANAGED. |
|
CA_SOURCE_UNSPECIFIED = 0; |
|
|
|
// Certificate Authority (CA) managed by the AlloyDB Cluster. |
|
CA_SOURCE_MANAGED = 1; |
|
} |
|
|
|
// Optional. SSL mode. Specifies client-server SSL/TLS connection behavior. |
|
SslMode ssl_mode = 1 [(google.api.field_behavior) = OPTIONAL]; |
|
|
|
// Optional. Certificate Authority (CA) source. Only CA_SOURCE_MANAGED is |
|
// supported currently, and is the default value. |
|
CaSource ca_source = 2 [(google.api.field_behavior) = OPTIONAL]; |
|
} |
|
|
|
// Message describing the user-specified automated backup policy. |
|
// |
|
// All fields in the automated backup policy are optional. Defaults for each |
|
// field are provided if they are not set. |
|
message AutomatedBackupPolicy { |
|
// A weekly schedule starts a backup at prescribed start times within a |
|
// day, for the specified days of the week. |
|
// |
|
// The weekly schedule message is flexible and can be used to create many |
|
// types of schedules. For example, to have a daily backup that starts at |
|
// 22:00, configure the `start_times` field to have one element "22:00" and |
|
// the `days_of_week` field to have all seven days of the week. |
|
message WeeklySchedule { |
|
// The times during the day to start a backup. The start times are assumed |
|
// to be in UTC and to be an exact hour (e.g., 04:00:00). |
|
// |
|
// If no start times are provided, a single fixed start time is chosen |
|
// arbitrarily. |
|
repeated google.type.TimeOfDay start_times = 1; |
|
|
|
// The days of the week to perform a backup. |
|
// |
|
// If this field is left empty, the default of every day of the week is |
|
// used. |
|
repeated google.type.DayOfWeek days_of_week = 2; |
|
} |
|
|
|
// A time based retention policy specifies that all backups within a certain |
|
// time period should be retained. |
|
message TimeBasedRetention { |
|
// The retention period. |
|
google.protobuf.Duration retention_period = 1; |
|
} |
|
|
|
// A quantity based policy specifies that a certain number of the most recent |
|
// successful backups should be retained. |
|
message QuantityBasedRetention { |
|
// The number of backups to retain. |
|
int32 count = 1; |
|
} |
|
|
|
// The schedule for this automated backup policy. |
|
// |
|
// A schedule specifies times at which to start a backup. If a backup |
|
// window is also provided, the backup is guaranteed to be started and |
|
// completed within the start time plus the backup window. If the backup is |
|
// not completed within the backup window it is marked as failed. |
|
// |
|
// If not set, the schedule defaults to a weekly schedule with one backup |
|
// per day and a start time chosen arbitrarily. |
|
oneof schedule { |
|
// Weekly schedule for the Backup. |
|
WeeklySchedule weekly_schedule = 2; |
|
} |
|
|
|
// The retention policy for automated backups. |
|
// |
|
// The retention policy for a backup is fixed at the time the backup is |
|
// created. Changes to this field only apply to new backups taken with the |
|
// policy; the retentions of existing backups remain unchanged. |
|
// |
|
// If no retention policy is set, a default of 14 days is used. |
|
oneof retention { |
|
// Time-based Backup retention policy. |
|
TimeBasedRetention time_based_retention = 4; |
|
|
|
// Quantity-based Backup retention policy to retain recent backups. |
|
QuantityBasedRetention quantity_based_retention = 5; |
|
} |
|
|
|
// Whether automated automated backups are enabled. If not set, defaults to |
|
// true. |
|
optional bool enabled = 1; |
|
|
|
// The length of the time window during which a backup can be |
|
// taken. If a backup does not succeed within this time window, it will be |
|
// canceled and considered failed. |
|
// |
|
// The backup window must be at least 5 minutes long. There is no upper bound |
|
// on the window. If not set, it defaults to 1 hour. |
|
google.protobuf.Duration backup_window = 3; |
|
|
|
// Optional. The encryption config can be specified to encrypt the |
|
// backups with a customer-managed encryption key (CMEK). When this field is |
|
// not specified, the backup will then use default encryption scheme to |
|
// protect the user data. |
|
EncryptionConfig encryption_config = 8 |
|
[(google.api.field_behavior) = OPTIONAL]; |
|
|
|
// The location where the backup will be stored. Currently, the only supported |
|
// option is to store the backup in the same region as the cluster. |
|
// |
|
// If empty, defaults to the region of the cluster. |
|
string location = 6; |
|
|
|
// Labels to apply to backups created using this configuration. |
|
map<string, string> labels = 7; |
|
} |
|
|
|
// ContinuousBackupConfig describes the continuous backups recovery |
|
// configurations of a cluster. |
|
message ContinuousBackupConfig { |
|
// Whether ContinuousBackup is enabled. |
|
optional bool enabled = 1; |
|
|
|
// The number of days backups and logs will be retained, which determines the |
|
// window of time that data is recoverable for. If not set, it defaults to 14 |
|
// days. |
|
int32 recovery_window_days = 4; |
|
|
|
// The encryption config can be specified to encrypt the |
|
// backups with a customer-managed encryption key (CMEK). When this field is |
|
// not specified, the backup will then use default encryption scheme to |
|
// protect the user data. |
|
EncryptionConfig encryption_config = 3; |
|
} |
|
|
|
// ContinuousBackupInfo describes the continuous backup properties of a |
|
// cluster. |
|
message ContinuousBackupInfo { |
|
// Output only. The encryption information for the WALs and backups required |
|
// for ContinuousBackup. |
|
EncryptionInfo encryption_info = 1 |
|
[(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Output only. When ContinuousBackup was most recently enabled. Set to null |
|
// if ContinuousBackup is not enabled. |
|
google.protobuf.Timestamp enabled_time = 2 |
|
[(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Output only. Days of the week on which a continuous backup is taken. Output |
|
// only field. Ignored if passed into the request. |
|
repeated google.type.DayOfWeek schedule = 3 |
|
[(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Output only. The earliest restorable time that can be restored to. Output |
|
// only field. |
|
google.protobuf.Timestamp earliest_restorable_time = 4 |
|
[(google.api.field_behavior) = OUTPUT_ONLY]; |
|
} |
|
|
|
// Message describing a BackupSource. |
|
message BackupSource { |
|
// Output only. The system-generated UID of the backup which was used to |
|
// create this resource. The UID is generated when the backup is created, and |
|
// it is retained until the backup is deleted. |
|
string backup_uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Required. The name of the backup resource with the format: |
|
// * projects/{project}/locations/{region}/backups/{backup_id} |
|
string backup_name = 1 [ |
|
(google.api.field_behavior) = REQUIRED, |
|
(google.api.resource_reference) = { type: "alloydb.googleapis.com/Backup" } |
|
]; |
|
} |
|
|
|
// Message describing a ContinuousBackupSource. |
|
message ContinuousBackupSource { |
|
// Required. The source cluster from which to restore. This cluster must have |
|
// continuous backup enabled for this operation to succeed. For the required |
|
// format, see the comment on the Cluster.name field. |
|
string cluster = 1 [(google.api.field_behavior) = REQUIRED]; |
|
|
|
// Required. The point in time to restore to. |
|
google.protobuf.Timestamp point_in_time = 2 |
|
[(google.api.field_behavior) = REQUIRED]; |
|
} |
|
|
|
// A cluster is a collection of regional AlloyDB resources. It can include a |
|
// primary instance and one or more read pool instances. |
|
// All cluster resources share a storage layer, which scales as needed. |
|
message Cluster { |
|
option (google.api.resource) = { |
|
type: "alloydb.googleapis.com/Cluster" |
|
pattern: "projects/{project}/locations/{location}/clusters/{cluster}" |
|
style: DECLARATIVE_FRIENDLY |
|
}; |
|
|
|
// Metadata related to network configuration. |
|
message NetworkConfig { |
|
// Required. The resource link for the VPC network in which cluster |
|
// resources are created and from which they are accessible via Private IP. |
|
// The network must belong to the same project as the cluster. It is |
|
// specified in the form: |
|
// "projects/{project_number}/global/networks/{network_id}". This is |
|
// required to create a cluster. It can be updated, but it cannot be |
|
// removed. |
|
string network = 1 [ |
|
(google.api.field_behavior) = REQUIRED, |
|
(google.api.resource_reference) = { |
|
type: "compute.googleapis.com/Network" |
|
} |
|
]; |
|
|
|
// Optional. The name of the allocated IP range for the private IP AlloyDB |
|
// cluster. For example: "google-managed-services-default". If set, the |
|
// instance IPs for this cluster will be created in the allocated range. The |
|
// range name must comply with RFC 1035. Specifically, the name must be 1-63 |
|
// characters long and match the regular expression |
|
// [a-z]([-a-z0-9]*[a-z0-9])?. |
|
// Field name is intended to be consistent with CloudSQL. |
|
string allocated_ip_range = 2 [(google.api.field_behavior) = OPTIONAL]; |
|
} |
|
|
|
// Configuration information for the secondary cluster. This should be set |
|
// if and only if the cluster is of type SECONDARY. |
|
message SecondaryConfig { |
|
// The name of the primary cluster name with the format: |
|
// * projects/{project}/locations/{region}/clusters/{cluster_id} |
|
string primary_cluster_name = 1; |
|
} |
|
|
|
// Configuration for the primary cluster. It has the list of clusters that are |
|
// replicating from this cluster. This should be set if and only if the |
|
// cluster is of type PRIMARY. |
|
message PrimaryConfig { |
|
// Output only. Names of the clusters that are replicating from this |
|
// cluster. |
|
repeated string secondary_cluster_names = 1 |
|
[(google.api.field_behavior) = OUTPUT_ONLY]; |
|
} |
|
|
|
// Cluster State |
|
enum State { |
|
// The state of the cluster is unknown. |
|
STATE_UNSPECIFIED = 0; |
|
|
|
// The cluster is active and running. |
|
READY = 1; |
|
|
|
// The cluster is stopped. All instances in the cluster are stopped. |
|
// Customers can start a stopped cluster at any point and all their |
|
// instances will come back to life with same names and IP resources. In |
|
// this state, customer pays for storage. |
|
// Associated backups could also be present in a stopped cluster. |
|
STOPPED = 2; |
|
|
|
// The cluster is empty and has no associated resources. |
|
// All instances, associated storage and backups have been deleted. |
|
EMPTY = 3; |
|
|
|
// The cluster is being created. |
|
CREATING = 4; |
|
|
|
// The cluster is being deleted. |
|
DELETING = 5; |
|
|
|
// The creation of the cluster failed. |
|
FAILED = 6; |
|
|
|
// The cluster is bootstrapping with data from some other source. |
|
// Direct mutations to the cluster (e.g. adding read pool) are not allowed. |
|
BOOTSTRAPPING = 7; |
|
|
|
// The cluster is under maintenance. AlloyDB regularly performs maintenance |
|
// and upgrades on customer clusters. Updates on the cluster are |
|
// not allowed while the cluster is in this state. |
|
MAINTENANCE = 8; |
|
|
|
// The cluster is being promoted. |
|
PROMOTING = 9; |
|
} |
|
|
|
// Type of Cluster |
|
enum ClusterType { |
|
// The type of the cluster is unknown. |
|
CLUSTER_TYPE_UNSPECIFIED = 0; |
|
|
|
// Primary cluster that support read and write operations. |
|
PRIMARY = 1; |
|
|
|
// Secondary cluster that is replicating from another region. |
|
// This only supports read. |
|
SECONDARY = 2; |
|
} |
|
|
|
// In case of an imported cluster, this field contains information about the |
|
// source this cluster was imported from. |
|
oneof source { |
|
// Output only. Cluster created from backup. |
|
BackupSource backup_source = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Output only. Cluster created via DMS migration. |
|
MigrationSource migration_source = 16 |
|
[(google.api.field_behavior) = OUTPUT_ONLY]; |
|
} |
|
|
|
// Output only. The name of the cluster resource with the format: |
|
// * projects/{project}/locations/{region}/clusters/{cluster_id} |
|
// where the cluster ID segment should satisfy the regex expression |
|
// `[a-z0-9-]+`. For more details see https://google.aip.dev/122. |
|
// The prefix of the cluster resource name is the name of the parent resource: |
|
// * projects/{project}/locations/{region} |
|
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// User-settable and human-readable display name for the Cluster. |
|
string display_name = 2; |
|
|
|
// Output only. The system-generated UID of the resource. The UID is assigned |
|
// when the resource is created, and it is retained until it is deleted. |
|
string uid = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Output only. Create time stamp |
|
google.protobuf.Timestamp create_time = 4 |
|
[(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Output only. Update time stamp |
|
google.protobuf.Timestamp update_time = 5 |
|
[(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Output only. Delete time stamp |
|
google.protobuf.Timestamp delete_time = 6 |
|
[(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Labels as key value pairs |
|
map<string, string> labels = 7; |
|
|
|
// Output only. The current serving state of the cluster. |
|
State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Output only. The type of the cluster. This is an output-only field and it's |
|
// populated at the Cluster creation time or the Cluster promotion |
|
// time. The cluster type is determined by which RPC was used to create |
|
// the cluster (i.e. `CreateCluster` vs. `CreateSecondaryCluster` |
|
ClusterType cluster_type = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Output only. The database engine major version. This is an output-only |
|
// field and it's populated at the Cluster creation time. This field cannot be |
|
// changed after cluster creation. |
|
DatabaseVersion database_version = 9 |
|
[(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
NetworkConfig network_config = 29 [(google.api.field_behavior) = OPTIONAL]; |
|
|
|
// Required. The resource link for the VPC network in which cluster resources |
|
// are created and from which they are accessible via Private IP. The network |
|
// must belong to the same project as the cluster. It is specified in the |
|
// form: "projects/{project_number}/global/networks/{network_id}". This is |
|
// required to create a cluster. It can be updated, but it cannot be removed. |
|
string network = 10 [ |
|
(google.api.field_behavior) = REQUIRED, |
|
(google.api.resource_reference) = { type: "compute.googleapis.com/Network" } |
|
]; |
|
|
|
// For Resource freshness validation (https://google.aip.dev/154) |
|
string etag = 11; |
|
|
|
// Annotations to allow client tools to store small amount of arbitrary data. |
|
// This is distinct from labels. |
|
// https://google.aip.dev/128 |
|
map<string, string> annotations = 12; |
|
|
|
// Output only. Reconciling (https://google.aip.dev/128#reconciliation). |
|
// Set to true if the current state of Cluster does not match the user's |
|
// intended state, and the service is actively updating the resource to |
|
// reconcile them. This can happen due to user-triggered updates or |
|
// system actions like failover or maintenance. |
|
bool reconciling = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Input only. Initial user to setup during cluster creation. Required. |
|
// If used in `RestoreCluster` this is ignored. |
|
UserPassword initial_user = 14 [(google.api.field_behavior) = INPUT_ONLY]; |
|
|
|
// The automated backup policy for this cluster. |
|
// |
|
// If no policy is provided then the default policy will be used. If backups |
|
// are supported for the cluster, the default policy takes one backup a day, |
|
// has a backup window of 1 hour, and retains backups for 14 days. |
|
// For more information on the defaults, consult the |
|
// documentation for the message type. |
|
AutomatedBackupPolicy automated_backup_policy = 17; |
|
|
|
// SSL configuration for this AlloyDB cluster. |
|
SslConfig ssl_config = 18 [deprecated = true]; |
|
|
|
// Optional. The encryption config can be specified to encrypt the data disks |
|
// and other persistent data resources of a cluster with a |
|
// customer-managed encryption key (CMEK). When this field is not |
|
// specified, the cluster will then use default encryption scheme to |
|
// protect the user data. |
|
EncryptionConfig encryption_config = 19 |
|
[(google.api.field_behavior) = OPTIONAL]; |
|
|
|
// Output only. The encryption information for the cluster. |
|
EncryptionInfo encryption_info = 20 |
|
[(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Optional. Continuous backup configuration for this cluster. |
|
ContinuousBackupConfig continuous_backup_config = 27 |
|
[(google.api.field_behavior) = OPTIONAL]; |
|
|
|
// Output only. Continuous backup properties for this cluster. |
|
ContinuousBackupInfo continuous_backup_info = 28 |
|
[(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Cross Region replication config specific to SECONDARY cluster. |
|
SecondaryConfig secondary_config = 22; |
|
|
|
// Output only. Cross Region replication config specific to PRIMARY cluster. |
|
PrimaryConfig primary_config = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
} |
|
|
|
// An Instance is a computing unit that an end customer can connect to. |
|
// It's the main unit of computing resources in AlloyDB. |
|
message Instance { |
|
option (google.api.resource) = { |
|
type: "alloydb.googleapis.com/Instance" |
|
pattern: "projects/{project}/locations/{location}/clusters/{cluster}/instances/{instance}" |
|
style: DECLARATIVE_FRIENDLY |
|
}; |
|
|
|
// MachineConfig describes the configuration of a machine. |
|
message MachineConfig { |
|
// The number of CPU's in the VM instance. |
|
int32 cpu_count = 1; |
|
} |
|
|
|
// Details of a single node in the instance. |
|
// Nodes in an AlloyDB instance are ephemereal, they can change during |
|
// update, failover, autohealing and resize operations. |
|
message Node { |
|
// The Compute Engine zone of the VM e.g. "us-central1-b". |
|
string zone_id = 1; |
|
|
|
// The identifier of the VM e.g. "test-read-0601-407e52be-ms3l". |
|
string id = 2; |
|
|
|
// The private IP address of the VM e.g. "10.57.0.34". |
|
string ip = 3; |
|
|
|
// Determined by state of the compute VM and postgres-service health. |
|
// Compute VM state can have values listed in |
|
// https://cloud.google.com/compute/docs/instances/instance-life-cycle and |
|
// postgres-service health can have values: HEALTHY and UNHEALTHY. |
|
string state = 4; |
|
} |
|
|
|
// QueryInsights Instance specific configuration. |
|
message QueryInsightsInstanceConfig { |
|
// Record application tags for an instance. |
|
// This flag is turned "on" by default. |
|
optional bool record_application_tags = 2; |
|
|
|
// Record client address for an instance. Client address is PII information. |
|
// This flag is turned "on" by default. |
|
optional bool record_client_address = 3; |
|
|
|
// Query string length. The default value is 1024. |
|
// Any integer between 256 and 4500 is considered valid. |
|
uint32 query_string_length = 4; |
|
|
|
// Number of query execution plans captured by Insights per minute |
|
// for all queries combined. The default value is 5. |
|
// Any integer between 0 and 20 is considered valid. |
|
optional uint32 query_plans_per_minute = 5; |
|
} |
|
|
|
// Configuration for a read pool instance. |
|
message ReadPoolConfig { |
|
// Read capacity, i.e. number of nodes in a read pool instance. |
|
int32 node_count = 1; |
|
} |
|
|
|
// Policy to be used while updating the instance. |
|
message UpdatePolicy { |
|
// Specifies the available modes of update. |
|
enum Mode { |
|
// Mode is unknown. |
|
MODE_UNSPECIFIED = 0; |
|
|
|
// Least disruptive way to apply the update. |
|
DEFAULT = 1; |
|
|
|
// Performs a forced update when applicable. This will be fast but may |
|
// incur a downtime. |
|
FORCE_APPLY = 2; |
|
} |
|
|
|
// Mode for updating the instance. |
|
Mode mode = 1; |
|
} |
|
|
|
// Instance State |
|
enum State { |
|
// The state of the instance is unknown. |
|
STATE_UNSPECIFIED = 0; |
|
|
|
// The instance is active and running. |
|
READY = 1; |
|
|
|
// The instance is stopped. Instance name and IP resources are preserved. |
|
STOPPED = 2; |
|
|
|
// The instance is being created. |
|
CREATING = 3; |
|
|
|
// The instance is being deleted. |
|
DELETING = 4; |
|
|
|
// The instance is down for maintenance. |
|
MAINTENANCE = 5; |
|
|
|
// The creation of the instance failed or a fatal error occurred during |
|
// an operation on the instance. |
|
// Note: Instances in this state would tried to be auto-repaired. And |
|
// Customers should be able to restart, update or delete these instances. |
|
FAILED = 6; |
|
|
|
// Index 7 is used in the producer apis for ROLLED_BACK state. Keeping that |
|
// index unused in case that state also needs to exposed via consumer apis |
|
// in future. |
|
// The instance has been configured to sync data from some other source. |
|
BOOTSTRAPPING = 8; |
|
|
|
// The instance is being promoted. |
|
PROMOTING = 9; |
|
} |
|
|
|
// Type of an Instance |
|
enum InstanceType { |
|
// The type of the instance is unknown. |
|
INSTANCE_TYPE_UNSPECIFIED = 0; |
|
|
|
// PRIMARY instances support read and write operations. |
|
PRIMARY = 1; |
|
|
|
// READ POOL instances support read operations only. Each read pool instance |
|
// consists of one or more homogeneous nodes. |
|
// * Read pool of size 1 can only have zonal availability. |
|
// * Read pools with node count of 2 or more can have regional |
|
// availability (nodes are present in 2 or more zones in a region). |
|
READ_POOL = 2; |
|
|
|
// SECONDARY instances support read operations only. SECONDARY instance |
|
// is a cross-region read replica |
|
SECONDARY = 3; |
|
} |
|
|
|
// The Availability type of an instance. Potential values: |
|
// |
|
// - ZONAL: The instance serves data from only one zone. Outages in that |
|
// zone affect instance availability. |
|
// - REGIONAL: The instance can serve data from more than one zone in a |
|
// region (it is highly available). |
|
enum AvailabilityType { |
|
// This is an unknown Availability type. |
|
AVAILABILITY_TYPE_UNSPECIFIED = 0; |
|
|
|
// Zonal available instance. |
|
ZONAL = 1; |
|
|
|
// Regional (or Highly) available instance. |
|
REGIONAL = 2; |
|
} |
|
|
|
// Output only. The name of the instance resource with the format: |
|
// * projects/{project}/locations/{region}/clusters/{cluster_id}/instances/{instance_id} |
|
// where the cluster and instance ID segments should satisfy the regex |
|
// expression `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`, e.g. 1-63 characters of |
|
// lowercase letters, numbers, and dashes, starting with a letter, and ending |
|
// with a letter or number. For more details see https://google.aip.dev/122. |
|
// The prefix of the instance resource name is the name of the parent |
|
// resource: |
|
// * projects/{project}/locations/{region}/clusters/{cluster_id} |
|
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// User-settable and human-readable display name for the Instance. |
|
string display_name = 2; |
|
|
|
// Output only. The system-generated UID of the resource. The UID is assigned |
|
// when the resource is created, and it is retained until it is deleted. |
|
string uid = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Output only. Create time stamp |
|
google.protobuf.Timestamp create_time = 4 |
|
[(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Output only. Update time stamp |
|
google.protobuf.Timestamp update_time = 5 |
|
[(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Output only. Delete time stamp |
|
google.protobuf.Timestamp delete_time = 6 |
|
[(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Labels as key value pairs |
|
map<string, string> labels = 7; |
|
|
|
// Output only. The current serving state of the instance. |
|
State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Required. The type of the instance. Specified at creation time. |
|
InstanceType instance_type = 9 [(google.api.field_behavior) = REQUIRED]; |
|
|
|
// Configurations for the machines that host the underlying |
|
// database engine. |
|
MachineConfig machine_config = 10; |
|
|
|
// Availability type of an Instance. |
|
// If empty, defaults to REGIONAL for primary instances. |
|
// For read pools, availability_type is always UNSPECIFIED. Instances in the |
|
// read pools are evenly distributed across available zones within the region |
|
// (i.e. read pools with more than one node will have a node in at |
|
// least two zones). |
|
AvailabilityType availability_type = 11; |
|
|
|
// The Compute Engine zone that the instance should serve from, per |
|
// https://cloud.google.com/compute/docs/regions-zones |
|
// This can ONLY be specified for ZONAL instances. |
|
// If present for a REGIONAL instance, an error will be thrown. |
|
// If this is absent for a ZONAL instance, instance is created in a random |
|
// zone with available capacity. |
|
string gce_zone = 12; |
|
|
|
// Database flags. Set at instance level. |
|
// * They are copied from primary instance on read instance creation. |
|
// * Read instances can set new or override existing flags that are relevant |
|
// for reads, e.g. for enabling columnar cache on a read instance. Flags |
|
// set on read instance may or may not be present on primary. |
|
// |
|
// |
|
// This is a list of "key": "value" pairs. |
|
// "key": The name of the flag. These flags are passed at instance setup time, |
|
// so include both server options and system variables for Postgres. Flags are |
|
// specified with underscores, not hyphens. |
|
// "value": The value of the flag. Booleans are set to **on** for true |
|
// and **off** for false. This field must be omitted if the flag |
|
// doesn't take a value. |
|
map<string, string> database_flags = 13; |
|
|
|
// Output only. This is set for the read-write VM of the PRIMARY instance |
|
// only. |
|
Node writable_node = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Output only. List of available read-only VMs in this instance, including |
|
// the standby for a PRIMARY instance. |
|
repeated Node nodes = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Configuration for query insights. |
|
QueryInsightsInstanceConfig query_insights_config = 21; |
|
|
|
// Read pool specific config. |
|
ReadPoolConfig read_pool_config = 14; |
|
|
|
// Output only. The IP address for the Instance. |
|
// This is the connection endpoint for an end-user application. |
|
string ip_address = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Output only. Reconciling (https://google.aip.dev/128#reconciliation). |
|
// Set to true if the current state of Instance does not match the user's |
|
// intended state, and the service is actively updating the resource to |
|
// reconcile them. This can happen due to user-triggered updates or |
|
// system actions like failover or maintenance. |
|
bool reconciling = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// For Resource freshness validation (https://google.aip.dev/154) |
|
string etag = 17; |
|
|
|
// Annotations to allow client tools to store small amount of arbitrary data. |
|
// This is distinct from labels. |
|
// https://google.aip.dev/128 |
|
map<string, string> annotations = 18; |
|
|
|
// Update policy that will be applied during instance update. |
|
// This field is not persisted when you update the instance. |
|
// To use a non-default update policy, you must |
|
// specify explicitly specify the value in each update request. |
|
UpdatePolicy update_policy = 22; |
|
} |
|
|
|
// ConnectionInfo singleton resource. |
|
// https://google.aip.dev/156 |
|
message ConnectionInfo { |
|
option (google.api.resource) = { |
|
type: "alloydb.googleapis.com/ConnectionInfo" |
|
pattern: "projects/{project}/locations/{location}/clusters/{cluster}/instances/{instance}/connectionInfo" |
|
}; |
|
|
|
// The name of the ConnectionInfo singleton resource, e.g.: |
|
// projects/{project}/locations/{location}/clusters/*/instances/*/connectionInfo |
|
// This field currently has no semantic meaning. |
|
string name = 1; |
|
|
|
// Output only. The IP address for the Instance. |
|
// This is the connection endpoint for an end-user application. |
|
string ip_address = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Output only. The pem-encoded chain that may be used to verify the X.509 |
|
// certificate. Expected to be in issuer-to-root order according to RFC 5246. |
|
repeated string pem_certificate_chain = 3 |
|
[deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Output only. The unique ID of the Instance. |
|
string instance_uid = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
} |
|
|
|
// Message describing Backup object |
|
message Backup { |
|
option (google.api.resource) = { |
|
type: "alloydb.googleapis.com/Backup" |
|
pattern: "projects/{project}/locations/{location}/backups/{backup}" |
|
style: DECLARATIVE_FRIENDLY |
|
}; |
|
|
|
// Backup State |
|
enum State { |
|
// The state of the backup is unknown. |
|
STATE_UNSPECIFIED = 0; |
|
|
|
// The backup is ready. |
|
READY = 1; |
|
|
|
// The backup is creating. |
|
CREATING = 2; |
|
|
|
// The backup failed. |
|
FAILED = 3; |
|
|
|
// The backup is being deleted. |
|
DELETING = 4; |
|
} |
|
|
|
// Backup Type |
|
enum Type { |
|
// Backup Type is unknown. |
|
TYPE_UNSPECIFIED = 0; |
|
|
|
// ON_DEMAND backups that were triggered by the customer (e.g., not |
|
// AUTOMATED). |
|
ON_DEMAND = 1; |
|
|
|
// AUTOMATED backups triggered by the automated backups scheduler pursuant |
|
// to an automated backup policy. |
|
AUTOMATED = 2; |
|
|
|
// CONTINUOUS backups triggered by the automated backups scheduler |
|
// due to a continuous backup policy. |
|
CONTINUOUS = 3; |
|
} |
|
|
|
// Output only. The name of the backup resource with the format: |
|
// * projects/{project}/locations/{region}/backups/{backup_id} |
|
// where the cluster and backup ID segments should satisfy the regex |
|
// expression `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`, e.g. 1-63 characters of |
|
// lowercase letters, numbers, and dashes, starting with a letter, and ending |
|
// with a letter or number. For more details see https://google.aip.dev/122. |
|
// The prefix of the backup resource name is the name of the parent |
|
// resource: |
|
// * projects/{project}/locations/{region} |
|
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// User-settable and human-readable display name for the Backup. |
|
string display_name = 2; |
|
|
|
// Output only. The system-generated UID of the resource. The UID is assigned |
|
// when the resource is created, and it is retained until it is deleted. |
|
string uid = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Output only. Create time stamp |
|
google.protobuf.Timestamp create_time = 4 |
|
[(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Output only. Update time stamp |
|
google.protobuf.Timestamp update_time = 5 |
|
[(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Output only. Delete time stamp |
|
google.protobuf.Timestamp delete_time = 15 |
|
[(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Labels as key value pairs |
|
map<string, string> labels = 6; |
|
|
|
// Output only. The current state of the backup. |
|
State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// The backup type, which suggests the trigger for the backup. |
|
Type type = 8; |
|
|
|
// User-provided description of the backup. |
|
string description = 9; |
|
|
|
// Output only. The system-generated UID of the cluster which was used to |
|
// create this resource. |
|
string cluster_uid = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Required. The full resource name of the backup source cluster |
|
// (e.g., projects/{project}/locations/{region}/clusters/{cluster_id}). |
|
string cluster_name = 10 [ |
|
(google.api.field_behavior) = REQUIRED, |
|
(google.api.resource_reference) = { type: "alloydb.googleapis.com/Cluster" } |
|
]; |
|
|
|
// Output only. Reconciling (https://google.aip.dev/128#reconciliation), if |
|
// true, indicates that the service is actively updating the resource. This |
|
// can happen due to user-triggered updates or system actions like failover or |
|
// maintenance. |
|
bool reconciling = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Optional. The encryption config can be specified to encrypt the |
|
// backup with a customer-managed encryption key (CMEK). When this field is |
|
// not specified, the backup will then use default encryption scheme to |
|
// protect the user data. |
|
EncryptionConfig encryption_config = 12 |
|
[(google.api.field_behavior) = OPTIONAL]; |
|
|
|
// Output only. The encryption information for the backup. |
|
EncryptionInfo encryption_info = 13 |
|
[(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// For Resource freshness validation (https://google.aip.dev/154) |
|
string etag = 14; |
|
|
|
// Annotations to allow client tools to store small amount of arbitrary data. |
|
// This is distinct from labels. |
|
// https://google.aip.dev/128 |
|
map<string, string> annotations = 16; |
|
|
|
// Output only. The size of the backup in bytes. |
|
int64 size_bytes = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Output only. The time at which after the backup is eligible to be garbage |
|
// collected. It is the duration specified by the backup's retention policy, |
|
// added to the backup's create_time. |
|
google.protobuf.Timestamp expiry_time = 19 |
|
[(google.api.field_behavior) = OUTPUT_ONLY]; |
|
} |
|
|
|
// SupportedDatabaseFlag gives general information about a database flag, |
|
// like type and allowed values. This is a static value that is defined |
|
// on the server side, and it cannot be modified by callers. |
|
// To set the Database flags on a particular Instance, a caller should modify |
|
// the Instance.database_flags field. |
|
message SupportedDatabaseFlag { |
|
option (google.api.resource) = { |
|
type: "alloydb.googleapis.com/SupportedDatabaseFlag" |
|
pattern: "projects/{project}/locations/{location}/flags/{flag}" |
|
}; |
|
|
|
// Restrictions on STRING type values |
|
message StringRestrictions { |
|
// The list of allowed values, if bounded. This field will be empty |
|
// if there is a unbounded number of allowed values. |
|
repeated string allowed_values = 1; |
|
} |
|
|
|
// Restrictions on INTEGER type values. |
|
message IntegerRestrictions { |
|
// The minimum value that can be specified, if applicable. |
|
google.protobuf.Int64Value min_value = 1; |
|
|
|
// The maximum value that can be specified, if applicable. |
|
google.protobuf.Int64Value max_value = 2; |
|
} |
|
|
|
// ValueType describes the semantic type of the value that the flag accepts. |
|
// Regardless of the ValueType, the Instance.database_flags field accepts the |
|
// stringified version of the value, i.e. "20" or "3.14". |
|
enum ValueType { |
|
// This is an unknown flag type. |
|
VALUE_TYPE_UNSPECIFIED = 0; |
|
|
|
// String type flag. |
|
STRING = 1; |
|
|
|
// Integer type flag. |
|
INTEGER = 2; |
|
|
|
// Float type flag. |
|
FLOAT = 3; |
|
|
|
// Denotes that the flag does not accept any values. |
|
NONE = 4; |
|
} |
|
|
|
// The restrictions on the flag value per type. |
|
oneof restrictions { |
|
// Restriction on STRING type value. |
|
StringRestrictions string_restrictions = 7; |
|
|
|
// Restriction on INTEGER type value. |
|
IntegerRestrictions integer_restrictions = 8; |
|
} |
|
|
|
// The name of the flag resource, following Google Cloud conventions, e.g.: |
|
// * projects/{project}/locations/{location}/flags/{flag} |
|
// This field currently has no semantic meaning. |
|
string name = 1; |
|
|
|
// The name of the database flag, e.g. "max_allowed_packets". |
|
// The is a possibly key for the Instance.database_flags map field. |
|
string flag_name = 2; |
|
|
|
ValueType value_type = 3; |
|
|
|
// Whether the database flag accepts multiple values. If true, |
|
// a comma-separated list of stringified values may be specified. |
|
bool accepts_multiple_values = 4; |
|
|
|
// Major database engine versions for which this flag is supported. |
|
repeated DatabaseVersion supported_db_versions = 5; |
|
|
|
// Whether setting or updating this flag on an Instance requires a database |
|
// restart. If a flag that requires database restart is set, the backend |
|
// will automatically restart the database (making sure to satisfy any |
|
// availability SLO's). |
|
bool requires_db_restart = 6; |
|
} |
|
|
|
// Message describing User object. |
|
message User { |
|
option (google.api.resource) = { |
|
type: "alloydb.googleapis.com/User" |
|
pattern: "projects/{project}/locations/{location}/clusters/{cluster}/users/{user}" |
|
style: DECLARATIVE_FRIENDLY |
|
}; |
|
|
|
// Enum that details the user type. |
|
enum UserType { |
|
// Unspecified user type. |
|
USER_TYPE_UNSPECIFIED = 0; |
|
|
|
// The default user type that authenticates via password-based |
|
// authentication. |
|
ALLOYDB_BUILT_IN = 1; |
|
|
|
// Database user that can authenticate via IAM-Based authentication. |
|
ALLOYDB_IAM_USER = 2; |
|
} |
|
|
|
// Output only. Name of the resource in the form of |
|
// projects/{project}/locations/{location}/cluster/{cluster}/users/{user}. |
|
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// Input only. Password for the user. |
|
string password = 2 [(google.api.field_behavior) = INPUT_ONLY]; |
|
|
|
// Optional. List of database roles this user has. |
|
// The database role strings are subject to the PostgreSQL naming conventions. |
|
repeated string database_roles = 4 [(google.api.field_behavior) = OPTIONAL]; |
|
|
|
// Optional. Type of this user. |
|
UserType user_type = 5 [(google.api.field_behavior) = OPTIONAL]; |
|
}
|
|
|