python/proto/sql/instance.proto (227 lines of code) (raw):
// Copyright 2020 Google LLC. All Rights Reserved.
//
// 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 dcl;
import "proto/connector/sdk.proto";
import "proto/empty.proto";
enum SqlInstanceBackendTypeEnum {
InstanceBackendTypeEnumNO_VALUE_DO_NOT_USE = 0;
InstanceBackendTypeEnumSQL_BACKEND_TYPE_UNSPECIFIED = 1;
InstanceBackendTypeEnumFIRST_GEN = 2;
InstanceBackendTypeEnumSECOND_GEN = 3;
InstanceBackendTypeEnumEXTERNAL = 4;
}
enum SqlInstanceDatabaseVersionEnum {
InstanceDatabaseVersionEnumNO_VALUE_DO_NOT_USE = 0;
InstanceDatabaseVersionEnumSQL_DATABASE_VERSION_UNSPECIFIED = 1;
InstanceDatabaseVersionEnumOBSOLETE_MYSQL_5_0 = 2;
InstanceDatabaseVersionEnumMYSQL_5_1 = 3;
InstanceDatabaseVersionEnumMYSQL_5_5 = 4;
InstanceDatabaseVersionEnumMARIADB_10_0 = 5;
InstanceDatabaseVersionEnumMYSQL_5_6 = 6;
InstanceDatabaseVersionEnumMYSQL_5_7 = 7;
InstanceDatabaseVersionEnumOBSOLETE_POSTGRES_9_5 = 8;
InstanceDatabaseVersionEnumSQLSERVER_ENTERPRISE_2016 = 9;
InstanceDatabaseVersionEnumPOSTGRES_9_6 = 10;
InstanceDatabaseVersionEnumPOSTGRES_11 = 11;
InstanceDatabaseVersionEnumSQLSERVER_2017_STANDARD = 12;
InstanceDatabaseVersionEnumSQLSERVER_2016_STANDARD = 13;
InstanceDatabaseVersionEnumMIMIR = 14;
InstanceDatabaseVersionEnumSQLSERVER_2017_ENTERPRISE = 15;
InstanceDatabaseVersionEnumSQLSERVER_2017_EXPRESS = 16;
InstanceDatabaseVersionEnumSQLSERVER_2017_WEB = 17;
InstanceDatabaseVersionEnumPOSTGRES_TIER_1 = 18;
InstanceDatabaseVersionEnumPOSTGRES_10 = 19;
InstanceDatabaseVersionEnumPOSTGRES_12 = 20;
InstanceDatabaseVersionEnumMYSQL_8_0 = 21;
InstanceDatabaseVersionEnumAGBALA = 22;
}
enum SqlInstanceInstanceTypeEnum {
InstanceInstanceTypeEnumNO_VALUE_DO_NOT_USE = 0;
InstanceInstanceTypeEnumSQL_INSTANCE_TYPE_UNSPECIFIED = 1;
InstanceInstanceTypeEnumCLOUD_SQL_INSTANCE = 2;
InstanceInstanceTypeEnumON_PREMISES_INSTANCE = 3;
InstanceInstanceTypeEnumREAD_REPLICA_INSTANCE = 4;
InstanceInstanceTypeEnumREAD_REPLICA_POOL_INSTANCE = 5;
}
enum SqlInstanceIPAddressesTypeEnum {
InstanceIPAddressesTypeEnumNO_VALUE_DO_NOT_USE = 0;
InstanceIPAddressesTypeEnumSQL_IP_ADDRESS_TYPE_UNSPECIFIED = 1;
InstanceIPAddressesTypeEnumPRIMARY = 2;
InstanceIPAddressesTypeEnumOUTGOING = 3;
InstanceIPAddressesTypeEnumPRIVATE = 4;
InstanceIPAddressesTypeEnumMIGRATED_1ST_GEN = 5;
}
enum SqlInstanceSettingsAvailabilityTypeEnum {
InstanceSettingsAvailabilityTypeEnumNO_VALUE_DO_NOT_USE = 0;
InstanceSettingsAvailabilityTypeEnumSQL_AVAILABILITY_TYPE_UNSPECIFIED = 1;
InstanceSettingsAvailabilityTypeEnumZONAL = 2;
InstanceSettingsAvailabilityTypeEnumREGIONAL = 3;
}
enum SqlInstanceSettingsPricingPlanEnum {
InstanceSettingsPricingPlanEnumNO_VALUE_DO_NOT_USE = 0;
InstanceSettingsPricingPlanEnumSQL_PRICING_PLAN_UNSPECIFIED = 1;
InstanceSettingsPricingPlanEnumPACKAGE = 2;
InstanceSettingsPricingPlanEnumPER_USE = 3;
}
enum SqlInstanceSettingsReplicationTypeEnum {
InstanceSettingsReplicationTypeEnumNO_VALUE_DO_NOT_USE = 0;
InstanceSettingsReplicationTypeEnumSQL_REPLICATION_TYPE_UNSPECIFIED = 1;
InstanceSettingsReplicationTypeEnumSYNCHRONOUS = 2;
InstanceSettingsReplicationTypeEnumASYNCHRONOUS = 3;
}
enum SqlInstanceSettingsActivationPolicyEnum {
InstanceSettingsActivationPolicyEnumNO_VALUE_DO_NOT_USE = 0;
InstanceSettingsActivationPolicyEnumSQL_ACTIVATION_POLICY_UNSPECIFIED = 1;
InstanceSettingsActivationPolicyEnumALWAYS = 2;
InstanceSettingsActivationPolicyEnumNEVER = 3;
InstanceSettingsActivationPolicyEnumON_DEMAND = 4;
}
enum SqlInstanceSettingsDataDiskTypeEnum {
InstanceSettingsDataDiskTypeEnumNO_VALUE_DO_NOT_USE = 0;
InstanceSettingsDataDiskTypeEnumSQL_DATA_DISK_TYPE_UNSPECIFIED = 1;
InstanceSettingsDataDiskTypeEnumPD_SSD = 2;
InstanceSettingsDataDiskTypeEnumPD_HDD = 3;
InstanceSettingsDataDiskTypeEnumOBSOLETE_LOCAL_SSD = 4;
}
message SqlInstance {
SqlInstanceBackendTypeEnum backend_type = 1;
string connection_name = 2;
SqlInstanceDatabaseVersionEnum database_version = 3;
string etag = 4;
string gce_zone = 5;
SqlInstanceInstanceTypeEnum instance_type = 6;
string master_instance_name = 7;
SqlInstanceMaxDiskSize max_disk_size = 8;
string name = 9;
string project = 10;
string region = 11;
string root_password = 12;
SqlInstanceCurrentDiskSize current_disk_size = 13;
SqlInstanceDiskEncryptionConfiguration disk_encryption_configuration = 14;
SqlInstanceFailoverReplica failover_replica = 15;
repeated SqlInstanceIPAddresses ip_addresses = 16;
SqlInstanceMasterInstance master_instance = 17;
SqlInstanceReplicaConfiguration replica_configuration = 18;
SqlInstanceScheduledMaintenance scheduled_maintenance = 19;
SqlInstanceSettings settings = 20;
}
message SqlInstanceMaxDiskSize {
int64 value = 1;
}
message SqlInstanceCurrentDiskSize {
int64 value = 1;
}
message SqlInstanceDiskEncryptionConfiguration {
string kms_key_name = 1;
string kind = 2;
}
message SqlInstanceFailoverReplica {
string name = 1;
bool available = 2;
}
message SqlInstanceIPAddresses {
SqlInstanceIPAddressesTypeEnum type = 1;
string ip_address = 2;
SqlInstanceIPAddressesTimeToRetire time_to_retire = 3;
}
message SqlInstanceIPAddressesTimeToRetire {
int64 seconds = 1;
int64 nanos = 2;
}
message SqlInstanceMasterInstance {
string name = 1;
string region = 2;
}
message SqlInstanceReplicaConfiguration {
string kind = 1;
SqlInstanceReplicaConfigurationMysqlReplicaConfiguration mysql_replica_configuration = 2;
bool failover_target = 3;
SqlInstanceReplicaConfigurationReplicaPoolConfiguration replica_pool_configuration = 4;
}
message SqlInstanceReplicaConfigurationMysqlReplicaConfiguration {
string dump_file_path = 1;
string username = 2;
string password = 3;
int64 connect_retry_interval = 4;
SqlInstanceReplicaConfigurationMysqlReplicaConfigurationMasterHeartbeatPeriod master_heartbeat_period = 5;
string ca_certificate = 6;
string client_certificate = 7;
string client_key = 8;
string ssl_cipher = 9;
bool verify_server_certificate = 10;
string kind = 11;
}
message SqlInstanceReplicaConfigurationMysqlReplicaConfigurationMasterHeartbeatPeriod {
int64 value = 1;
}
message SqlInstanceReplicaConfigurationReplicaPoolConfiguration {
string kind = 1;
SqlInstanceReplicaConfigurationReplicaPoolConfigurationStaticPoolConfiguration static_pool_configuration = 2;
SqlInstanceReplicaConfigurationReplicaPoolConfigurationAutoscalingPoolConfiguration autoscaling_pool_configuration = 3;
}
message SqlInstanceReplicaConfigurationReplicaPoolConfigurationStaticPoolConfiguration {
string kind = 1;
int64 replica_count = 2;
bool expose_replica_ip = 3;
}
message SqlInstanceReplicaConfigurationReplicaPoolConfigurationAutoscalingPoolConfiguration {
string kind = 1;
int64 min_replica_count = 2;
int64 max_replica_count = 3;
double target_cpu_util = 4;
}
message SqlInstanceScheduledMaintenance {
SqlInstanceScheduledMaintenanceStartTime start_time = 1;
bool can_defer = 2;
bool can_reschedule = 3;
}
message SqlInstanceScheduledMaintenanceStartTime {
int64 seconds = 1;
int64 nanos = 2;
}
message SqlInstanceSettings {
repeated string authorized_gae_applications = 1;
string tier = 2;
string kind = 3;
SqlInstanceSettingsAvailabilityTypeEnum availability_type = 4;
SqlInstanceSettingsPricingPlanEnum pricing_plan = 5;
SqlInstanceSettingsReplicationTypeEnum replication_type = 6;
SqlInstanceSettingsActivationPolicyEnum activation_policy = 7;
bool storage_auto_resize = 8;
SqlInstanceSettingsDataDiskTypeEnum data_disk_type = 9;
bool database_replication_enabled = 10;
bool crash_safe_replication_enabled = 11;
}
message ApplySqlInstanceRequest {
SqlInstance resource = 1;
repeated LifecycleDirective lifecycle_directives = 2;
string service_account_file = 3;
}
message DeleteSqlInstanceRequest {
string service_account_file = 1;
SqlInstance resource = 2;
}
message ListSqlInstanceRequest {
string service_account_file = 1;
string Project = 2;
}
message ListSqlInstanceResponse {
repeated SqlInstance items = 1;
}
service SqlInstanceService {
rpc ApplySqlInstance(ApplySqlInstanceRequest) returns (SqlInstance);
rpc DeleteSqlInstance(DeleteSqlInstanceRequest) returns (google.protobuf.Empty);
rpc ListSqlInstance(ListSqlInstanceRequest) returns (ListSqlInstanceResponse);
}