python/services/appengine/version.py (2,036 lines of code) (raw):
# Copyright 2021 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.app_engine import version_pb2
from google3.cloud.graphite.mmv2.services.google.app_engine import version_pb2_grpc
from typing import List
class Version(object):
def __init__(
self,
consumer_name: str = None,
name: str = None,
automatic_scaling: dict = None,
basic_scaling: dict = None,
manual_scaling: dict = None,
inbound_services: list = None,
instance_class: str = None,
network: dict = None,
zones: list = None,
resources: dict = None,
runtime: str = None,
runtime_channel: str = None,
threadsafe: bool = None,
vm: bool = None,
beta_settings: dict = None,
env: str = None,
serving_status: str = None,
created_by: str = None,
create_time: str = None,
disk_usage_bytes: int = None,
runtime_api_version: str = None,
runtime_main_executable_path: str = None,
handlers: list = None,
error_handlers: list = None,
libraries: list = None,
api_config: dict = None,
env_variables: dict = None,
default_expiration: str = None,
deployment: dict = None,
health_check: dict = None,
readiness_check: dict = None,
liveness_check: dict = None,
nobuild_files_regex: str = None,
version_url: str = None,
entrypoint: dict = None,
vpc_access_connector: dict = None,
app: str = None,
service: str = None,
service_account_file: str = "",
):
channel.initialize()
self.consumer_name = consumer_name
self.name = name
self.automatic_scaling = automatic_scaling
self.basic_scaling = basic_scaling
self.manual_scaling = manual_scaling
self.inbound_services = inbound_services
self.instance_class = instance_class
self.network = network
self.zones = zones
self.resources = resources
self.runtime = runtime
self.runtime_channel = runtime_channel
self.threadsafe = threadsafe
self.vm = vm
self.beta_settings = beta_settings
self.env = env
self.serving_status = serving_status
self.runtime_api_version = runtime_api_version
self.runtime_main_executable_path = runtime_main_executable_path
self.handlers = handlers
self.error_handlers = error_handlers
self.libraries = libraries
self.api_config = api_config
self.env_variables = env_variables
self.default_expiration = default_expiration
self.deployment = deployment
self.health_check = health_check
self.readiness_check = readiness_check
self.liveness_check = liveness_check
self.nobuild_files_regex = nobuild_files_regex
self.entrypoint = entrypoint
self.vpc_access_connector = vpc_access_connector
self.app = app
self.service = service
self.service_account_file = service_account_file
def apply(self):
stub = version_pb2_grpc.AppengineVersionServiceStub(channel.Channel())
request = version_pb2.ApplyAppengineVersionRequest()
if Primitive.to_proto(self.consumer_name):
request.resource.consumer_name = Primitive.to_proto(self.consumer_name)
if Primitive.to_proto(self.name):
request.resource.name = Primitive.to_proto(self.name)
if VersionAutomaticScaling.to_proto(self.automatic_scaling):
request.resource.automatic_scaling.CopyFrom(
VersionAutomaticScaling.to_proto(self.automatic_scaling)
)
else:
request.resource.ClearField("automatic_scaling")
if VersionBasicScaling.to_proto(self.basic_scaling):
request.resource.basic_scaling.CopyFrom(
VersionBasicScaling.to_proto(self.basic_scaling)
)
else:
request.resource.ClearField("basic_scaling")
if VersionManualScaling.to_proto(self.manual_scaling):
request.resource.manual_scaling.CopyFrom(
VersionManualScaling.to_proto(self.manual_scaling)
)
else:
request.resource.ClearField("manual_scaling")
if VersionInboundServicesEnumArray.to_proto(self.inbound_services):
request.resource.inbound_services.extend(
VersionInboundServicesEnumArray.to_proto(self.inbound_services)
)
if Primitive.to_proto(self.instance_class):
request.resource.instance_class = Primitive.to_proto(self.instance_class)
if VersionNetwork.to_proto(self.network):
request.resource.network.CopyFrom(VersionNetwork.to_proto(self.network))
else:
request.resource.ClearField("network")
if Primitive.to_proto(self.zones):
request.resource.zones.extend(Primitive.to_proto(self.zones))
if VersionResources.to_proto(self.resources):
request.resource.resources.CopyFrom(
VersionResources.to_proto(self.resources)
)
else:
request.resource.ClearField("resources")
if Primitive.to_proto(self.runtime):
request.resource.runtime = Primitive.to_proto(self.runtime)
if Primitive.to_proto(self.runtime_channel):
request.resource.runtime_channel = Primitive.to_proto(self.runtime_channel)
if Primitive.to_proto(self.threadsafe):
request.resource.threadsafe = Primitive.to_proto(self.threadsafe)
if Primitive.to_proto(self.vm):
request.resource.vm = Primitive.to_proto(self.vm)
if Primitive.to_proto(self.beta_settings):
request.resource.beta_settings = Primitive.to_proto(self.beta_settings)
if Primitive.to_proto(self.env):
request.resource.env = Primitive.to_proto(self.env)
if VersionServingStatusEnum.to_proto(self.serving_status):
request.resource.serving_status = VersionServingStatusEnum.to_proto(
self.serving_status
)
if Primitive.to_proto(self.runtime_api_version):
request.resource.runtime_api_version = Primitive.to_proto(
self.runtime_api_version
)
if Primitive.to_proto(self.runtime_main_executable_path):
request.resource.runtime_main_executable_path = Primitive.to_proto(
self.runtime_main_executable_path
)
if VersionHandlersArray.to_proto(self.handlers):
request.resource.handlers.extend(
VersionHandlersArray.to_proto(self.handlers)
)
if VersionErrorHandlersArray.to_proto(self.error_handlers):
request.resource.error_handlers.extend(
VersionErrorHandlersArray.to_proto(self.error_handlers)
)
if VersionLibrariesArray.to_proto(self.libraries):
request.resource.libraries.extend(
VersionLibrariesArray.to_proto(self.libraries)
)
if VersionApiConfig.to_proto(self.api_config):
request.resource.api_config.CopyFrom(
VersionApiConfig.to_proto(self.api_config)
)
else:
request.resource.ClearField("api_config")
if Primitive.to_proto(self.env_variables):
request.resource.env_variables = Primitive.to_proto(self.env_variables)
if Primitive.to_proto(self.default_expiration):
request.resource.default_expiration = Primitive.to_proto(
self.default_expiration
)
if VersionDeployment.to_proto(self.deployment):
request.resource.deployment.CopyFrom(
VersionDeployment.to_proto(self.deployment)
)
else:
request.resource.ClearField("deployment")
if VersionHealthCheck.to_proto(self.health_check):
request.resource.health_check.CopyFrom(
VersionHealthCheck.to_proto(self.health_check)
)
else:
request.resource.ClearField("health_check")
if VersionReadinessCheck.to_proto(self.readiness_check):
request.resource.readiness_check.CopyFrom(
VersionReadinessCheck.to_proto(self.readiness_check)
)
else:
request.resource.ClearField("readiness_check")
if VersionLivenessCheck.to_proto(self.liveness_check):
request.resource.liveness_check.CopyFrom(
VersionLivenessCheck.to_proto(self.liveness_check)
)
else:
request.resource.ClearField("liveness_check")
if Primitive.to_proto(self.nobuild_files_regex):
request.resource.nobuild_files_regex = Primitive.to_proto(
self.nobuild_files_regex
)
if VersionEntrypoint.to_proto(self.entrypoint):
request.resource.entrypoint.CopyFrom(
VersionEntrypoint.to_proto(self.entrypoint)
)
else:
request.resource.ClearField("entrypoint")
if VersionVPCAccessConnector.to_proto(self.vpc_access_connector):
request.resource.vpc_access_connector.CopyFrom(
VersionVPCAccessConnector.to_proto(self.vpc_access_connector)
)
else:
request.resource.ClearField("vpc_access_connector")
if Primitive.to_proto(self.app):
request.resource.app = Primitive.to_proto(self.app)
if Primitive.to_proto(self.service):
request.resource.service = Primitive.to_proto(self.service)
request.service_account_file = self.service_account_file
response = stub.ApplyAppengineVersion(request)
self.consumer_name = Primitive.from_proto(response.consumer_name)
self.name = Primitive.from_proto(response.name)
self.automatic_scaling = VersionAutomaticScaling.from_proto(
response.automatic_scaling
)
self.basic_scaling = VersionBasicScaling.from_proto(response.basic_scaling)
self.manual_scaling = VersionManualScaling.from_proto(response.manual_scaling)
self.inbound_services = VersionInboundServicesEnumArray.from_proto(
response.inbound_services
)
self.instance_class = Primitive.from_proto(response.instance_class)
self.network = VersionNetwork.from_proto(response.network)
self.zones = Primitive.from_proto(response.zones)
self.resources = VersionResources.from_proto(response.resources)
self.runtime = Primitive.from_proto(response.runtime)
self.runtime_channel = Primitive.from_proto(response.runtime_channel)
self.threadsafe = Primitive.from_proto(response.threadsafe)
self.vm = Primitive.from_proto(response.vm)
self.beta_settings = Primitive.from_proto(response.beta_settings)
self.env = Primitive.from_proto(response.env)
self.serving_status = VersionServingStatusEnum.from_proto(
response.serving_status
)
self.created_by = Primitive.from_proto(response.created_by)
self.create_time = Primitive.from_proto(response.create_time)
self.disk_usage_bytes = Primitive.from_proto(response.disk_usage_bytes)
self.runtime_api_version = Primitive.from_proto(response.runtime_api_version)
self.runtime_main_executable_path = Primitive.from_proto(
response.runtime_main_executable_path
)
self.handlers = VersionHandlersArray.from_proto(response.handlers)
self.error_handlers = VersionErrorHandlersArray.from_proto(
response.error_handlers
)
self.libraries = VersionLibrariesArray.from_proto(response.libraries)
self.api_config = VersionApiConfig.from_proto(response.api_config)
self.env_variables = Primitive.from_proto(response.env_variables)
self.default_expiration = Primitive.from_proto(response.default_expiration)
self.deployment = VersionDeployment.from_proto(response.deployment)
self.health_check = VersionHealthCheck.from_proto(response.health_check)
self.readiness_check = VersionReadinessCheck.from_proto(
response.readiness_check
)
self.liveness_check = VersionLivenessCheck.from_proto(response.liveness_check)
self.nobuild_files_regex = Primitive.from_proto(response.nobuild_files_regex)
self.version_url = Primitive.from_proto(response.version_url)
self.entrypoint = VersionEntrypoint.from_proto(response.entrypoint)
self.vpc_access_connector = VersionVPCAccessConnector.from_proto(
response.vpc_access_connector
)
self.app = Primitive.from_proto(response.app)
self.service = Primitive.from_proto(response.service)
def delete(self):
stub = version_pb2_grpc.AppengineVersionServiceStub(channel.Channel())
request = version_pb2.DeleteAppengineVersionRequest()
request.service_account_file = self.service_account_file
if Primitive.to_proto(self.consumer_name):
request.resource.consumer_name = Primitive.to_proto(self.consumer_name)
if Primitive.to_proto(self.name):
request.resource.name = Primitive.to_proto(self.name)
if VersionAutomaticScaling.to_proto(self.automatic_scaling):
request.resource.automatic_scaling.CopyFrom(
VersionAutomaticScaling.to_proto(self.automatic_scaling)
)
else:
request.resource.ClearField("automatic_scaling")
if VersionBasicScaling.to_proto(self.basic_scaling):
request.resource.basic_scaling.CopyFrom(
VersionBasicScaling.to_proto(self.basic_scaling)
)
else:
request.resource.ClearField("basic_scaling")
if VersionManualScaling.to_proto(self.manual_scaling):
request.resource.manual_scaling.CopyFrom(
VersionManualScaling.to_proto(self.manual_scaling)
)
else:
request.resource.ClearField("manual_scaling")
if VersionInboundServicesEnumArray.to_proto(self.inbound_services):
request.resource.inbound_services.extend(
VersionInboundServicesEnumArray.to_proto(self.inbound_services)
)
if Primitive.to_proto(self.instance_class):
request.resource.instance_class = Primitive.to_proto(self.instance_class)
if VersionNetwork.to_proto(self.network):
request.resource.network.CopyFrom(VersionNetwork.to_proto(self.network))
else:
request.resource.ClearField("network")
if Primitive.to_proto(self.zones):
request.resource.zones.extend(Primitive.to_proto(self.zones))
if VersionResources.to_proto(self.resources):
request.resource.resources.CopyFrom(
VersionResources.to_proto(self.resources)
)
else:
request.resource.ClearField("resources")
if Primitive.to_proto(self.runtime):
request.resource.runtime = Primitive.to_proto(self.runtime)
if Primitive.to_proto(self.runtime_channel):
request.resource.runtime_channel = Primitive.to_proto(self.runtime_channel)
if Primitive.to_proto(self.threadsafe):
request.resource.threadsafe = Primitive.to_proto(self.threadsafe)
if Primitive.to_proto(self.vm):
request.resource.vm = Primitive.to_proto(self.vm)
if Primitive.to_proto(self.beta_settings):
request.resource.beta_settings = Primitive.to_proto(self.beta_settings)
if Primitive.to_proto(self.env):
request.resource.env = Primitive.to_proto(self.env)
if VersionServingStatusEnum.to_proto(self.serving_status):
request.resource.serving_status = VersionServingStatusEnum.to_proto(
self.serving_status
)
if Primitive.to_proto(self.runtime_api_version):
request.resource.runtime_api_version = Primitive.to_proto(
self.runtime_api_version
)
if Primitive.to_proto(self.runtime_main_executable_path):
request.resource.runtime_main_executable_path = Primitive.to_proto(
self.runtime_main_executable_path
)
if VersionHandlersArray.to_proto(self.handlers):
request.resource.handlers.extend(
VersionHandlersArray.to_proto(self.handlers)
)
if VersionErrorHandlersArray.to_proto(self.error_handlers):
request.resource.error_handlers.extend(
VersionErrorHandlersArray.to_proto(self.error_handlers)
)
if VersionLibrariesArray.to_proto(self.libraries):
request.resource.libraries.extend(
VersionLibrariesArray.to_proto(self.libraries)
)
if VersionApiConfig.to_proto(self.api_config):
request.resource.api_config.CopyFrom(
VersionApiConfig.to_proto(self.api_config)
)
else:
request.resource.ClearField("api_config")
if Primitive.to_proto(self.env_variables):
request.resource.env_variables = Primitive.to_proto(self.env_variables)
if Primitive.to_proto(self.default_expiration):
request.resource.default_expiration = Primitive.to_proto(
self.default_expiration
)
if VersionDeployment.to_proto(self.deployment):
request.resource.deployment.CopyFrom(
VersionDeployment.to_proto(self.deployment)
)
else:
request.resource.ClearField("deployment")
if VersionHealthCheck.to_proto(self.health_check):
request.resource.health_check.CopyFrom(
VersionHealthCheck.to_proto(self.health_check)
)
else:
request.resource.ClearField("health_check")
if VersionReadinessCheck.to_proto(self.readiness_check):
request.resource.readiness_check.CopyFrom(
VersionReadinessCheck.to_proto(self.readiness_check)
)
else:
request.resource.ClearField("readiness_check")
if VersionLivenessCheck.to_proto(self.liveness_check):
request.resource.liveness_check.CopyFrom(
VersionLivenessCheck.to_proto(self.liveness_check)
)
else:
request.resource.ClearField("liveness_check")
if Primitive.to_proto(self.nobuild_files_regex):
request.resource.nobuild_files_regex = Primitive.to_proto(
self.nobuild_files_regex
)
if VersionEntrypoint.to_proto(self.entrypoint):
request.resource.entrypoint.CopyFrom(
VersionEntrypoint.to_proto(self.entrypoint)
)
else:
request.resource.ClearField("entrypoint")
if VersionVPCAccessConnector.to_proto(self.vpc_access_connector):
request.resource.vpc_access_connector.CopyFrom(
VersionVPCAccessConnector.to_proto(self.vpc_access_connector)
)
else:
request.resource.ClearField("vpc_access_connector")
if Primitive.to_proto(self.app):
request.resource.app = Primitive.to_proto(self.app)
if Primitive.to_proto(self.service):
request.resource.service = Primitive.to_proto(self.service)
response = stub.DeleteAppengineVersion(request)
@classmethod
def list(self, app, service, service_account_file=""):
stub = version_pb2_grpc.AppengineVersionServiceStub(channel.Channel())
request = version_pb2.ListAppengineVersionRequest()
request.service_account_file = service_account_file
request.App = app
request.Service = service
return stub.ListAppengineVersion(request).items
def to_proto(self):
resource = version_pb2.AppengineVersion()
if Primitive.to_proto(self.consumer_name):
resource.consumer_name = Primitive.to_proto(self.consumer_name)
if Primitive.to_proto(self.name):
resource.name = Primitive.to_proto(self.name)
if VersionAutomaticScaling.to_proto(self.automatic_scaling):
resource.automatic_scaling.CopyFrom(
VersionAutomaticScaling.to_proto(self.automatic_scaling)
)
else:
resource.ClearField("automatic_scaling")
if VersionBasicScaling.to_proto(self.basic_scaling):
resource.basic_scaling.CopyFrom(
VersionBasicScaling.to_proto(self.basic_scaling)
)
else:
resource.ClearField("basic_scaling")
if VersionManualScaling.to_proto(self.manual_scaling):
resource.manual_scaling.CopyFrom(
VersionManualScaling.to_proto(self.manual_scaling)
)
else:
resource.ClearField("manual_scaling")
if VersionInboundServicesEnumArray.to_proto(self.inbound_services):
resource.inbound_services.extend(
VersionInboundServicesEnumArray.to_proto(self.inbound_services)
)
if Primitive.to_proto(self.instance_class):
resource.instance_class = Primitive.to_proto(self.instance_class)
if VersionNetwork.to_proto(self.network):
resource.network.CopyFrom(VersionNetwork.to_proto(self.network))
else:
resource.ClearField("network")
if Primitive.to_proto(self.zones):
resource.zones.extend(Primitive.to_proto(self.zones))
if VersionResources.to_proto(self.resources):
resource.resources.CopyFrom(VersionResources.to_proto(self.resources))
else:
resource.ClearField("resources")
if Primitive.to_proto(self.runtime):
resource.runtime = Primitive.to_proto(self.runtime)
if Primitive.to_proto(self.runtime_channel):
resource.runtime_channel = Primitive.to_proto(self.runtime_channel)
if Primitive.to_proto(self.threadsafe):
resource.threadsafe = Primitive.to_proto(self.threadsafe)
if Primitive.to_proto(self.vm):
resource.vm = Primitive.to_proto(self.vm)
if Primitive.to_proto(self.beta_settings):
resource.beta_settings = Primitive.to_proto(self.beta_settings)
if Primitive.to_proto(self.env):
resource.env = Primitive.to_proto(self.env)
if VersionServingStatusEnum.to_proto(self.serving_status):
resource.serving_status = VersionServingStatusEnum.to_proto(
self.serving_status
)
if Primitive.to_proto(self.runtime_api_version):
resource.runtime_api_version = Primitive.to_proto(self.runtime_api_version)
if Primitive.to_proto(self.runtime_main_executable_path):
resource.runtime_main_executable_path = Primitive.to_proto(
self.runtime_main_executable_path
)
if VersionHandlersArray.to_proto(self.handlers):
resource.handlers.extend(VersionHandlersArray.to_proto(self.handlers))
if VersionErrorHandlersArray.to_proto(self.error_handlers):
resource.error_handlers.extend(
VersionErrorHandlersArray.to_proto(self.error_handlers)
)
if VersionLibrariesArray.to_proto(self.libraries):
resource.libraries.extend(VersionLibrariesArray.to_proto(self.libraries))
if VersionApiConfig.to_proto(self.api_config):
resource.api_config.CopyFrom(VersionApiConfig.to_proto(self.api_config))
else:
resource.ClearField("api_config")
if Primitive.to_proto(self.env_variables):
resource.env_variables = Primitive.to_proto(self.env_variables)
if Primitive.to_proto(self.default_expiration):
resource.default_expiration = Primitive.to_proto(self.default_expiration)
if VersionDeployment.to_proto(self.deployment):
resource.deployment.CopyFrom(VersionDeployment.to_proto(self.deployment))
else:
resource.ClearField("deployment")
if VersionHealthCheck.to_proto(self.health_check):
resource.health_check.CopyFrom(
VersionHealthCheck.to_proto(self.health_check)
)
else:
resource.ClearField("health_check")
if VersionReadinessCheck.to_proto(self.readiness_check):
resource.readiness_check.CopyFrom(
VersionReadinessCheck.to_proto(self.readiness_check)
)
else:
resource.ClearField("readiness_check")
if VersionLivenessCheck.to_proto(self.liveness_check):
resource.liveness_check.CopyFrom(
VersionLivenessCheck.to_proto(self.liveness_check)
)
else:
resource.ClearField("liveness_check")
if Primitive.to_proto(self.nobuild_files_regex):
resource.nobuild_files_regex = Primitive.to_proto(self.nobuild_files_regex)
if VersionEntrypoint.to_proto(self.entrypoint):
resource.entrypoint.CopyFrom(VersionEntrypoint.to_proto(self.entrypoint))
else:
resource.ClearField("entrypoint")
if VersionVPCAccessConnector.to_proto(self.vpc_access_connector):
resource.vpc_access_connector.CopyFrom(
VersionVPCAccessConnector.to_proto(self.vpc_access_connector)
)
else:
resource.ClearField("vpc_access_connector")
if Primitive.to_proto(self.app):
resource.app = Primitive.to_proto(self.app)
if Primitive.to_proto(self.service):
resource.service = Primitive.to_proto(self.service)
return resource
class VersionAutomaticScaling(object):
def __init__(
self,
cool_down_period: str = None,
cpu_utilization: dict = None,
max_concurrent_requests: int = None,
max_idle_instances: int = None,
max_total_instances: int = None,
max_pending_latency: str = None,
min_idle_instances: int = None,
min_total_instances: int = None,
min_pending_latency: str = None,
request_utilization: dict = None,
disk_utilization: dict = None,
network_utilization: dict = None,
standard_scheduler_settings: dict = None,
):
self.cool_down_period = cool_down_period
self.cpu_utilization = cpu_utilization
self.max_concurrent_requests = max_concurrent_requests
self.max_idle_instances = max_idle_instances
self.max_total_instances = max_total_instances
self.max_pending_latency = max_pending_latency
self.min_idle_instances = min_idle_instances
self.min_total_instances = min_total_instances
self.min_pending_latency = min_pending_latency
self.request_utilization = request_utilization
self.disk_utilization = disk_utilization
self.network_utilization = network_utilization
self.standard_scheduler_settings = standard_scheduler_settings
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionAutomaticScaling()
if Primitive.to_proto(resource.cool_down_period):
res.cool_down_period = Primitive.to_proto(resource.cool_down_period)
if VersionAutomaticScalingCpuUtilization.to_proto(resource.cpu_utilization):
res.cpu_utilization.CopyFrom(
VersionAutomaticScalingCpuUtilization.to_proto(resource.cpu_utilization)
)
else:
res.ClearField("cpu_utilization")
if Primitive.to_proto(resource.max_concurrent_requests):
res.max_concurrent_requests = Primitive.to_proto(
resource.max_concurrent_requests
)
if Primitive.to_proto(resource.max_idle_instances):
res.max_idle_instances = Primitive.to_proto(resource.max_idle_instances)
if Primitive.to_proto(resource.max_total_instances):
res.max_total_instances = Primitive.to_proto(resource.max_total_instances)
if Primitive.to_proto(resource.max_pending_latency):
res.max_pending_latency = Primitive.to_proto(resource.max_pending_latency)
if Primitive.to_proto(resource.min_idle_instances):
res.min_idle_instances = Primitive.to_proto(resource.min_idle_instances)
if Primitive.to_proto(resource.min_total_instances):
res.min_total_instances = Primitive.to_proto(resource.min_total_instances)
if Primitive.to_proto(resource.min_pending_latency):
res.min_pending_latency = Primitive.to_proto(resource.min_pending_latency)
if VersionAutomaticScalingRequestUtilization.to_proto(
resource.request_utilization
):
res.request_utilization.CopyFrom(
VersionAutomaticScalingRequestUtilization.to_proto(
resource.request_utilization
)
)
else:
res.ClearField("request_utilization")
if VersionAutomaticScalingDiskUtilization.to_proto(resource.disk_utilization):
res.disk_utilization.CopyFrom(
VersionAutomaticScalingDiskUtilization.to_proto(
resource.disk_utilization
)
)
else:
res.ClearField("disk_utilization")
if VersionAutomaticScalingNetworkUtilization.to_proto(
resource.network_utilization
):
res.network_utilization.CopyFrom(
VersionAutomaticScalingNetworkUtilization.to_proto(
resource.network_utilization
)
)
else:
res.ClearField("network_utilization")
if VersionAutomaticScalingStandardSchedulerSettings.to_proto(
resource.standard_scheduler_settings
):
res.standard_scheduler_settings.CopyFrom(
VersionAutomaticScalingStandardSchedulerSettings.to_proto(
resource.standard_scheduler_settings
)
)
else:
res.ClearField("standard_scheduler_settings")
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionAutomaticScaling(
cool_down_period=Primitive.from_proto(resource.cool_down_period),
cpu_utilization=VersionAutomaticScalingCpuUtilization.from_proto(
resource.cpu_utilization
),
max_concurrent_requests=Primitive.from_proto(
resource.max_concurrent_requests
),
max_idle_instances=Primitive.from_proto(resource.max_idle_instances),
max_total_instances=Primitive.from_proto(resource.max_total_instances),
max_pending_latency=Primitive.from_proto(resource.max_pending_latency),
min_idle_instances=Primitive.from_proto(resource.min_idle_instances),
min_total_instances=Primitive.from_proto(resource.min_total_instances),
min_pending_latency=Primitive.from_proto(resource.min_pending_latency),
request_utilization=VersionAutomaticScalingRequestUtilization.from_proto(
resource.request_utilization
),
disk_utilization=VersionAutomaticScalingDiskUtilization.from_proto(
resource.disk_utilization
),
network_utilization=VersionAutomaticScalingNetworkUtilization.from_proto(
resource.network_utilization
),
standard_scheduler_settings=VersionAutomaticScalingStandardSchedulerSettings.from_proto(
resource.standard_scheduler_settings
),
)
class VersionAutomaticScalingArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [VersionAutomaticScaling.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [VersionAutomaticScaling.from_proto(i) for i in resources]
class VersionAutomaticScalingCpuUtilization(object):
def __init__(
self, aggregation_window_length: str = None, target_utilization: float = None
):
self.aggregation_window_length = aggregation_window_length
self.target_utilization = target_utilization
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionAutomaticScalingCpuUtilization()
if Primitive.to_proto(resource.aggregation_window_length):
res.aggregation_window_length = Primitive.to_proto(
resource.aggregation_window_length
)
if Primitive.to_proto(resource.target_utilization):
res.target_utilization = Primitive.to_proto(resource.target_utilization)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionAutomaticScalingCpuUtilization(
aggregation_window_length=Primitive.from_proto(
resource.aggregation_window_length
),
target_utilization=Primitive.from_proto(resource.target_utilization),
)
class VersionAutomaticScalingCpuUtilizationArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [VersionAutomaticScalingCpuUtilization.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [VersionAutomaticScalingCpuUtilization.from_proto(i) for i in resources]
class VersionAutomaticScalingRequestUtilization(object):
def __init__(
self,
target_request_count_per_second: int = None,
target_concurrent_requests: int = None,
):
self.target_request_count_per_second = target_request_count_per_second
self.target_concurrent_requests = target_concurrent_requests
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionAutomaticScalingRequestUtilization()
if Primitive.to_proto(resource.target_request_count_per_second):
res.target_request_count_per_second = Primitive.to_proto(
resource.target_request_count_per_second
)
if Primitive.to_proto(resource.target_concurrent_requests):
res.target_concurrent_requests = Primitive.to_proto(
resource.target_concurrent_requests
)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionAutomaticScalingRequestUtilization(
target_request_count_per_second=Primitive.from_proto(
resource.target_request_count_per_second
),
target_concurrent_requests=Primitive.from_proto(
resource.target_concurrent_requests
),
)
class VersionAutomaticScalingRequestUtilizationArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [
VersionAutomaticScalingRequestUtilization.to_proto(i) for i in resources
]
@classmethod
def from_proto(self, resources):
return [
VersionAutomaticScalingRequestUtilization.from_proto(i) for i in resources
]
class VersionAutomaticScalingDiskUtilization(object):
def __init__(
self,
target_write_bytes_per_second: int = None,
target_write_ops_per_second: int = None,
target_read_bytes_per_second: int = None,
target_read_ops_per_second: int = None,
):
self.target_write_bytes_per_second = target_write_bytes_per_second
self.target_write_ops_per_second = target_write_ops_per_second
self.target_read_bytes_per_second = target_read_bytes_per_second
self.target_read_ops_per_second = target_read_ops_per_second
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionAutomaticScalingDiskUtilization()
if Primitive.to_proto(resource.target_write_bytes_per_second):
res.target_write_bytes_per_second = Primitive.to_proto(
resource.target_write_bytes_per_second
)
if Primitive.to_proto(resource.target_write_ops_per_second):
res.target_write_ops_per_second = Primitive.to_proto(
resource.target_write_ops_per_second
)
if Primitive.to_proto(resource.target_read_bytes_per_second):
res.target_read_bytes_per_second = Primitive.to_proto(
resource.target_read_bytes_per_second
)
if Primitive.to_proto(resource.target_read_ops_per_second):
res.target_read_ops_per_second = Primitive.to_proto(
resource.target_read_ops_per_second
)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionAutomaticScalingDiskUtilization(
target_write_bytes_per_second=Primitive.from_proto(
resource.target_write_bytes_per_second
),
target_write_ops_per_second=Primitive.from_proto(
resource.target_write_ops_per_second
),
target_read_bytes_per_second=Primitive.from_proto(
resource.target_read_bytes_per_second
),
target_read_ops_per_second=Primitive.from_proto(
resource.target_read_ops_per_second
),
)
class VersionAutomaticScalingDiskUtilizationArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [VersionAutomaticScalingDiskUtilization.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [VersionAutomaticScalingDiskUtilization.from_proto(i) for i in resources]
class VersionAutomaticScalingNetworkUtilization(object):
def __init__(
self,
target_sent_bytes_per_second: int = None,
target_sent_packets_per_second: int = None,
target_received_bytes_per_second: int = None,
target_received_packets_per_second: int = None,
):
self.target_sent_bytes_per_second = target_sent_bytes_per_second
self.target_sent_packets_per_second = target_sent_packets_per_second
self.target_received_bytes_per_second = target_received_bytes_per_second
self.target_received_packets_per_second = target_received_packets_per_second
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionAutomaticScalingNetworkUtilization()
if Primitive.to_proto(resource.target_sent_bytes_per_second):
res.target_sent_bytes_per_second = Primitive.to_proto(
resource.target_sent_bytes_per_second
)
if Primitive.to_proto(resource.target_sent_packets_per_second):
res.target_sent_packets_per_second = Primitive.to_proto(
resource.target_sent_packets_per_second
)
if Primitive.to_proto(resource.target_received_bytes_per_second):
res.target_received_bytes_per_second = Primitive.to_proto(
resource.target_received_bytes_per_second
)
if Primitive.to_proto(resource.target_received_packets_per_second):
res.target_received_packets_per_second = Primitive.to_proto(
resource.target_received_packets_per_second
)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionAutomaticScalingNetworkUtilization(
target_sent_bytes_per_second=Primitive.from_proto(
resource.target_sent_bytes_per_second
),
target_sent_packets_per_second=Primitive.from_proto(
resource.target_sent_packets_per_second
),
target_received_bytes_per_second=Primitive.from_proto(
resource.target_received_bytes_per_second
),
target_received_packets_per_second=Primitive.from_proto(
resource.target_received_packets_per_second
),
)
class VersionAutomaticScalingNetworkUtilizationArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [
VersionAutomaticScalingNetworkUtilization.to_proto(i) for i in resources
]
@classmethod
def from_proto(self, resources):
return [
VersionAutomaticScalingNetworkUtilization.from_proto(i) for i in resources
]
class VersionAutomaticScalingStandardSchedulerSettings(object):
def __init__(
self,
target_cpu_utilization: float = None,
target_throughput_utilization: float = None,
min_instances: int = None,
max_instances: int = None,
):
self.target_cpu_utilization = target_cpu_utilization
self.target_throughput_utilization = target_throughput_utilization
self.min_instances = min_instances
self.max_instances = max_instances
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionAutomaticScalingStandardSchedulerSettings()
if Primitive.to_proto(resource.target_cpu_utilization):
res.target_cpu_utilization = Primitive.to_proto(
resource.target_cpu_utilization
)
if Primitive.to_proto(resource.target_throughput_utilization):
res.target_throughput_utilization = Primitive.to_proto(
resource.target_throughput_utilization
)
if Primitive.to_proto(resource.min_instances):
res.min_instances = Primitive.to_proto(resource.min_instances)
if Primitive.to_proto(resource.max_instances):
res.max_instances = Primitive.to_proto(resource.max_instances)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionAutomaticScalingStandardSchedulerSettings(
target_cpu_utilization=Primitive.from_proto(
resource.target_cpu_utilization
),
target_throughput_utilization=Primitive.from_proto(
resource.target_throughput_utilization
),
min_instances=Primitive.from_proto(resource.min_instances),
max_instances=Primitive.from_proto(resource.max_instances),
)
class VersionAutomaticScalingStandardSchedulerSettingsArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [
VersionAutomaticScalingStandardSchedulerSettings.to_proto(i)
for i in resources
]
@classmethod
def from_proto(self, resources):
return [
VersionAutomaticScalingStandardSchedulerSettings.from_proto(i)
for i in resources
]
class VersionBasicScaling(object):
def __init__(self, idle_timeout: str = None, max_instances: int = None):
self.idle_timeout = idle_timeout
self.max_instances = max_instances
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionBasicScaling()
if Primitive.to_proto(resource.idle_timeout):
res.idle_timeout = Primitive.to_proto(resource.idle_timeout)
if Primitive.to_proto(resource.max_instances):
res.max_instances = Primitive.to_proto(resource.max_instances)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionBasicScaling(
idle_timeout=Primitive.from_proto(resource.idle_timeout),
max_instances=Primitive.from_proto(resource.max_instances),
)
class VersionBasicScalingArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [VersionBasicScaling.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [VersionBasicScaling.from_proto(i) for i in resources]
class VersionManualScaling(object):
def __init__(self, instances: int = None):
self.instances = instances
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionManualScaling()
if Primitive.to_proto(resource.instances):
res.instances = Primitive.to_proto(resource.instances)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionManualScaling(instances=Primitive.from_proto(resource.instances),)
class VersionManualScalingArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [VersionManualScaling.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [VersionManualScaling.from_proto(i) for i in resources]
class VersionNetwork(object):
def __init__(
self,
forwarded_ports: list = None,
instance_tag: str = None,
name: str = None,
subnetwork_name: str = None,
session_affinity: bool = None,
):
self.forwarded_ports = forwarded_ports
self.instance_tag = instance_tag
self.name = name
self.subnetwork_name = subnetwork_name
self.session_affinity = session_affinity
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionNetwork()
if Primitive.to_proto(resource.forwarded_ports):
res.forwarded_ports.extend(Primitive.to_proto(resource.forwarded_ports))
if Primitive.to_proto(resource.instance_tag):
res.instance_tag = Primitive.to_proto(resource.instance_tag)
if Primitive.to_proto(resource.name):
res.name = Primitive.to_proto(resource.name)
if Primitive.to_proto(resource.subnetwork_name):
res.subnetwork_name = Primitive.to_proto(resource.subnetwork_name)
if Primitive.to_proto(resource.session_affinity):
res.session_affinity = Primitive.to_proto(resource.session_affinity)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionNetwork(
forwarded_ports=Primitive.from_proto(resource.forwarded_ports),
instance_tag=Primitive.from_proto(resource.instance_tag),
name=Primitive.from_proto(resource.name),
subnetwork_name=Primitive.from_proto(resource.subnetwork_name),
session_affinity=Primitive.from_proto(resource.session_affinity),
)
class VersionNetworkArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [VersionNetwork.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [VersionNetwork.from_proto(i) for i in resources]
class VersionResources(object):
def __init__(
self,
cpu: float = None,
disk_gb: float = None,
memory_gb: float = None,
volumes: list = None,
):
self.cpu = cpu
self.disk_gb = disk_gb
self.memory_gb = memory_gb
self.volumes = volumes
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionResources()
if Primitive.to_proto(resource.cpu):
res.cpu = Primitive.to_proto(resource.cpu)
if Primitive.to_proto(resource.disk_gb):
res.disk_gb = Primitive.to_proto(resource.disk_gb)
if Primitive.to_proto(resource.memory_gb):
res.memory_gb = Primitive.to_proto(resource.memory_gb)
if VersionResourcesVolumesArray.to_proto(resource.volumes):
res.volumes.extend(VersionResourcesVolumesArray.to_proto(resource.volumes))
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionResources(
cpu=Primitive.from_proto(resource.cpu),
disk_gb=Primitive.from_proto(resource.disk_gb),
memory_gb=Primitive.from_proto(resource.memory_gb),
volumes=VersionResourcesVolumesArray.from_proto(resource.volumes),
)
class VersionResourcesArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [VersionResources.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [VersionResources.from_proto(i) for i in resources]
class VersionResourcesVolumes(object):
def __init__(
self, name: str = None, volume_type: str = None, size_gb: float = None
):
self.name = name
self.volume_type = volume_type
self.size_gb = size_gb
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionResourcesVolumes()
if Primitive.to_proto(resource.name):
res.name = Primitive.to_proto(resource.name)
if Primitive.to_proto(resource.volume_type):
res.volume_type = Primitive.to_proto(resource.volume_type)
if Primitive.to_proto(resource.size_gb):
res.size_gb = Primitive.to_proto(resource.size_gb)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionResourcesVolumes(
name=Primitive.from_proto(resource.name),
volume_type=Primitive.from_proto(resource.volume_type),
size_gb=Primitive.from_proto(resource.size_gb),
)
class VersionResourcesVolumesArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [VersionResourcesVolumes.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [VersionResourcesVolumes.from_proto(i) for i in resources]
class VersionHandlers(object):
def __init__(
self,
url_regex: str = None,
static_files: dict = None,
script: dict = None,
api_endpoint: dict = None,
security_level: str = None,
login: str = None,
auth_fail_action: str = None,
redirect_http_response_code: str = None,
):
self.url_regex = url_regex
self.static_files = static_files
self.script = script
self.api_endpoint = api_endpoint
self.security_level = security_level
self.login = login
self.auth_fail_action = auth_fail_action
self.redirect_http_response_code = redirect_http_response_code
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionHandlers()
if Primitive.to_proto(resource.url_regex):
res.url_regex = Primitive.to_proto(resource.url_regex)
if VersionHandlersStaticFiles.to_proto(resource.static_files):
res.static_files.CopyFrom(
VersionHandlersStaticFiles.to_proto(resource.static_files)
)
else:
res.ClearField("static_files")
if VersionHandlersScript.to_proto(resource.script):
res.script.CopyFrom(VersionHandlersScript.to_proto(resource.script))
else:
res.ClearField("script")
if VersionHandlersApiEndpoint.to_proto(resource.api_endpoint):
res.api_endpoint.CopyFrom(
VersionHandlersApiEndpoint.to_proto(resource.api_endpoint)
)
else:
res.ClearField("api_endpoint")
if VersionHandlersSecurityLevelEnum.to_proto(resource.security_level):
res.security_level = VersionHandlersSecurityLevelEnum.to_proto(
resource.security_level
)
if VersionHandlersLoginEnum.to_proto(resource.login):
res.login = VersionHandlersLoginEnum.to_proto(resource.login)
if VersionHandlersAuthFailActionEnum.to_proto(resource.auth_fail_action):
res.auth_fail_action = VersionHandlersAuthFailActionEnum.to_proto(
resource.auth_fail_action
)
if VersionHandlersRedirectHttpResponseCodeEnum.to_proto(
resource.redirect_http_response_code
):
res.redirect_http_response_code = VersionHandlersRedirectHttpResponseCodeEnum.to_proto(
resource.redirect_http_response_code
)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionHandlers(
url_regex=Primitive.from_proto(resource.url_regex),
static_files=VersionHandlersStaticFiles.from_proto(resource.static_files),
script=VersionHandlersScript.from_proto(resource.script),
api_endpoint=VersionHandlersApiEndpoint.from_proto(resource.api_endpoint),
security_level=VersionHandlersSecurityLevelEnum.from_proto(
resource.security_level
),
login=VersionHandlersLoginEnum.from_proto(resource.login),
auth_fail_action=VersionHandlersAuthFailActionEnum.from_proto(
resource.auth_fail_action
),
redirect_http_response_code=VersionHandlersRedirectHttpResponseCodeEnum.from_proto(
resource.redirect_http_response_code
),
)
class VersionHandlersArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [VersionHandlers.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [VersionHandlers.from_proto(i) for i in resources]
class VersionHandlersStaticFiles(object):
def __init__(
self,
path: str = None,
upload_path_regex: str = None,
http_headers: dict = None,
mime_type: str = None,
expiration: str = None,
require_matching_file: bool = None,
application_readable: bool = None,
):
self.path = path
self.upload_path_regex = upload_path_regex
self.http_headers = http_headers
self.mime_type = mime_type
self.expiration = expiration
self.require_matching_file = require_matching_file
self.application_readable = application_readable
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionHandlersStaticFiles()
if Primitive.to_proto(resource.path):
res.path = Primitive.to_proto(resource.path)
if Primitive.to_proto(resource.upload_path_regex):
res.upload_path_regex = Primitive.to_proto(resource.upload_path_regex)
if Primitive.to_proto(resource.http_headers):
res.http_headers = Primitive.to_proto(resource.http_headers)
if Primitive.to_proto(resource.mime_type):
res.mime_type = Primitive.to_proto(resource.mime_type)
if Primitive.to_proto(resource.expiration):
res.expiration = Primitive.to_proto(resource.expiration)
if Primitive.to_proto(resource.require_matching_file):
res.require_matching_file = Primitive.to_proto(
resource.require_matching_file
)
if Primitive.to_proto(resource.application_readable):
res.application_readable = Primitive.to_proto(resource.application_readable)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionHandlersStaticFiles(
path=Primitive.from_proto(resource.path),
upload_path_regex=Primitive.from_proto(resource.upload_path_regex),
http_headers=Primitive.from_proto(resource.http_headers),
mime_type=Primitive.from_proto(resource.mime_type),
expiration=Primitive.from_proto(resource.expiration),
require_matching_file=Primitive.from_proto(resource.require_matching_file),
application_readable=Primitive.from_proto(resource.application_readable),
)
class VersionHandlersStaticFilesArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [VersionHandlersStaticFiles.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [VersionHandlersStaticFiles.from_proto(i) for i in resources]
class VersionHandlersScript(object):
def __init__(self, script_path: str = None):
self.script_path = script_path
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionHandlersScript()
if Primitive.to_proto(resource.script_path):
res.script_path = Primitive.to_proto(resource.script_path)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionHandlersScript(
script_path=Primitive.from_proto(resource.script_path),
)
class VersionHandlersScriptArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [VersionHandlersScript.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [VersionHandlersScript.from_proto(i) for i in resources]
class VersionHandlersApiEndpoint(object):
def __init__(self, script_path: str = None):
self.script_path = script_path
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionHandlersApiEndpoint()
if Primitive.to_proto(resource.script_path):
res.script_path = Primitive.to_proto(resource.script_path)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionHandlersApiEndpoint(
script_path=Primitive.from_proto(resource.script_path),
)
class VersionHandlersApiEndpointArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [VersionHandlersApiEndpoint.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [VersionHandlersApiEndpoint.from_proto(i) for i in resources]
class VersionErrorHandlers(object):
def __init__(
self, error_code: str = None, static_file: str = None, mime_type: str = None
):
self.error_code = error_code
self.static_file = static_file
self.mime_type = mime_type
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionErrorHandlers()
if VersionErrorHandlersErrorCodeEnum.to_proto(resource.error_code):
res.error_code = VersionErrorHandlersErrorCodeEnum.to_proto(
resource.error_code
)
if Primitive.to_proto(resource.static_file):
res.static_file = Primitive.to_proto(resource.static_file)
if Primitive.to_proto(resource.mime_type):
res.mime_type = Primitive.to_proto(resource.mime_type)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionErrorHandlers(
error_code=VersionErrorHandlersErrorCodeEnum.from_proto(
resource.error_code
),
static_file=Primitive.from_proto(resource.static_file),
mime_type=Primitive.from_proto(resource.mime_type),
)
class VersionErrorHandlersArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [VersionErrorHandlers.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [VersionErrorHandlers.from_proto(i) for i in resources]
class VersionLibraries(object):
def __init__(self, name: str = None, version: str = None):
self.name = name
self.version = version
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionLibraries()
if Primitive.to_proto(resource.name):
res.name = Primitive.to_proto(resource.name)
if Primitive.to_proto(resource.version):
res.version = Primitive.to_proto(resource.version)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionLibraries(
name=Primitive.from_proto(resource.name),
version=Primitive.from_proto(resource.version),
)
class VersionLibrariesArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [VersionLibraries.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [VersionLibraries.from_proto(i) for i in resources]
class VersionApiConfig(object):
def __init__(
self,
auth_fail_action: str = None,
login: str = None,
script: str = None,
security_level: str = None,
url: str = None,
):
self.auth_fail_action = auth_fail_action
self.login = login
self.script = script
self.security_level = security_level
self.url = url
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionApiConfig()
if VersionApiConfigAuthFailActionEnum.to_proto(resource.auth_fail_action):
res.auth_fail_action = VersionApiConfigAuthFailActionEnum.to_proto(
resource.auth_fail_action
)
if VersionApiConfigLoginEnum.to_proto(resource.login):
res.login = VersionApiConfigLoginEnum.to_proto(resource.login)
if Primitive.to_proto(resource.script):
res.script = Primitive.to_proto(resource.script)
if VersionApiConfigSecurityLevelEnum.to_proto(resource.security_level):
res.security_level = VersionApiConfigSecurityLevelEnum.to_proto(
resource.security_level
)
if Primitive.to_proto(resource.url):
res.url = Primitive.to_proto(resource.url)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionApiConfig(
auth_fail_action=VersionApiConfigAuthFailActionEnum.from_proto(
resource.auth_fail_action
),
login=VersionApiConfigLoginEnum.from_proto(resource.login),
script=Primitive.from_proto(resource.script),
security_level=VersionApiConfigSecurityLevelEnum.from_proto(
resource.security_level
),
url=Primitive.from_proto(resource.url),
)
class VersionApiConfigArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [VersionApiConfig.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [VersionApiConfig.from_proto(i) for i in resources]
class VersionDeployment(object):
def __init__(
self,
files: dict = None,
container: dict = None,
zip: dict = None,
cloud_build_options: dict = None,
):
self.files = files
self.container = container
self.zip = zip
self.cloud_build_options = cloud_build_options
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionDeployment()
if Primitive.to_proto(resource.files):
res.files = Primitive.to_proto(resource.files)
if VersionDeploymentContainer.to_proto(resource.container):
res.container.CopyFrom(
VersionDeploymentContainer.to_proto(resource.container)
)
else:
res.ClearField("container")
if VersionDeploymentZip.to_proto(resource.zip):
res.zip.CopyFrom(VersionDeploymentZip.to_proto(resource.zip))
else:
res.ClearField("zip")
if VersionDeploymentCloudBuildOptions.to_proto(resource.cloud_build_options):
res.cloud_build_options.CopyFrom(
VersionDeploymentCloudBuildOptions.to_proto(
resource.cloud_build_options
)
)
else:
res.ClearField("cloud_build_options")
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionDeployment(
files=Primitive.from_proto(resource.files),
container=VersionDeploymentContainer.from_proto(resource.container),
zip=VersionDeploymentZip.from_proto(resource.zip),
cloud_build_options=VersionDeploymentCloudBuildOptions.from_proto(
resource.cloud_build_options
),
)
class VersionDeploymentArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [VersionDeployment.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [VersionDeployment.from_proto(i) for i in resources]
class VersionDeploymentFiles(object):
def __init__(
self, source_url: str = None, sha1_sum: str = None, mime_type: str = None
):
self.source_url = source_url
self.sha1_sum = sha1_sum
self.mime_type = mime_type
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionDeploymentFiles()
if Primitive.to_proto(resource.source_url):
res.source_url = Primitive.to_proto(resource.source_url)
if Primitive.to_proto(resource.sha1_sum):
res.sha1_sum = Primitive.to_proto(resource.sha1_sum)
if Primitive.to_proto(resource.mime_type):
res.mime_type = Primitive.to_proto(resource.mime_type)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionDeploymentFiles(
source_url=Primitive.from_proto(resource.source_url),
sha1_sum=Primitive.from_proto(resource.sha1_sum),
mime_type=Primitive.from_proto(resource.mime_type),
)
class VersionDeploymentFilesArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [VersionDeploymentFiles.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [VersionDeploymentFiles.from_proto(i) for i in resources]
class VersionDeploymentContainer(object):
def __init__(self, image: str = None):
self.image = image
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionDeploymentContainer()
if Primitive.to_proto(resource.image):
res.image = Primitive.to_proto(resource.image)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionDeploymentContainer(image=Primitive.from_proto(resource.image),)
class VersionDeploymentContainerArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [VersionDeploymentContainer.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [VersionDeploymentContainer.from_proto(i) for i in resources]
class VersionDeploymentZip(object):
def __init__(self, source_url: str = None, files_count: int = None):
self.source_url = source_url
self.files_count = files_count
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionDeploymentZip()
if Primitive.to_proto(resource.source_url):
res.source_url = Primitive.to_proto(resource.source_url)
if Primitive.to_proto(resource.files_count):
res.files_count = Primitive.to_proto(resource.files_count)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionDeploymentZip(
source_url=Primitive.from_proto(resource.source_url),
files_count=Primitive.from_proto(resource.files_count),
)
class VersionDeploymentZipArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [VersionDeploymentZip.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [VersionDeploymentZip.from_proto(i) for i in resources]
class VersionDeploymentCloudBuildOptions(object):
def __init__(self, app_yaml_path: str = None, cloud_build_timeout: str = None):
self.app_yaml_path = app_yaml_path
self.cloud_build_timeout = cloud_build_timeout
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionDeploymentCloudBuildOptions()
if Primitive.to_proto(resource.app_yaml_path):
res.app_yaml_path = Primitive.to_proto(resource.app_yaml_path)
if Primitive.to_proto(resource.cloud_build_timeout):
res.cloud_build_timeout = Primitive.to_proto(resource.cloud_build_timeout)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionDeploymentCloudBuildOptions(
app_yaml_path=Primitive.from_proto(resource.app_yaml_path),
cloud_build_timeout=Primitive.from_proto(resource.cloud_build_timeout),
)
class VersionDeploymentCloudBuildOptionsArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [VersionDeploymentCloudBuildOptions.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [VersionDeploymentCloudBuildOptions.from_proto(i) for i in resources]
class VersionHealthCheck(object):
def __init__(
self,
disable_health_check: bool = None,
host: str = None,
healthy_threshold: int = None,
unhealthy_threshold: int = None,
restart_threshold: int = None,
check_interval: str = None,
timeout: str = None,
):
self.disable_health_check = disable_health_check
self.host = host
self.healthy_threshold = healthy_threshold
self.unhealthy_threshold = unhealthy_threshold
self.restart_threshold = restart_threshold
self.check_interval = check_interval
self.timeout = timeout
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionHealthCheck()
if Primitive.to_proto(resource.disable_health_check):
res.disable_health_check = Primitive.to_proto(resource.disable_health_check)
if Primitive.to_proto(resource.host):
res.host = Primitive.to_proto(resource.host)
if Primitive.to_proto(resource.healthy_threshold):
res.healthy_threshold = Primitive.to_proto(resource.healthy_threshold)
if Primitive.to_proto(resource.unhealthy_threshold):
res.unhealthy_threshold = Primitive.to_proto(resource.unhealthy_threshold)
if Primitive.to_proto(resource.restart_threshold):
res.restart_threshold = Primitive.to_proto(resource.restart_threshold)
if Primitive.to_proto(resource.check_interval):
res.check_interval = Primitive.to_proto(resource.check_interval)
if Primitive.to_proto(resource.timeout):
res.timeout = Primitive.to_proto(resource.timeout)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionHealthCheck(
disable_health_check=Primitive.from_proto(resource.disable_health_check),
host=Primitive.from_proto(resource.host),
healthy_threshold=Primitive.from_proto(resource.healthy_threshold),
unhealthy_threshold=Primitive.from_proto(resource.unhealthy_threshold),
restart_threshold=Primitive.from_proto(resource.restart_threshold),
check_interval=Primitive.from_proto(resource.check_interval),
timeout=Primitive.from_proto(resource.timeout),
)
class VersionHealthCheckArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [VersionHealthCheck.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [VersionHealthCheck.from_proto(i) for i in resources]
class VersionReadinessCheck(object):
def __init__(
self,
path: str = None,
host: str = None,
failure_threshold: int = None,
success_threshold: int = None,
check_interval: str = None,
timeout: str = None,
app_start_timeout: str = None,
):
self.path = path
self.host = host
self.failure_threshold = failure_threshold
self.success_threshold = success_threshold
self.check_interval = check_interval
self.timeout = timeout
self.app_start_timeout = app_start_timeout
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionReadinessCheck()
if Primitive.to_proto(resource.path):
res.path = Primitive.to_proto(resource.path)
if Primitive.to_proto(resource.host):
res.host = Primitive.to_proto(resource.host)
if Primitive.to_proto(resource.failure_threshold):
res.failure_threshold = Primitive.to_proto(resource.failure_threshold)
if Primitive.to_proto(resource.success_threshold):
res.success_threshold = Primitive.to_proto(resource.success_threshold)
if Primitive.to_proto(resource.check_interval):
res.check_interval = Primitive.to_proto(resource.check_interval)
if Primitive.to_proto(resource.timeout):
res.timeout = Primitive.to_proto(resource.timeout)
if Primitive.to_proto(resource.app_start_timeout):
res.app_start_timeout = Primitive.to_proto(resource.app_start_timeout)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionReadinessCheck(
path=Primitive.from_proto(resource.path),
host=Primitive.from_proto(resource.host),
failure_threshold=Primitive.from_proto(resource.failure_threshold),
success_threshold=Primitive.from_proto(resource.success_threshold),
check_interval=Primitive.from_proto(resource.check_interval),
timeout=Primitive.from_proto(resource.timeout),
app_start_timeout=Primitive.from_proto(resource.app_start_timeout),
)
class VersionReadinessCheckArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [VersionReadinessCheck.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [VersionReadinessCheck.from_proto(i) for i in resources]
class VersionLivenessCheck(object):
def __init__(
self,
path: str = None,
host: str = None,
failure_threshold: int = None,
success_threshold: int = None,
check_interval: str = None,
timeout: str = None,
initial_delay: str = None,
):
self.path = path
self.host = host
self.failure_threshold = failure_threshold
self.success_threshold = success_threshold
self.check_interval = check_interval
self.timeout = timeout
self.initial_delay = initial_delay
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionLivenessCheck()
if Primitive.to_proto(resource.path):
res.path = Primitive.to_proto(resource.path)
if Primitive.to_proto(resource.host):
res.host = Primitive.to_proto(resource.host)
if Primitive.to_proto(resource.failure_threshold):
res.failure_threshold = Primitive.to_proto(resource.failure_threshold)
if Primitive.to_proto(resource.success_threshold):
res.success_threshold = Primitive.to_proto(resource.success_threshold)
if Primitive.to_proto(resource.check_interval):
res.check_interval = Primitive.to_proto(resource.check_interval)
if Primitive.to_proto(resource.timeout):
res.timeout = Primitive.to_proto(resource.timeout)
if Primitive.to_proto(resource.initial_delay):
res.initial_delay = Primitive.to_proto(resource.initial_delay)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionLivenessCheck(
path=Primitive.from_proto(resource.path),
host=Primitive.from_proto(resource.host),
failure_threshold=Primitive.from_proto(resource.failure_threshold),
success_threshold=Primitive.from_proto(resource.success_threshold),
check_interval=Primitive.from_proto(resource.check_interval),
timeout=Primitive.from_proto(resource.timeout),
initial_delay=Primitive.from_proto(resource.initial_delay),
)
class VersionLivenessCheckArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [VersionLivenessCheck.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [VersionLivenessCheck.from_proto(i) for i in resources]
class VersionEntrypoint(object):
def __init__(self, shell: str = None):
self.shell = shell
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionEntrypoint()
if Primitive.to_proto(resource.shell):
res.shell = Primitive.to_proto(resource.shell)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionEntrypoint(shell=Primitive.from_proto(resource.shell),)
class VersionEntrypointArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [VersionEntrypoint.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [VersionEntrypoint.from_proto(i) for i in resources]
class VersionVPCAccessConnector(object):
def __init__(self, name: str = None):
self.name = name
@classmethod
def to_proto(self, resource):
if not resource:
return None
res = version_pb2.AppengineVersionVPCAccessConnector()
if Primitive.to_proto(resource.name):
res.name = Primitive.to_proto(resource.name)
return res
@classmethod
def from_proto(self, resource):
if not resource:
return None
return VersionVPCAccessConnector(name=Primitive.from_proto(resource.name),)
class VersionVPCAccessConnectorArray(object):
@classmethod
def to_proto(self, resources):
if not resources:
return resources
return [VersionVPCAccessConnector.to_proto(i) for i in resources]
@classmethod
def from_proto(self, resources):
return [VersionVPCAccessConnector.from_proto(i) for i in resources]
class VersionInboundServicesEnum(object):
@classmethod
def to_proto(self, resource):
if not resource:
return resource
return version_pb2.AppengineVersionInboundServicesEnum.Value(
"AppengineVersionInboundServicesEnum%s" % resource
)
@classmethod
def from_proto(self, resource):
if not resource:
return resource
return version_pb2.AppengineVersionInboundServicesEnum.Name(resource)[
len("AppengineVersionInboundServicesEnum") :
]
class VersionServingStatusEnum(object):
@classmethod
def to_proto(self, resource):
if not resource:
return resource
return version_pb2.AppengineVersionServingStatusEnum.Value(
"AppengineVersionServingStatusEnum%s" % resource
)
@classmethod
def from_proto(self, resource):
if not resource:
return resource
return version_pb2.AppengineVersionServingStatusEnum.Name(resource)[
len("AppengineVersionServingStatusEnum") :
]
class VersionHandlersSecurityLevelEnum(object):
@classmethod
def to_proto(self, resource):
if not resource:
return resource
return version_pb2.AppengineVersionHandlersSecurityLevelEnum.Value(
"AppengineVersionHandlersSecurityLevelEnum%s" % resource
)
@classmethod
def from_proto(self, resource):
if not resource:
return resource
return version_pb2.AppengineVersionHandlersSecurityLevelEnum.Name(resource)[
len("AppengineVersionHandlersSecurityLevelEnum") :
]
class VersionHandlersLoginEnum(object):
@classmethod
def to_proto(self, resource):
if not resource:
return resource
return version_pb2.AppengineVersionHandlersLoginEnum.Value(
"AppengineVersionHandlersLoginEnum%s" % resource
)
@classmethod
def from_proto(self, resource):
if not resource:
return resource
return version_pb2.AppengineVersionHandlersLoginEnum.Name(resource)[
len("AppengineVersionHandlersLoginEnum") :
]
class VersionHandlersAuthFailActionEnum(object):
@classmethod
def to_proto(self, resource):
if not resource:
return resource
return version_pb2.AppengineVersionHandlersAuthFailActionEnum.Value(
"AppengineVersionHandlersAuthFailActionEnum%s" % resource
)
@classmethod
def from_proto(self, resource):
if not resource:
return resource
return version_pb2.AppengineVersionHandlersAuthFailActionEnum.Name(resource)[
len("AppengineVersionHandlersAuthFailActionEnum") :
]
class VersionHandlersRedirectHttpResponseCodeEnum(object):
@classmethod
def to_proto(self, resource):
if not resource:
return resource
return version_pb2.AppengineVersionHandlersRedirectHttpResponseCodeEnum.Value(
"AppengineVersionHandlersRedirectHttpResponseCodeEnum%s" % resource
)
@classmethod
def from_proto(self, resource):
if not resource:
return resource
return version_pb2.AppengineVersionHandlersRedirectHttpResponseCodeEnum.Name(
resource
)[len("AppengineVersionHandlersRedirectHttpResponseCodeEnum") :]
class VersionErrorHandlersErrorCodeEnum(object):
@classmethod
def to_proto(self, resource):
if not resource:
return resource
return version_pb2.AppengineVersionErrorHandlersErrorCodeEnum.Value(
"AppengineVersionErrorHandlersErrorCodeEnum%s" % resource
)
@classmethod
def from_proto(self, resource):
if not resource:
return resource
return version_pb2.AppengineVersionErrorHandlersErrorCodeEnum.Name(resource)[
len("AppengineVersionErrorHandlersErrorCodeEnum") :
]
class VersionApiConfigAuthFailActionEnum(object):
@classmethod
def to_proto(self, resource):
if not resource:
return resource
return version_pb2.AppengineVersionApiConfigAuthFailActionEnum.Value(
"AppengineVersionApiConfigAuthFailActionEnum%s" % resource
)
@classmethod
def from_proto(self, resource):
if not resource:
return resource
return version_pb2.AppengineVersionApiConfigAuthFailActionEnum.Name(resource)[
len("AppengineVersionApiConfigAuthFailActionEnum") :
]
class VersionApiConfigLoginEnum(object):
@classmethod
def to_proto(self, resource):
if not resource:
return resource
return version_pb2.AppengineVersionApiConfigLoginEnum.Value(
"AppengineVersionApiConfigLoginEnum%s" % resource
)
@classmethod
def from_proto(self, resource):
if not resource:
return resource
return version_pb2.AppengineVersionApiConfigLoginEnum.Name(resource)[
len("AppengineVersionApiConfigLoginEnum") :
]
class VersionApiConfigSecurityLevelEnum(object):
@classmethod
def to_proto(self, resource):
if not resource:
return resource
return version_pb2.AppengineVersionApiConfigSecurityLevelEnum.Value(
"AppengineVersionApiConfigSecurityLevelEnum%s" % resource
)
@classmethod
def from_proto(self, resource):
if not resource:
return resource
return version_pb2.AppengineVersionApiConfigSecurityLevelEnum.Name(resource)[
len("AppengineVersionApiConfigSecurityLevelEnum") :
]
class Primitive(object):
@classmethod
def to_proto(self, s):
if not s:
return ""
return s
@classmethod
def from_proto(self, s):
return s