"""
@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.internal.enum_type_wrapper
import google.protobuf.message
import prodvana.proto.prodvana.common_config.env_pb2
import prodvana.proto.prodvana.common_config.kubernetes_config_pb2
import prodvana.proto.prodvana.common_config.parameters_pb2
import prodvana.proto.prodvana.common_config.task_pb2
import prodvana.proto.prodvana.runtimes.runtimes_config_pb2
import sys
import typing

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _Type:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _TypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Type.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    UNKNOWN_TYPE: _Type.ValueType  # 0
    GLOBAL_USER_CREATED: _Type.ValueType  # 1
    EPHEMERAL: _Type.ValueType  # 2
    """one-off delivery extensions inlined into other configs"""

class Type(_Type, metaclass=_TypeEnumTypeWrapper): ...

UNKNOWN_TYPE: Type.ValueType  # 0
GLOBAL_USER_CREATED: Type.ValueType  # 1
EPHEMERAL: Type.ValueType  # 2
"""one-off delivery extensions inlined into other configs"""
global___Type = Type

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

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

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> prodvana.proto.prodvana.common_config.env_pb2.EnvValue: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: prodvana.proto.prodvana.common_config.env_pb2.EnvValue | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    NAME_FIELD_NUMBER: builtins.int
    TASK_CONFIG_FIELD_NUMBER: builtins.int
    KUBERNETES_CONFIG_FIELD_NUMBER: builtins.int
    PARAMETERS_FIELD_NUMBER: builtins.int
    ENV_FIELD_NUMBER: builtins.int
    name: builtins.str
    @property
    def task_config(self) -> prodvana.proto.prodvana.common_config.task_pb2.TaskConfig: ...
    @property
    def kubernetes_config(self) -> prodvana.proto.prodvana.common_config.kubernetes_config_pb2.KubernetesConfig: ...
    @property
    def parameters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[prodvana.proto.prodvana.common_config.parameters_pb2.ParameterDefinition]: ...
    @property
    def env(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, prodvana.proto.prodvana.common_config.env_pb2.EnvValue]:
        """optional env variables to inject and override from exec_config"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        task_config: prodvana.proto.prodvana.common_config.task_pb2.TaskConfig | None = ...,
        kubernetes_config: prodvana.proto.prodvana.common_config.kubernetes_config_pb2.KubernetesConfig | None = ...,
        parameters: collections.abc.Iterable[prodvana.proto.prodvana.common_config.parameters_pb2.ParameterDefinition] | None = ...,
        env: collections.abc.Mapping[builtins.str, prodvana.proto.prodvana.common_config.env_pb2.EnvValue] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["exec_config", b"exec_config", "kubernetes_config", b"kubernetes_config", "task_config", b"task_config"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["env", b"env", "exec_config", b"exec_config", "kubernetes_config", b"kubernetes_config", "name", b"name", "parameters", b"parameters", "task_config", b"task_config"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["exec_config", b"exec_config"]) -> typing_extensions.Literal["task_config", "kubernetes_config"] | None: ...

global___DeliveryExtensionConfig = DeliveryExtensionConfig

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

    NAME_FIELD_NUMBER: builtins.int
    PARAMETERS_FIELD_NUMBER: builtins.int
    name: builtins.str
    @property
    def parameters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[prodvana.proto.prodvana.common_config.parameters_pb2.ParameterValue]: ...
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        parameters: collections.abc.Iterable[prodvana.proto.prodvana.common_config.parameters_pb2.ParameterValue] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "parameters", b"parameters"]) -> None: ...

global___DeliveryExtensionInstanceRef = DeliveryExtensionInstanceRef

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

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

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> prodvana.proto.prodvana.common_config.env_pb2.EnvValue: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: prodvana.proto.prodvana.common_config.env_pb2.EnvValue | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    DEFINITION_FIELD_NUMBER: builtins.int
    RUNTIME_EXECUTION_FIELD_NUMBER: builtins.int
    ENV_FIELD_NUMBER: builtins.int
    PARAMETER_VALUES_FIELD_NUMBER: builtins.int
    @property
    def definition(self) -> global___DeliveryExtensionConfig: ...
    @property
    def runtime_execution(self) -> prodvana.proto.prodvana.runtimes.runtimes_config_pb2.RuntimeExecutionConfig: ...
    @property
    def env(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, prodvana.proto.prodvana.common_config.env_pb2.EnvValue]:
        """The compiled environment for this attachment's context, e.g.  Release Channel."""
    @property
    def parameter_values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[prodvana.proto.prodvana.common_config.parameters_pb2.ParameterValue]:
        """TODO(naphat) custom task lifecycle

        compiled parameter values
        """
    def __init__(
        self,
        *,
        definition: global___DeliveryExtensionConfig | None = ...,
        runtime_execution: prodvana.proto.prodvana.runtimes.runtimes_config_pb2.RuntimeExecutionConfig | None = ...,
        env: collections.abc.Mapping[builtins.str, prodvana.proto.prodvana.common_config.env_pb2.EnvValue] | None = ...,
        parameter_values: collections.abc.Iterable[prodvana.proto.prodvana.common_config.parameters_pb2.ParameterValue] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["definition", b"definition", "runtime_execution", b"runtime_execution"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["definition", b"definition", "env", b"env", "parameter_values", b"parameter_values", "runtime_execution", b"runtime_execution"]) -> None: ...

global___CompiledDeliveryExtensionInstanceConfig = CompiledDeliveryExtensionInstanceConfig
