python/services/sql/instance.py (1,133 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.
from connector import channel
from google3.cloud.graphite.mmv2.services.google.sql import instance_pb2
from google3.cloud.graphite.mmv2.services.google.sql import instance_pb2_grpc
from typing import List
class Instance(object):
def __init__(
self,
backend_type: str = None,
connection_name: str = None,
database_version: str = None,
etag: str = None,
gce_zone: str = None,
instance_type: str = None,
master_instance_name: str = None,
max_disk_size: dict = None,
name: str = None,
project: str = None,
region: str = None,
root_password: str = None,
current_disk_size: dict = None,
disk_encryption_configuration: dict = None,
failover_replica: dict = None,
ip_addresses: list = None,
master_instance: dict = None,
replica_configuration: dict = None,
scheduled_maintenance: dict = None,
settings: dict = None,
service_account_file: str = "",
):
channel.initialize()
self.backend_type = backend_type
self.connection_name = connection_name
self.database_version = database_version
self.etag = etag
self.gce_zone = gce_zone
self.instance_type = instance_type
self.master_instance_name = master_instance_name
self.max_disk_size = max_disk_size
self.name = name
self.project = project
self.region = region
self.root_password = root_password
self.current_disk_size = current_disk_size
self.disk_encryption_configuration = disk_encryption_configuration
self.failover_replica = failover_replica
self.ip_addresses = ip_addresses
self.master_instance = master_instance
self.replica_configuration = replica_configuration
self.scheduled_maintenance = scheduled_maintenance
self.settings = settings
self.service_account_file = service_account_file
def apply(self):
stub = instance_pb2_grpc.SqlInstanceServiceStub(channel.Channel())
request = instance_pb2.ApplySqlInstanceRequest()
if InstanceBackendTypeEnum.to_proto(self.backend_type):
request.resource.backend_type = InstanceBackendTypeEnum.to_proto(
self.backend_type
)
if Primitive.to_proto(self.connection_name):
request.resource.connection_name = Primitive.to_proto(self.connection_name)
if InstanceDatabaseVersionEnum.to_proto(self.database_version):
request.resource.database_version = InstanceDatabaseVersionEnum.to_proto(
self.database_version
)
if Primitive.to_proto(self.etag):
request.resource.etag = Primitive.to_proto(self.etag)
if Primitive.to_proto(self.gce_zone):
request.resource.gce_zone = Primitive.to_proto(self.gce_zone)
if InstanceInstanceTypeEnum.to_proto(self.instance_type):
request.resource.instance_type = InstanceInstanceTypeEnum.to_proto(
self.instance_type
)
if Primitive.to_proto(self.master_instance_name):
request.resource.master_instance_name = Primitive.to_proto(
self.master_instance_name
)
if InstanceMaxDiskSize.to_proto(self.max_disk_size):
request.resource.max_disk_size.CopyFrom(
InstanceMaxDiskSize.to_proto(self.max_disk_size)
)
else:
request.resource.ClearField("max_disk_size")
if Primitive.to_proto(self.name):
request.resource.name = Primitive.to_proto(self.name)
if Primitive.to_proto(self.project):
request.resource.project = Primitive.to_proto(self.project)
if Primitive.to_proto(self.region):
request.resource.region = Primitive.to_proto(self.region)
if Primitive.to_proto(self.root_password):
request.resource.root_password = Primitive.to_proto(self.root_password)
if InstanceCurrentDiskSize.to_proto(self.current_disk_size):
request.resource.current_disk_size.CopyFrom(
InstanceCurrentDiskSize.to_proto(self.current_disk_size)
)
else:
request.resource.ClearField("current_disk_size")
if InstanceDiskEncryptionConfiguration.to_proto(
self.disk_encryption_configuration
):
request.resource.disk_encryption_configuration.CopyFrom(
InstanceDiskEncryptionConfiguration.to_proto(
self.disk_encryption_configuration
)
)
else:
request.resource.ClearField("disk_encryption_configuration")
if InstanceFailoverReplica.to_proto(self.failover_replica):
request.resource.failover_replica.CopyFrom(
InstanceFailoverReplica.to_proto(self.failover_replica)
)
else:
request.resource.ClearField("failover_replica")
if InstanceIPAddressesArray.to_proto(self.ip_addresses):
request.resource.ip_addresses.extend(
InstanceIPAddressesArray.to_proto(self.ip_addresses)
)
if InstanceMasterInstance.to_proto(self.master_instance):
request.resource.master_instance.CopyFrom(
InstanceMasterInstance.to_proto(self.master_instance)
)
else:
request.resource.ClearField("master_instance")
if InstanceReplicaConfiguration.to_proto(self.replica_configuration):
request.resource.replica_configuration.CopyFrom(
InstanceReplicaConfiguration.to_proto(self.replica_configuration)
)
else:
request.resource.ClearField("replica_configuration")
if InstanceScheduledMaintenance.to_proto(self.scheduled_maintenance):
request.resource.scheduled_maintenance.CopyFrom(
InstanceScheduledMaintenance.to_proto(self.scheduled_maintenance)
)
else:
request.resource.ClearField("scheduled_maintenance")
if InstanceSettings.to_proto(self.settings):
request.resource.settings.CopyFrom(InstanceSettings.to_proto(self.settings))
else:
request.resource.ClearField("settings")
request.service_account_file = self.service_account_file
response = stub.ApplySqlInstance(request)
self.backend_type = InstanceBackendTypeEnum.from_proto(response.backend_type)
self.connection_name = Primitive.from_proto(response.connection_name)
self.database_version = InstanceDatabaseVersionEnum.from_proto(
response.database_version
)
self.etag = Primitive.from_proto(response.etag)
self.gce_zone = Primitive.from_proto(response.gce_zone)
self.instance_type = InstanceInstanceTypeEnum.from_proto(response.instance_type)
self.master_instance_name = Primitive.from_proto(response.master_instance_name)
self.max_disk_size = InstanceMaxDiskSize.from_proto(response.max_disk_size)
self.name = Primitive.from_proto(response.name)
self.project = Primitive.from_proto(response.project)
self.region = Primitive.from_proto(response.region)
self.root_password = Primitive.from_proto(response.root_password)
self.current_disk_size = InstanceCurrentDiskSize.from_proto(
response.current_disk_size
)
self.disk_encryption_configuration = InstanceDiskEncryptionConfiguration.from_proto(
response.disk_encryption_configuration
)
self.failover_replica = InstanceFailoverReplica.from_proto(
response.failover_replica
)
self.ip_addresses = InstanceIPAddressesArray.from_proto(response.ip_addresses)
self.master_instance = InstanceMasterInstance.from_proto(
response.master_instance
)
self.replica_configuration = InstanceReplicaConfiguration.from_proto(
response.replica_configuration
)
self.scheduled_maintenance = InstanceScheduledMaintenance.from_proto(
response.scheduled_maintenance
)
self.settings = InstanceSettings.from_proto(response.settings)
@classmethod
def delete(self, project, name, service_account_file=""):
stub = instance_pb2_grpc.SqlInstanceServiceStub(channel.Channel())
request = instance_pb2.DeleteSqlInstanceRequest()
request.service_account_file = service_account_file
request.Project = project
request.Name = name
response = stub.DeleteSqlInstance(request)
@classmethod
def list(self, project, service_account_file=""):
stub = instance_pb2_grpc.SqlInstanceServiceStub(channel.Channel())
request = instance_pb2.ListSqlInstanceRequest()
request.service_account_file = service_account_file
request.Project = project
return stub.ListSqlInstance(request).items
@classmethod
def from_any(self, any_proto):
# Marshal any proto to regular proto.
res_proto = instance_pb2.SqlInstance()
any_proto.Unpack(res_proto)
res = Instance()
res.backend_type = InstanceBackendTypeEnum.from_proto(res_proto.backend_type)
res.connection_name = Primitive.from_proto(res_proto.connection_name)
res.database_version = InstanceDatabaseVersionEnum.from_proto(
res_proto.database_version
)
res.etag = Primitive.from_proto(res_proto.etag)
res.gce_zone = Primitive.from_proto(res_proto.gce_zone)
res.instance_type = InstanceInstanceTypeEnum.from_proto(res_proto.instance_type)
res.master_instance_name = Primitive.from_proto(res_proto.master_instance_name)
res.max_disk_size = InstanceMaxDiskSize.from_proto(res_proto.max_disk_size)
res.name = Primitive.from_proto(res_proto.name)
res.project = Primitive.from_proto(res_proto.project)
res.region = Primitive.from_proto(res_proto.region)
res.root_password = Primitive.from_proto(res_proto.root_password)
res.current_disk_size = InstanceCurrentDiskSize.from_proto(
res_proto.current_disk_size
)
res.disk_encryption_configuration = InstanceDiskEncryptionConfiguration.from_proto(
res_proto.disk_encryption_configuration
)
res.failover_replica = InstanceFailoverReplica.from_proto(
res_proto.failover_replica
)
res.ip_addresses = InstanceIPAddressesArray.from_proto(res_proto.ip_addresses)
res.master_instance = InstanceMasterInstance.from_proto(
res_proto.master_instance
)
res.replica_configuration = InstanceReplicaConfiguration.from_proto(
res_proto.replica_configuration
)
res.scheduled_maintenance = InstanceScheduledMaintenance.from_proto(
res_proto.scheduled_maintenance
)
res.settings = InstanceSettings.from_proto(res_proto.settings)
return res
class InstanceMaxDiskSize(object):
def __init__(self, value: int = None):
self.value = value
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = instance_pb2.SqlInstanceMaxDiskSize()
if Primitive.to_proto(resource.value):
res.value = Primitive.to_proto(resource.value)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return InstanceMaxDiskSize(value=resource.value,)
class InstanceMaxDiskSizeArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [InstanceMaxDiskSize.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [InstanceMaxDiskSize.from_proto(i) for i in resources]
class InstanceCurrentDiskSize(object):
def __init__(self, value: int = None):
self.value = value
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = instance_pb2.SqlInstanceCurrentDiskSize()
if Primitive.to_proto(resource.value):
res.value = Primitive.to_proto(resource.value)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return InstanceCurrentDiskSize(value=resource.value,)
class InstanceCurrentDiskSizeArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [InstanceCurrentDiskSize.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [InstanceCurrentDiskSize.from_proto(i) for i in resources]
class InstanceDiskEncryptionConfiguration(object):
def __init__(self, kms_key_name: str = None, kind: str = None):
self.kms_key_name = kms_key_name
self.kind = kind
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = instance_pb2.SqlInstanceDiskEncryptionConfiguration()
if Primitive.to_proto(resource.kms_key_name):
res.kms_key_name = Primitive.to_proto(resource.kms_key_name)
if Primitive.to_proto(resource.kind):
res.kind = Primitive.to_proto(resource.kind)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return InstanceDiskEncryptionConfiguration(
kms_key_name=resource.kms_key_name, kind=resource.kind,
)
class InstanceDiskEncryptionConfigurationArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [InstanceDiskEncryptionConfiguration.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [InstanceDiskEncryptionConfiguration.from_proto(i) for i in resources]
class InstanceFailoverReplica(object):
def __init__(self, name: str = None, available: bool = None):
self.name = name
self.available = available
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = instance_pb2.SqlInstanceFailoverReplica()
if Primitive.to_proto(resource.name):
res.name = Primitive.to_proto(resource.name)
if Primitive.to_proto(resource.available):
res.available = Primitive.to_proto(resource.available)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return InstanceFailoverReplica(
name=resource.name, available=resource.available,
)
class InstanceFailoverReplicaArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [InstanceFailoverReplica.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [InstanceFailoverReplica.from_proto(i) for i in resources]
class InstanceIPAddresses(object):
def __init__(
self, type: str = None, ip_address: str = None, time_to_retire: dict = None
):
self.type = type
self.ip_address = ip_address
self.time_to_retire = time_to_retire
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = instance_pb2.SqlInstanceIPAddresses()
if InstanceIPAddressesTypeEnum.to_proto(resource.type):
res.type = InstanceIPAddressesTypeEnum.to_proto(resource.type)
if Primitive.to_proto(resource.ip_address):
res.ip_address = Primitive.to_proto(resource.ip_address)
if InstanceIPAddressesTimeToRetire.to_proto(resource.time_to_retire):
res.time_to_retire.CopyFrom(
InstanceIPAddressesTimeToRetire.to_proto(resource.time_to_retire)
)
else:
res.ClearField("time_to_retire")
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return InstanceIPAddresses(
type=resource.type,
ip_address=resource.ip_address,
time_to_retire=resource.time_to_retire,
)
class InstanceIPAddressesArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [InstanceIPAddresses.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [InstanceIPAddresses.from_proto(i) for i in resources]
class InstanceIPAddressesTimeToRetire(object):
def __init__(self, seconds: int = None, nanos: int = None):
self.seconds = seconds
self.nanos = nanos
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = instance_pb2.SqlInstanceIPAddressesTimeToRetire()
if Primitive.to_proto(resource.seconds):
res.seconds = Primitive.to_proto(resource.seconds)
if Primitive.to_proto(resource.nanos):
res.nanos = Primitive.to_proto(resource.nanos)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return InstanceIPAddressesTimeToRetire(
seconds=resource.seconds, nanos=resource.nanos,
)
class InstanceIPAddressesTimeToRetireArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [InstanceIPAddressesTimeToRetire.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [InstanceIPAddressesTimeToRetire.from_proto(i) for i in resources]
class InstanceMasterInstance(object):
def __init__(self, name: str = None, region: str = None):
self.name = name
self.region = region
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = instance_pb2.SqlInstanceMasterInstance()
if Primitive.to_proto(resource.name):
res.name = Primitive.to_proto(resource.name)
if Primitive.to_proto(resource.region):
res.region = Primitive.to_proto(resource.region)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return InstanceMasterInstance(name=resource.name, region=resource.region,)
class InstanceMasterInstanceArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [InstanceMasterInstance.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [InstanceMasterInstance.from_proto(i) for i in resources]
class InstanceReplicaConfiguration(object):
def __init__(
self,
kind: str = None,
mysql_replica_configuration: dict = None,
failover_target: bool = None,
replica_pool_configuration: dict = None,
):
self.kind = kind
self.mysql_replica_configuration = mysql_replica_configuration
self.failover_target = failover_target
self.replica_pool_configuration = replica_pool_configuration
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = instance_pb2.SqlInstanceReplicaConfiguration()
if Primitive.to_proto(resource.kind):
res.kind = Primitive.to_proto(resource.kind)
if InstanceReplicaConfigurationMysqlReplicaConfiguration.to_proto(
resource.mysql_replica_configuration
):
res.mysql_replica_configuration.CopyFrom(
InstanceReplicaConfigurationMysqlReplicaConfiguration.to_proto(
resource.mysql_replica_configuration
)
)
else:
res.ClearField("mysql_replica_configuration")
if Primitive.to_proto(resource.failover_target):
res.failover_target = Primitive.to_proto(resource.failover_target)
if InstanceReplicaConfigurationReplicaPoolConfiguration.to_proto(
resource.replica_pool_configuration
):
res.replica_pool_configuration.CopyFrom(
InstanceReplicaConfigurationReplicaPoolConfiguration.to_proto(
resource.replica_pool_configuration
)
)
else:
res.ClearField("replica_pool_configuration")
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return InstanceReplicaConfiguration(
kind=resource.kind,
mysql_replica_configuration=resource.mysql_replica_configuration,
failover_target=resource.failover_target,
replica_pool_configuration=resource.replica_pool_configuration,
)
class InstanceReplicaConfigurationArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [InstanceReplicaConfiguration.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [InstanceReplicaConfiguration.from_proto(i) for i in resources]
class InstanceReplicaConfigurationMysqlReplicaConfiguration(object):
def __init__(
self,
dump_file_path: str = None,
username: str = None,
password: str = None,
connect_retry_interval: int = None,
master_heartbeat_period: dict = None,
ca_certificate: str = None,
client_certificate: str = None,
client_key: str = None,
ssl_cipher: str = None,
verify_server_certificate: bool = None,
kind: str = None,
):
self.dump_file_path = dump_file_path
self.username = username
self.password = password
self.connect_retry_interval = connect_retry_interval
self.master_heartbeat_period = master_heartbeat_period
self.ca_certificate = ca_certificate
self.client_certificate = client_certificate
self.client_key = client_key
self.ssl_cipher = ssl_cipher
self.verify_server_certificate = verify_server_certificate
self.kind = kind
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = instance_pb2.SqlInstanceReplicaConfigurationMysqlReplicaConfiguration()
if Primitive.to_proto(resource.dump_file_path):
res.dump_file_path = Primitive.to_proto(resource.dump_file_path)
if Primitive.to_proto(resource.username):
res.username = Primitive.to_proto(resource.username)
if Primitive.to_proto(resource.password):
res.password = Primitive.to_proto(resource.password)
if Primitive.to_proto(resource.connect_retry_interval):
res.connect_retry_interval = Primitive.to_proto(
resource.connect_retry_interval
)
if InstanceReplicaConfigurationMysqlReplicaConfigurationMasterHeartbeatPeriod.to_proto(
resource.master_heartbeat_period
):
res.master_heartbeat_period.CopyFrom(
InstanceReplicaConfigurationMysqlReplicaConfigurationMasterHeartbeatPeriod.to_proto(
resource.master_heartbeat_period
)
)
else:
res.ClearField("master_heartbeat_period")
if Primitive.to_proto(resource.ca_certificate):
res.ca_certificate = Primitive.to_proto(resource.ca_certificate)
if Primitive.to_proto(resource.client_certificate):
res.client_certificate = Primitive.to_proto(resource.client_certificate)
if Primitive.to_proto(resource.client_key):
res.client_key = Primitive.to_proto(resource.client_key)
if Primitive.to_proto(resource.ssl_cipher):
res.ssl_cipher = Primitive.to_proto(resource.ssl_cipher)
if Primitive.to_proto(resource.verify_server_certificate):
res.verify_server_certificate = Primitive.to_proto(
resource.verify_server_certificate
)
if Primitive.to_proto(resource.kind):
res.kind = Primitive.to_proto(resource.kind)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return InstanceReplicaConfigurationMysqlReplicaConfiguration(
dump_file_path=resource.dump_file_path,
username=resource.username,
password=resource.password,
connect_retry_interval=resource.connect_retry_interval,
master_heartbeat_period=resource.master_heartbeat_period,
ca_certificate=resource.ca_certificate,
client_certificate=resource.client_certificate,
client_key=resource.client_key,
ssl_cipher=resource.ssl_cipher,
verify_server_certificate=resource.verify_server_certificate,
kind=resource.kind,
)
class InstanceReplicaConfigurationMysqlReplicaConfigurationArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [
InstanceReplicaConfigurationMysqlReplicaConfiguration.to_proto(i)
for i in resources
]
@classmethod
def from_proto(self, resources):
return [
InstanceReplicaConfigurationMysqlReplicaConfiguration.from_proto(i)
for i in resources
]
class InstanceReplicaConfigurationMysqlReplicaConfigurationMasterHeartbeatPeriod(
object
):
def __init__(self, value: int = None):
self.value = value
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = (
instance_pb2.SqlInstanceReplicaConfigurationMysqlReplicaConfigurationMasterHeartbeatPeriod()
)
if Primitive.to_proto(resource.value):
res.value = Primitive.to_proto(resource.value)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return InstanceReplicaConfigurationMysqlReplicaConfigurationMasterHeartbeatPeriod(
value=resource.value,
)
class InstanceReplicaConfigurationMysqlReplicaConfigurationMasterHeartbeatPeriodArray(
object
):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [
InstanceReplicaConfigurationMysqlReplicaConfigurationMasterHeartbeatPeriod.to_proto(
i
)
for i in resources
]
@classmethod
def from_proto(self, resources):
return [
InstanceReplicaConfigurationMysqlReplicaConfigurationMasterHeartbeatPeriod.from_proto(
i
)
for i in resources
]
class InstanceReplicaConfigurationReplicaPoolConfiguration(object):
def __init__(
self,
kind: str = None,
static_pool_configuration: dict = None,
autoscaling_pool_configuration: dict = None,
):
self.kind = kind
self.static_pool_configuration = static_pool_configuration
self.autoscaling_pool_configuration = autoscaling_pool_configuration
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = instance_pb2.SqlInstanceReplicaConfigurationReplicaPoolConfiguration()
if Primitive.to_proto(resource.kind):
res.kind = Primitive.to_proto(resource.kind)
if InstanceReplicaConfigurationReplicaPoolConfigurationStaticPoolConfiguration.to_proto(
resource.static_pool_configuration
):
res.static_pool_configuration.CopyFrom(
InstanceReplicaConfigurationReplicaPoolConfigurationStaticPoolConfiguration.to_proto(
resource.static_pool_configuration
)
)
else:
res.ClearField("static_pool_configuration")
if InstanceReplicaConfigurationReplicaPoolConfigurationAutoscalingPoolConfiguration.to_proto(
resource.autoscaling_pool_configuration
):
res.autoscaling_pool_configuration.CopyFrom(
InstanceReplicaConfigurationReplicaPoolConfigurationAutoscalingPoolConfiguration.to_proto(
resource.autoscaling_pool_configuration
)
)
else:
res.ClearField("autoscaling_pool_configuration")
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return InstanceReplicaConfigurationReplicaPoolConfiguration(
kind=resource.kind,
static_pool_configuration=resource.static_pool_configuration,
autoscaling_pool_configuration=resource.autoscaling_pool_configuration,
)
class InstanceReplicaConfigurationReplicaPoolConfigurationArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [
InstanceReplicaConfigurationReplicaPoolConfiguration.to_proto(i)
for i in resources
]
@classmethod
def from_proto(self, resources):
return [
InstanceReplicaConfigurationReplicaPoolConfiguration.from_proto(i)
for i in resources
]
class InstanceReplicaConfigurationReplicaPoolConfigurationStaticPoolConfiguration(
object
):
def __init__(
self,
kind: str = None,
replica_count: int = None,
expose_replica_ip: bool = None,
):
self.kind = kind
self.replica_count = replica_count
self.expose_replica_ip = expose_replica_ip
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = (
instance_pb2.SqlInstanceReplicaConfigurationReplicaPoolConfigurationStaticPoolConfiguration()
)
if Primitive.to_proto(resource.kind):
res.kind = Primitive.to_proto(resource.kind)
if Primitive.to_proto(resource.replica_count):
res.replica_count = Primitive.to_proto(resource.replica_count)
if Primitive.to_proto(resource.expose_replica_ip):
res.expose_replica_ip = Primitive.to_proto(resource.expose_replica_ip)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return InstanceReplicaConfigurationReplicaPoolConfigurationStaticPoolConfiguration(
kind=resource.kind,
replica_count=resource.replica_count,
expose_replica_ip=resource.expose_replica_ip,
)
class InstanceReplicaConfigurationReplicaPoolConfigurationStaticPoolConfigurationArray(
object
):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [
InstanceReplicaConfigurationReplicaPoolConfigurationStaticPoolConfiguration.to_proto(
i
)
for i in resources
]
@classmethod
def from_proto(self, resources):
return [
InstanceReplicaConfigurationReplicaPoolConfigurationStaticPoolConfiguration.from_proto(
i
)
for i in resources
]
class InstanceReplicaConfigurationReplicaPoolConfigurationAutoscalingPoolConfiguration(
object
):
def __init__(
self,
kind: str = None,
min_replica_count: int = None,
max_replica_count: int = None,
target_cpu_util: float = None,
):
self.kind = kind
self.min_replica_count = min_replica_count
self.max_replica_count = max_replica_count
self.target_cpu_util = target_cpu_util
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = (
instance_pb2.SqlInstanceReplicaConfigurationReplicaPoolConfigurationAutoscalingPoolConfiguration()
)
if Primitive.to_proto(resource.kind):
res.kind = Primitive.to_proto(resource.kind)
if Primitive.to_proto(resource.min_replica_count):
res.min_replica_count = Primitive.to_proto(resource.min_replica_count)
if Primitive.to_proto(resource.max_replica_count):
res.max_replica_count = Primitive.to_proto(resource.max_replica_count)
if Primitive.to_proto(resource.target_cpu_util):
res.target_cpu_util = Primitive.to_proto(resource.target_cpu_util)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return InstanceReplicaConfigurationReplicaPoolConfigurationAutoscalingPoolConfiguration(
kind=resource.kind,
min_replica_count=resource.min_replica_count,
max_replica_count=resource.max_replica_count,
target_cpu_util=resource.target_cpu_util,
)
class InstanceReplicaConfigurationReplicaPoolConfigurationAutoscalingPoolConfigurationArray(
object
):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [
InstanceReplicaConfigurationReplicaPoolConfigurationAutoscalingPoolConfiguration.to_proto(
i
)
for i in resources
]
@classmethod
def from_proto(self, resources):
return [
InstanceReplicaConfigurationReplicaPoolConfigurationAutoscalingPoolConfiguration.from_proto(
i
)
for i in resources
]
class InstanceScheduledMaintenance(object):
def __init__(
self,
start_time: dict = None,
can_defer: bool = None,
can_reschedule: bool = None,
):
self.start_time = start_time
self.can_defer = can_defer
self.can_reschedule = can_reschedule
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = instance_pb2.SqlInstanceScheduledMaintenance()
if InstanceScheduledMaintenanceStartTime.to_proto(resource.start_time):
res.start_time.CopyFrom(
InstanceScheduledMaintenanceStartTime.to_proto(resource.start_time)
)
else:
res.ClearField("start_time")
if Primitive.to_proto(resource.can_defer):
res.can_defer = Primitive.to_proto(resource.can_defer)
if Primitive.to_proto(resource.can_reschedule):
res.can_reschedule = Primitive.to_proto(resource.can_reschedule)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return InstanceScheduledMaintenance(
start_time=resource.start_time,
can_defer=resource.can_defer,
can_reschedule=resource.can_reschedule,
)
class InstanceScheduledMaintenanceArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [InstanceScheduledMaintenance.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [InstanceScheduledMaintenance.from_proto(i) for i in resources]
class InstanceScheduledMaintenanceStartTime(object):
def __init__(self, seconds: int = None, nanos: int = None):
self.seconds = seconds
self.nanos = nanos
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = instance_pb2.SqlInstanceScheduledMaintenanceStartTime()
if Primitive.to_proto(resource.seconds):
res.seconds = Primitive.to_proto(resource.seconds)
if Primitive.to_proto(resource.nanos):
res.nanos = Primitive.to_proto(resource.nanos)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return InstanceScheduledMaintenanceStartTime(
seconds=resource.seconds, nanos=resource.nanos,
)
class InstanceScheduledMaintenanceStartTimeArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [InstanceScheduledMaintenanceStartTime.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [InstanceScheduledMaintenanceStartTime.from_proto(i) for i in resources]
class InstanceSettings(object):
def __init__(
self,
authorized_gae_applications: list = None,
tier: str = None,
kind: str = None,
availability_type: str = None,
pricing_plan: str = None,
replication_type: str = None,
activation_policy: str = None,
storage_auto_resize: bool = None,
data_disk_type: str = None,
database_replication_enabled: bool = None,
crash_safe_replication_enabled: bool = None,
):
self.authorized_gae_applications = authorized_gae_applications
self.tier = tier
self.kind = kind
self.availability_type = availability_type
self.pricing_plan = pricing_plan
self.replication_type = replication_type
self.activation_policy = activation_policy
self.storage_auto_resize = storage_auto_resize
self.data_disk_type = data_disk_type
self.database_replication_enabled = database_replication_enabled
self.crash_safe_replication_enabled = crash_safe_replication_enabled
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = instance_pb2.SqlInstanceSettings()
if Primitive.to_proto(resource.authorized_gae_applications):
res.authorized_gae_applications.extend(
Primitive.to_proto(resource.authorized_gae_applications)
)
if Primitive.to_proto(resource.tier):
res.tier = Primitive.to_proto(resource.tier)
if Primitive.to_proto(resource.kind):
res.kind = Primitive.to_proto(resource.kind)
if InstanceSettingsAvailabilityTypeEnum.to_proto(resource.availability_type):
res.availability_type = InstanceSettingsAvailabilityTypeEnum.to_proto(
resource.availability_type
)
if InstanceSettingsPricingPlanEnum.to_proto(resource.pricing_plan):
res.pricing_plan = InstanceSettingsPricingPlanEnum.to_proto(
resource.pricing_plan
)
if InstanceSettingsReplicationTypeEnum.to_proto(resource.replication_type):
res.replication_type = InstanceSettingsReplicationTypeEnum.to_proto(
resource.replication_type
)
if InstanceSettingsActivationPolicyEnum.to_proto(resource.activation_policy):
res.activation_policy = InstanceSettingsActivationPolicyEnum.to_proto(
resource.activation_policy
)
if Primitive.to_proto(resource.storage_auto_resize):
res.storage_auto_resize = Primitive.to_proto(resource.storage_auto_resize)
if InstanceSettingsDataDiskTypeEnum.to_proto(resource.data_disk_type):
res.data_disk_type = InstanceSettingsDataDiskTypeEnum.to_proto(
resource.data_disk_type
)
if Primitive.to_proto(resource.database_replication_enabled):
res.database_replication_enabled = Primitive.to_proto(
resource.database_replication_enabled
)
if Primitive.to_proto(resource.crash_safe_replication_enabled):
res.crash_safe_replication_enabled = Primitive.to_proto(
resource.crash_safe_replication_enabled
)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return InstanceSettings(
authorized_gae_applications=resource.authorized_gae_applications,
tier=resource.tier,
kind=resource.kind,
availability_type=resource.availability_type,
pricing_plan=resource.pricing_plan,
replication_type=resource.replication_type,
activation_policy=resource.activation_policy,
storage_auto_resize=resource.storage_auto_resize,
data_disk_type=resource.data_disk_type,
database_replication_enabled=resource.database_replication_enabled,
crash_safe_replication_enabled=resource.crash_safe_replication_enabled,
)
class InstanceSettingsArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [InstanceSettings.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [InstanceSettings.from_proto(i) for i in resources]
class InstanceBackendTypeEnum(object):
@classmethod
def to_proto(self, resource):
if not resource:
return resource
return instance_pb2.SqlInstanceBackendTypeEnum.Value(
"InstanceBackendTypeEnum%s" % resource
)
@classmethod
def from_proto(self, resource):
if not resource:
return resource
return instance_pb2.SqlInstanceBackendTypeEnum.Name(resource)[
len("InstanceBackendTypeEnum") :
]
class InstanceDatabaseVersionEnum(object):
@classmethod
def to_proto(self, resource):
if not resource:
return resource
return instance_pb2.SqlInstanceDatabaseVersionEnum.Value(
"InstanceDatabaseVersionEnum%s" % resource
)
@classmethod
def from_proto(self, resource):
if not resource:
return resource
return instance_pb2.SqlInstanceDatabaseVersionEnum.Name(resource)[
len("InstanceDatabaseVersionEnum") :
]
class InstanceInstanceTypeEnum(object):
@classmethod
def to_proto(self, resource):
if not resource:
return resource
return instance_pb2.SqlInstanceInstanceTypeEnum.Value(
"InstanceInstanceTypeEnum%s" % resource
)
@classmethod
def from_proto(self, resource):
if not resource:
return resource
return instance_pb2.SqlInstanceInstanceTypeEnum.Name(resource)[
len("InstanceInstanceTypeEnum") :
]
class InstanceIPAddressesTypeEnum(object):
@classmethod
def to_proto(self, resource):
if not resource:
return resource
return instance_pb2.SqlInstanceIPAddressesTypeEnum.Value(
"InstanceIPAddressesTypeEnum%s" % resource
)
@classmethod
def from_proto(self, resource):
if not resource:
return resource
return instance_pb2.SqlInstanceIPAddressesTypeEnum.Name(resource)[
len("InstanceIPAddressesTypeEnum") :
]
class InstanceSettingsAvailabilityTypeEnum(object):
@classmethod
def to_proto(self, resource):
if not resource:
return resource
return instance_pb2.SqlInstanceSettingsAvailabilityTypeEnum.Value(
"InstanceSettingsAvailabilityTypeEnum%s" % resource
)
@classmethod
def from_proto(self, resource):
if not resource:
return resource
return instance_pb2.SqlInstanceSettingsAvailabilityTypeEnum.Name(resource)[
len("InstanceSettingsAvailabilityTypeEnum") :
]
class InstanceSettingsPricingPlanEnum(object):
@classmethod
def to_proto(self, resource):
if not resource:
return resource
return instance_pb2.SqlInstanceSettingsPricingPlanEnum.Value(
"InstanceSettingsPricingPlanEnum%s" % resource
)
@classmethod
def from_proto(self, resource):
if not resource:
return resource
return instance_pb2.SqlInstanceSettingsPricingPlanEnum.Name(resource)[
len("InstanceSettingsPricingPlanEnum") :
]
class InstanceSettingsReplicationTypeEnum(object):
@classmethod
def to_proto(self, resource):
if not resource:
return resource
return instance_pb2.SqlInstanceSettingsReplicationTypeEnum.Value(
"InstanceSettingsReplicationTypeEnum%s" % resource
)
@classmethod
def from_proto(self, resource):
if not resource:
return resource
return instance_pb2.SqlInstanceSettingsReplicationTypeEnum.Name(resource)[
len("InstanceSettingsReplicationTypeEnum") :
]
class InstanceSettingsActivationPolicyEnum(object):
@classmethod
def to_proto(self, resource):
if not resource:
return resource
return instance_pb2.SqlInstanceSettingsActivationPolicyEnum.Value(
"InstanceSettingsActivationPolicyEnum%s" % resource
)
@classmethod
def from_proto(self, resource):
if not resource:
return resource
return instance_pb2.SqlInstanceSettingsActivationPolicyEnum.Name(resource)[
len("InstanceSettingsActivationPolicyEnum") :
]
class InstanceSettingsDataDiskTypeEnum(object):
@classmethod
def to_proto(self, resource):
if not resource:
return resource
return instance_pb2.SqlInstanceSettingsDataDiskTypeEnum.Value(
"InstanceSettingsDataDiskTypeEnum%s" % resource
)
@classmethod
def from_proto(self, resource):
if not resource:
return resource
return instance_pb2.SqlInstanceSettingsDataDiskTypeEnum.Name(resource)[
len("InstanceSettingsDataDiskTypeEnum") :
]
class Primitive(object):
@classmethod
def to_proto(self, s):
if not s:
return ""
return s
@classmethod
def from_proto(self, s):
return s