"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import sys

if sys.version_info >= (3, 8):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class K8SRuntimeInitializationConfig(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class EnvVarsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    AGENT_IMAGE_FIELD_NUMBER: builtins.int
    AUTH_TOKEN_FIELD_NUMBER: builtins.int
    USE_RESOURCE_DEFAULT_FIELD_NUMBER: builtins.int
    INTERACTION_SERVER_ADDRESS_FIELD_NUMBER: builtins.int
    ENV_VARS_FIELD_NUMBER: builtins.int
    AGENT_EXTERNALLY_MANAGED_FIELD_NUMBER: builtins.int
    agent_image: builtins.str
    auth_token: builtins.str
    use_resource_default: builtins.bool
    interaction_server_address: builtins.str
    @property
    def env_vars(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
        """Env vars, mainly used to pass in proxy information. This is generally supplied by customers."""
    agent_externally_managed: builtins.bool
    """The Prodvana agent lifecycle is handled by the user -- Prodvana will not install or update the agent."""
    def __init__(
        self,
        *,
        agent_image: builtins.str = ...,
        auth_token: builtins.str = ...,
        use_resource_default: builtins.bool = ...,
        interaction_server_address: builtins.str = ...,
        env_vars: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        agent_externally_managed: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["agent_externally_managed", b"agent_externally_managed", "agent_image", b"agent_image", "auth_token", b"auth_token", "env_vars", b"env_vars", "interaction_server_address", b"interaction_server_address", "use_resource_default", b"use_resource_default"]) -> None: ...

global___K8SRuntimeInitializationConfig = K8SRuntimeInitializationConfig

class RuntimeInitializationConfig(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    K8S_FIELD_NUMBER: builtins.int
    @property
    def k8s(self) -> global___K8SRuntimeInitializationConfig: ...
    def __init__(
        self,
        *,
        k8s: global___K8SRuntimeInitializationConfig | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["k8s", b"k8s", "runtime_specific", b"runtime_specific"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["k8s", b"k8s", "runtime_specific", b"runtime_specific"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["runtime_specific", b"runtime_specific"]) -> typing_extensions.Literal["k8s"] | None: ...

global___RuntimeInitializationConfig = RuntimeInitializationConfig

class ContainerOrchestrationRuntime(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class K8s(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        NAMESPACE_FIELD_NUMBER: builtins.int
        PVN_MANAGED_FIELD_NUMBER: builtins.int
        namespace: builtins.str
        """optionally set a custom namespace. If not set, Prodvana will create and manage the namespace.
        If set, the namespace *must* already exist and Prodvana will not try to create or delete it.
        """
        pvn_managed: builtins.bool
        """do not set this, this is used internally by Prodvana to keep track of if a namespace
        is managed by Prodvana or externally.
        """
        def __init__(
            self,
            *,
            namespace: builtins.str = ...,
            pvn_managed: builtins.bool = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["namespace", b"namespace", "pvn_managed", b"pvn_managed"]) -> None: ...

    class ECS(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        PREFIX_FIELD_NUMBER: builtins.int
        prefix: builtins.str
        def __init__(
            self,
            *,
            prefix: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["prefix", b"prefix"]) -> None: ...

    K8S_FIELD_NUMBER: builtins.int
    ECS_FIELD_NUMBER: builtins.int
    @property
    def k8s(self) -> global___ContainerOrchestrationRuntime.K8s: ...
    @property
    def ecs(self) -> global___ContainerOrchestrationRuntime.ECS: ...
    def __init__(
        self,
        *,
        k8s: global___ContainerOrchestrationRuntime.K8s | None = ...,
        ecs: global___ContainerOrchestrationRuntime.ECS | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["backend", b"backend", "ecs", b"ecs", "k8s", b"k8s"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["backend", b"backend", "ecs", b"ecs", "k8s", b"k8s"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["backend", b"backend"]) -> typing_extensions.Literal["k8s", "ecs"] | None: ...

global___ContainerOrchestrationRuntime = ContainerOrchestrationRuntime

class RuntimeExecutionConfig(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RUNTIME_FIELD_NUMBER: builtins.int
    CONTAINER_ORCHESTRATION_FIELD_NUMBER: builtins.int
    runtime: builtins.str
    @property
    def container_orchestration(self) -> global___ContainerOrchestrationRuntime: ...
    def __init__(
        self,
        *,
        runtime: builtins.str = ...,
        container_orchestration: global___ContainerOrchestrationRuntime | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["container_orchestration", b"container_orchestration", "type_oneof", b"type_oneof"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["container_orchestration", b"container_orchestration", "runtime", b"runtime", "type_oneof", b"type_oneof"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["type_oneof", b"type_oneof"]) -> typing_extensions.Literal["container_orchestration"] | None: ...

global___RuntimeExecutionConfig = RuntimeExecutionConfig
