"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.duration_pb2
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import prodvana.proto.prodvana.capability.capability_pb2
import prodvana.proto.prodvana.common_config.constants_pb2
import prodvana.proto.prodvana.common_config.env_pb2
import prodvana.proto.prodvana.common_config.helm_pb2
import prodvana.proto.prodvana.common_config.kubernetes_config_pb2
import prodvana.proto.prodvana.common_config.maturity_pb2
import prodvana.proto.prodvana.common_config.parameters_pb2
import prodvana.proto.prodvana.common_config.program_pb2
import prodvana.proto.prodvana.common_config.retry_pb2
import prodvana.proto.prodvana.common_config.task_pb2
import prodvana.proto.prodvana.delivery.delivery_config_pb2
import prodvana.proto.prodvana.delivery_extension.config_pb2
import prodvana.proto.prodvana.protection.attachments_pb2
import prodvana.proto.prodvana.protection.protection_reference_pb2
import prodvana.proto.prodvana.release_channel.release_channel_config_pb2
import prodvana.proto.prodvana.runtimes.runtimes_config_pb2
import prodvana.proto.prodvana.service.parameters_pb2
import prodvana.proto.prodvana.volumes.volumes_pb2
import prodvana.proto.prodvana.workflow.integration_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 ReplicasConfig(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FIXED_FIELD_NUMBER: builtins.int
    fixed: builtins.int
    """no validations, server side has defaults"""
    def __init__(
        self,
        *,
        fixed: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["config_oneof", b"config_oneof", "fixed", b"fixed"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["config_oneof", b"config_oneof", "fixed", b"fixed"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["config_oneof", b"config_oneof"]) -> typing_extensions.Literal["fixed"] | None: ...

global___ReplicasConfig = ReplicasConfig

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

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

        MIN_THRESHOLD_PERCENT_FIELD_NUMBER: builtins.int
        min_threshold_percent: builtins.float
        def __init__(
            self,
            *,
            min_threshold_percent: builtins.float = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["min_threshold_percent", b"min_threshold_percent"]) -> None: ...

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

        MAX_LATENCY_FIELD_NUMBER: builtins.int
        @property
        def max_latency(self) -> google.protobuf.duration_pb2.Duration: ...
        def __init__(
            self,
            *,
            max_latency: google.protobuf.duration_pb2.Duration | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["max_latency", b"max_latency"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["max_latency", b"max_latency"]) -> None: ...

    SUCCESS_RATE_FIELD_NUMBER: builtins.int
    LATENCY_P95_FIELD_NUMBER: builtins.int
    @property
    def success_rate(self) -> global___MetricAnalysis.SuccessRateConfig: ...
    @property
    def latency_p95(self) -> global___MetricAnalysis.LatencyConfig: ...
    def __init__(
        self,
        *,
        success_rate: global___MetricAnalysis.SuccessRateConfig | None = ...,
        latency_p95: global___MetricAnalysis.LatencyConfig | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["analysis_oneof", b"analysis_oneof", "latency_p95", b"latency_p95", "success_rate", b"success_rate"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["analysis_oneof", b"analysis_oneof", "latency_p95", b"latency_p95", "success_rate", b"success_rate"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["analysis_oneof", b"analysis_oneof"]) -> typing_extensions.Literal["success_rate", "latency_p95"] | None: ...

global___MetricAnalysis = MetricAnalysis

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

    INDIVIDUAL_STAGE_DEADLINE_FIELD_NUMBER: builtins.int
    AUTOMATED_TESTING_DURATION_FIELD_NUMBER: builtins.int
    METRICS_ANALYSIS_FIELD_NUMBER: builtins.int
    MANUAL_APPROVAL_FIELD_NUMBER: builtins.int
    CHECK_INTERVAL_FIELD_NUMBER: builtins.int
    FAILURE_THRESHOLD_FIELD_NUMBER: builtins.int
    @property
    def individual_stage_deadline(self) -> google.protobuf.duration_pb2.Duration:
        """deadline in each stage before the push is rolled back. Includes the time it takes for pods to be healthy. Defaults to 10 minutes."""
    @property
    def automated_testing_duration(self) -> google.protobuf.duration_pb2.Duration:
        """duration of the automated testing phase, before manual approval. Defaults to 30m."""
    @property
    def metrics_analysis(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MetricAnalysis]: ...
    manual_approval: builtins.bool
    @property
    def check_interval(self) -> google.protobuf.duration_pb2.Duration:
        """advanced settings that do not typically need to be set. Exposed mainly for testing purposes.
        defaults to 30s
        """
    failure_threshold: builtins.int
    """defaults to 5"""
    def __init__(
        self,
        *,
        individual_stage_deadline: google.protobuf.duration_pb2.Duration | None = ...,
        automated_testing_duration: google.protobuf.duration_pb2.Duration | None = ...,
        metrics_analysis: collections.abc.Iterable[global___MetricAnalysis] | None = ...,
        manual_approval: builtins.bool = ...,
        check_interval: google.protobuf.duration_pb2.Duration | None = ...,
        failure_threshold: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["automated_testing_duration", b"automated_testing_duration", "check_interval", b"check_interval", "individual_stage_deadline", b"individual_stage_deadline"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["automated_testing_duration", b"automated_testing_duration", "check_interval", b"check_interval", "failure_threshold", b"failure_threshold", "individual_stage_deadline", b"individual_stage_deadline", "manual_approval", b"manual_approval", "metrics_analysis", b"metrics_analysis"]) -> None: ...

global___ReleaseStrategyConfig = ReleaseStrategyConfig

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

    RAW_SECRET_FIELD_NUMBER: builtins.int
    SECRET_FIELD_NUMBER: builtins.int
    raw_secret: builtins.str
    """Raw secret value to be used for user-editable YAML and RPC calls."""
    @property
    def secret(self) -> prodvana.proto.prodvana.common_config.env_pb2.Secret:
        """Externally stored secret."""
    def __init__(
        self,
        *,
        raw_secret: builtins.str = ...,
        secret: prodvana.proto.prodvana.common_config.env_pb2.Secret | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["raw_secret", b"raw_secret", "secret", b"secret", "tls_secret", b"tls_secret"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["raw_secret", b"raw_secret", "secret", b"secret", "tls_secret", b"tls_secret"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["tls_secret", b"tls_secret"]) -> typing_extensions.Literal["raw_secret", "secret"] | None: ...

global___TLSSecret = TLSSecret

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

    TLS_CERT_FIELD_NUMBER: builtins.int
    TLS_KEY_FIELD_NUMBER: builtins.int
    @property
    def tls_cert(self) -> global___TLSSecret: ...
    @property
    def tls_key(self) -> global___TLSSecret: ...
    def __init__(
        self,
        *,
        tls_cert: global___TLSSecret | None = ...,
        tls_key: global___TLSSecret | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["tls_cert", b"tls_cert", "tls_key", b"tls_key"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["tls_cert", b"tls_cert", "tls_key", b"tls_key"]) -> None: ...

global___TLSCertificate = TLSCertificate

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

    TLS_FIELD_NUMBER: builtins.int
    AWS_ACM_CERT_FIELD_NUMBER: builtins.int
    @property
    def tls(self) -> global___TLSCertificate: ...
    aws_acm_cert: builtins.str
    def __init__(
        self,
        *,
        tls: global___TLSCertificate | None = ...,
        aws_acm_cert: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["aws_acm_cert", b"aws_acm_cert", "certificate", b"certificate", "tls", b"tls"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["aws_acm_cert", b"aws_acm_cert", "certificate", b"certificate", "tls", b"tls"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["certificate", b"certificate"]) -> typing_extensions.Literal["tls", "aws_acm_cert"] | None: ...

global___Certificate = Certificate

class PerReleaseChannelConfig(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: ...

    RELEASE_CHANNEL_FIELD_NUMBER: builtins.int
    CUSTOM_HOSTNAMES_FIELD_NUMBER: builtins.int
    PROGRAMS_FIELD_NUMBER: builtins.int
    CERT_FIELD_NUMBER: builtins.int
    DELIVERY_CONFIG_FIELD_NUMBER: builtins.int
    VOLUMES_FIELD_NUMBER: builtins.int
    REPLICAS_FIELD_NUMBER: builtins.int
    PRE_PUSH_TASKS_FIELD_NUMBER: builtins.int
    DELIVERY_EXTENSIONS_FIELD_NUMBER: builtins.int
    RUNTIME_SPECIFIC_FIELD_NUMBER: builtins.int
    RUNTIME_CONNECTION_FIELD_NUMBER: builtins.int
    RUNTIME_EXTENSION_FIELD_NUMBER: builtins.int
    KUBERNETES_CONFIG_FIELD_NUMBER: builtins.int
    EXTERNAL_CONFIG_FIELD_NUMBER: builtins.int
    HELM_FIELD_NUMBER: builtins.int
    ENV_FIELD_NUMBER: builtins.int
    CONSTANTS_FIELD_NUMBER: builtins.int
    PROTECTIONS_FIELD_NUMBER: builtins.int
    release_channel: builtins.str
    @property
    def custom_hostnames(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def programs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[prodvana.proto.prodvana.common_config.program_pb2.PerReleaseChannelProgramConfig]: ...
    @property
    def cert(self) -> global___Certificate: ...
    @property
    def delivery_config(self) -> prodvana.proto.prodvana.delivery.delivery_config_pb2.DeliveryConfig: ...
    @property
    def volumes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[prodvana.proto.prodvana.volumes.volumes_pb2.Volume]: ...
    @property
    def replicas(self) -> global___ReplicasConfig: ...
    @property
    def pre_push_tasks(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TaskConfig]:
        """DEPRECATED: Replace with delivery_extensions once its implemented."""
    @property
    def delivery_extensions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DeliveryExtensionConfig]: ...
    @property
    def runtime_specific(self) -> global___RuntimeSpecificConfig: ...
    runtime_connection: builtins.str
    """which runtime connection to use in each release channel.
    optional if only one runtime makes sense for the service config.
    """
    @property
    def runtime_extension(self) -> global___RuntimeExtensionConfig: ...
    @property
    def kubernetes_config(self) -> prodvana.proto.prodvana.common_config.kubernetes_config_pb2.KubernetesConfig: ...
    @property
    def external_config(self) -> prodvana.proto.prodvana.common_config.kubernetes_config_pb2.KubernetesConfig:
        """deprecated, pass this as kubernetes_config instead"""
    @property
    def helm(self) -> prodvana.proto.prodvana.common_config.helm_pb2.HelmConfig: ...
    @property
    def env(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, prodvana.proto.prodvana.common_config.env_pb2.EnvValue]:
        """Additional env variables that are injected to the service.
        This can be useful for injecting and/or overriding env variables from release channel
        configs for Kubernetes and runtime extension configs.
        Not supported for helm configs.
        """
    @property
    def constants(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[prodvana.proto.prodvana.common_config.constants_pb2.Constant]:
        """constants made available in template substitutions"""
    @property
    def protections(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[prodvana.proto.prodvana.protection.attachments_pb2.ProtectionAttachmentConfig]: ...
    def __init__(
        self,
        *,
        release_channel: builtins.str = ...,
        custom_hostnames: collections.abc.Iterable[builtins.str] | None = ...,
        programs: collections.abc.Iterable[prodvana.proto.prodvana.common_config.program_pb2.PerReleaseChannelProgramConfig] | None = ...,
        cert: global___Certificate | None = ...,
        delivery_config: prodvana.proto.prodvana.delivery.delivery_config_pb2.DeliveryConfig | None = ...,
        volumes: collections.abc.Iterable[prodvana.proto.prodvana.volumes.volumes_pb2.Volume] | None = ...,
        replicas: global___ReplicasConfig | None = ...,
        pre_push_tasks: collections.abc.Iterable[global___TaskConfig] | None = ...,
        delivery_extensions: collections.abc.Iterable[global___DeliveryExtensionConfig] | None = ...,
        runtime_specific: global___RuntimeSpecificConfig | None = ...,
        runtime_connection: builtins.str = ...,
        runtime_extension: global___RuntimeExtensionConfig | None = ...,
        kubernetes_config: prodvana.proto.prodvana.common_config.kubernetes_config_pb2.KubernetesConfig | None = ...,
        external_config: prodvana.proto.prodvana.common_config.kubernetes_config_pb2.KubernetesConfig | None = ...,
        helm: prodvana.proto.prodvana.common_config.helm_pb2.HelmConfig | None = ...,
        env: collections.abc.Mapping[builtins.str, prodvana.proto.prodvana.common_config.env_pb2.EnvValue] | None = ...,
        constants: collections.abc.Iterable[prodvana.proto.prodvana.common_config.constants_pb2.Constant] | None = ...,
        protections: collections.abc.Iterable[prodvana.proto.prodvana.protection.attachments_pb2.ProtectionAttachmentConfig] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["cert", b"cert", "config_oneof", b"config_oneof", "delivery_config", b"delivery_config", "external_config", b"external_config", "helm", b"helm", "kubernetes_config", b"kubernetes_config", "replicas", b"replicas", "runtime_extension", b"runtime_extension", "runtime_specific", b"runtime_specific"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["cert", b"cert", "config_oneof", b"config_oneof", "constants", b"constants", "custom_hostnames", b"custom_hostnames", "delivery_config", b"delivery_config", "delivery_extensions", b"delivery_extensions", "env", b"env", "external_config", b"external_config", "helm", b"helm", "kubernetes_config", b"kubernetes_config", "pre_push_tasks", b"pre_push_tasks", "programs", b"programs", "protections", b"protections", "release_channel", b"release_channel", "replicas", b"replicas", "runtime_connection", b"runtime_connection", "runtime_extension", b"runtime_extension", "runtime_specific", b"runtime_specific", "volumes", b"volumes"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["config_oneof", b"config_oneof"]) -> typing_extensions.Literal["runtime_extension", "kubernetes_config", "external_config", "helm"] | None: ...

global___PerReleaseChannelConfig = PerReleaseChannelConfig

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

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

global___CapabilityReference = CapabilityReference

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

    CAPABILITY_FIELD_NUMBER: builtins.int
    @property
    def capability(self) -> prodvana.proto.prodvana.capability.capability_pb2.CapabilityConfig: ...
    def __init__(
        self,
        *,
        capability: prodvana.proto.prodvana.capability.capability_pb2.CapabilityConfig | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["capability", b"capability"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["capability", b"capability"]) -> None: ...

global___CompiledCapabilityConfig = CompiledCapabilityConfig

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

    NAME_FIELD_NUMBER: builtins.int
    name: builtins.str
    def __init__(
        self,
        *,
        name: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["name", b"name", "ref", b"ref"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "ref", b"ref"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["ref", b"ref"]) -> typing_extensions.Literal["name"] | None: ...

global___ProgramReference = ProgramReference

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

    RELEASE_CHANNEL_FIELD_NUMBER: builtins.int
    release_channel: builtins.str
    def __init__(
        self,
        *,
        release_channel: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["ref", b"ref", "release_channel", b"release_channel"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["ref", b"ref", "release_channel", b"release_channel"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["ref", b"ref"]) -> typing_extensions.Literal["release_channel"] | None: ...

global___TaskReference = TaskReference

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

    PROGRAM_FIELD_NUMBER: builtins.int
    BASE_PROGRAM_FIELD_NUMBER: builtins.int
    RETRY_CONFIG_FIELD_NUMBER: builtins.int
    REF_FIELD_NUMBER: builtins.int
    @property
    def program(self) -> prodvana.proto.prodvana.common_config.program_pb2.ProgramConfig: ...
    @property
    def base_program(self) -> global___ProgramReference:
        """optional base program to take configs from. If specified, `program` field will act
        like an override instead.
        """
    @property
    def retry_config(self) -> prodvana.proto.prodvana.common_config.retry_pb2.RetryConfig:
        """if not set, the task will not be retried once it starts executing once."""
    @property
    def ref(self) -> global___TaskReference:
        """Instead of defining a new task, reference an existing custom task and use that. This is meant
        to be used in conjunection with per_release_channel to allow multiple release channels to use
        a single custom task. If set, the program definition is ignored except for program name.
        """
    def __init__(
        self,
        *,
        program: prodvana.proto.prodvana.common_config.program_pb2.ProgramConfig | None = ...,
        base_program: global___ProgramReference | None = ...,
        retry_config: prodvana.proto.prodvana.common_config.retry_pb2.RetryConfig | None = ...,
        ref: global___TaskReference | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["base_program", b"base_program", "program", b"program", "ref", b"ref", "retry_config", b"retry_config"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["base_program", b"base_program", "program", b"program", "ref", b"ref", "retry_config", b"retry_config"]) -> None: ...

global___TaskConfig = TaskConfig

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

    LIFECYCLE_FIELD_NUMBER: builtins.int
    ATTACHMENT_ID_FIELD_NUMBER: builtins.int
    @property
    def lifecycle(self) -> prodvana.proto.prodvana.protection.protection_reference_pb2.ProtectionLifecycle: ...
    attachment_id: builtins.str
    def __init__(
        self,
        *,
        lifecycle: prodvana.proto.prodvana.protection.protection_reference_pb2.ProtectionLifecycle | None = ...,
        attachment_id: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["lifecycle", b"lifecycle"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["attachment_id", b"attachment_id", "lifecycle", b"lifecycle"]) -> None: ...

global___ProtectionLink = ProtectionLink

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

    INLINED_FIELD_NUMBER: builtins.int
    INSTANCE_FIELD_NUMBER: builtins.int
    REF_FIELD_NUMBER: builtins.int
    LIFECYCLE_FIELD_NUMBER: builtins.int
    @property
    def inlined(self) -> prodvana.proto.prodvana.delivery_extension.config_pb2.DeliveryExtensionConfig:
        """Inline definition of a delivery extension."""
    instance: builtins.str
    """A delivery instance defined in this service config."""
    @property
    def ref(self) -> prodvana.proto.prodvana.delivery_extension.config_pb2.DeliveryExtensionInstanceRef:
        """Reference to a delivery extension defined externally."""
    lifecycle: prodvana.proto.prodvana.common_config.task_pb2.TaskLifecycle.ValueType
    def __init__(
        self,
        *,
        inlined: prodvana.proto.prodvana.delivery_extension.config_pb2.DeliveryExtensionConfig | None = ...,
        instance: builtins.str = ...,
        ref: prodvana.proto.prodvana.delivery_extension.config_pb2.DeliveryExtensionInstanceRef | None = ...,
        lifecycle: prodvana.proto.prodvana.common_config.task_pb2.TaskLifecycle.ValueType = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["definition", b"definition", "inlined", b"inlined", "instance", b"instance", "ref", b"ref"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["definition", b"definition", "inlined", b"inlined", "instance", b"instance", "lifecycle", b"lifecycle", "ref", b"ref"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["definition", b"definition"]) -> typing_extensions.Literal["inlined", "instance", "ref"] | None: ...

global___DeliveryExtensionConfig = DeliveryExtensionConfig

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

    INLINED_FIELD_NUMBER: builtins.int
    REF_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    LIFECYCLE_FIELD_NUMBER: builtins.int
    @property
    def inlined(self) -> prodvana.proto.prodvana.delivery_extension.config_pb2.DeliveryExtensionConfig:
        """Inline definition of the delivery extension."""
    @property
    def ref(self) -> prodvana.proto.prodvana.delivery_extension.config_pb2.DeliveryExtensionInstanceRef:
        """Reference to a delivery extension defined externally."""
    name: builtins.str
    lifecycle: prodvana.proto.prodvana.common_config.task_pb2.TaskLifecycle.ValueType
    def __init__(
        self,
        *,
        inlined: prodvana.proto.prodvana.delivery_extension.config_pb2.DeliveryExtensionConfig | None = ...,
        ref: prodvana.proto.prodvana.delivery_extension.config_pb2.DeliveryExtensionInstanceRef | None = ...,
        name: builtins.str = ...,
        lifecycle: prodvana.proto.prodvana.common_config.task_pb2.TaskLifecycle.ValueType = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["definition", b"definition", "inlined", b"inlined", "ref", b"ref"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["definition", b"definition", "inlined", b"inlined", "lifecycle", b"lifecycle", "name", b"name", "ref", b"ref"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["definition", b"definition"]) -> typing_extensions.Literal["inlined", "ref"] | None: ...

global___DeliveryExtensionInstance = DeliveryExtensionInstance

class RuntimeSpecificConfig(google.protobuf.message.Message):
    """RuntimeSpecificConfig contains Service level configuration options that only make sense for a
    specific Runtime type. Configuration added here should only apply to a single Service; if the
    Runtime specific configuration relates to all services, it should be configured as at the
    Runtime cluster level (or as a runtime extension).
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

        class ServiceAnnotationsEntry(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: ...

        SERVICE_ANNOTATIONS_FIELD_NUMBER: builtins.int
        @property
        def service_annotations(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
            """Annotations to add to the Kubernetes Service object"""
        def __init__(
            self,
            *,
            service_annotations: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["service_annotations", b"service_annotations"]) -> None: ...

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

global___RuntimeSpecificConfig = RuntimeSpecificConfig

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

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

global___RuntimeExtensionConfig = RuntimeExtensionConfig

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

    DISABLED_FIELD_NUMBER: builtins.int
    disabled: builtins.bool
    def __init__(
        self,
        *,
        disabled: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["disabled", b"disabled"]) -> None: ...

global___AutoRollbackConfig = AutoRollbackConfig

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

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

    class _ParametersAutogenEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[ServiceConfig._ParametersAutogen.ValueType], builtins.type):  # noqa: F821
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        UNKNOWN: ServiceConfig._ParametersAutogen.ValueType  # 0
        NONE: ServiceConfig._ParametersAutogen.ValueType  # 1
        """no autogen"""
        IMAGE: ServiceConfig._ParametersAutogen.ValueType  # 2
        """autogen one parameter per program for the image"""
        IMAGE_AND_REPLICAS: ServiceConfig._ParametersAutogen.ValueType  # 3
        """IMAGE + autogen a parameter for replicas count"""

    class ParametersAutogen(_ParametersAutogen, metaclass=_ParametersAutogenEnumTypeWrapper): ...
    UNKNOWN: ServiceConfig.ParametersAutogen.ValueType  # 0
    NONE: ServiceConfig.ParametersAutogen.ValueType  # 1
    """no autogen"""
    IMAGE: ServiceConfig.ParametersAutogen.ValueType  # 2
    """autogen one parameter per program for the image"""
    IMAGE_AND_REPLICAS: ServiceConfig.ParametersAutogen.ValueType  # 3
    """IMAGE + autogen a parameter for replicas count"""

    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
    APPLICATION_FIELD_NUMBER: builtins.int
    PROGRAMS_FIELD_NUMBER: builtins.int
    REPLICAS_FIELD_NUMBER: builtins.int
    RELEASE_STRATEGY_FIELD_NUMBER: builtins.int
    PER_RELEASE_CHANNEL_FIELD_NUMBER: builtins.int
    CAPABILITIES_FIELD_NUMBER: builtins.int
    DELIVERY_CONFIG_FIELD_NUMBER: builtins.int
    VOLUMES_FIELD_NUMBER: builtins.int
    DEPLOY_ANNOTATIONS_FIELD_NUMBER: builtins.int
    PRE_PUSH_TASKS_FIELD_NUMBER: builtins.int
    DELIVERY_EXTENSIONS_FIELD_NUMBER: builtins.int
    DELIVERY_EXTENSION_INSTANCES_FIELD_NUMBER: builtins.int
    RUNTIME_SPECIFIC_FIELD_NUMBER: builtins.int
    RUNTIME_CONNECTION_FIELD_NUMBER: builtins.int
    PARAMETERS_FIELD_NUMBER: builtins.int
    PARAMETER_VALUES_FIELD_NUMBER: builtins.int
    CONSTANTS_FIELD_NUMBER: builtins.int
    PROGRESS_DEADLINE_FIELD_NUMBER: builtins.int
    RUNTIME_EXTENSION_FIELD_NUMBER: builtins.int
    KUBERNETES_CONFIG_FIELD_NUMBER: builtins.int
    EXTERNAL_CONFIG_FIELD_NUMBER: builtins.int
    HELM_FIELD_NUMBER: builtins.int
    PARAMETERS_AUTOGEN_FIELD_NUMBER: builtins.int
    AUTO_ROLLBACK_FIELD_NUMBER: builtins.int
    NO_CLEANUP_ON_DELETE_FIELD_NUMBER: builtins.int
    ENV_FIELD_NUMBER: builtins.int
    ASYNC_SET_DESIRED_STATE_FIELD_NUMBER: builtins.int
    name: builtins.str
    application: builtins.str
    @property
    def programs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[prodvana.proto.prodvana.common_config.program_pb2.ProgramConfig]: ...
    @property
    def replicas(self) -> global___ReplicasConfig: ...
    @property
    def release_strategy(self) -> global___ReleaseStrategyConfig: ...
    @property
    def per_release_channel(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PerReleaseChannelConfig]: ...
    @property
    def capabilities(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___CapabilityReference]:
        """deprecated"""
    @property
    def delivery_config(self) -> prodvana.proto.prodvana.delivery.delivery_config_pb2.DeliveryConfig: ...
    @property
    def volumes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[prodvana.proto.prodvana.volumes.volumes_pb2.Volume]: ...
    @property
    def deploy_annotations(self) -> prodvana.proto.prodvana.workflow.integration_config_pb2.AnnotationsConfig: ...
    @property
    def pre_push_tasks(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TaskConfig]:
        """DEPRECATED: Replace with delivery_extensions"""
    @property
    def delivery_extensions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DeliveryExtensionConfig]: ...
    @property
    def delivery_extension_instances(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DeliveryExtensionInstance]: ...
    @property
    def runtime_specific(self) -> global___RuntimeSpecificConfig: ...
    runtime_connection: builtins.str
    """which runtime connection to use in each release channel.
    optional if only one runtime makes sense for the service config.
    """
    @property
    def parameters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[prodvana.proto.prodvana.common_config.parameters_pb2.ParameterDefinition]: ...
    @property
    def parameter_values(self) -> prodvana.proto.prodvana.service.parameters_pb2.ServiceParameterValues:
        """only valid to set in compiled configs by Prodvana"""
    @property
    def constants(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[prodvana.proto.prodvana.common_config.constants_pb2.Constant]:
        """constants made available in template substitutions"""
    @property
    def progress_deadline(self) -> google.protobuf.duration_pb2.Duration:
        """how long to wait before marking deployment as failed"""
    @property
    def runtime_extension(self) -> global___RuntimeExtensionConfig: ...
    @property
    def kubernetes_config(self) -> prodvana.proto.prodvana.common_config.kubernetes_config_pb2.KubernetesConfig: ...
    @property
    def external_config(self) -> prodvana.proto.prodvana.common_config.kubernetes_config_pb2.KubernetesConfig:
        """deprecated, pass this as kubernetes_config instead"""
    @property
    def helm(self) -> prodvana.proto.prodvana.common_config.helm_pb2.HelmConfig: ...
    parameters_autogen: global___ServiceConfig.ParametersAutogen.ValueType
    """How to autogenerate parameters, defaults to IMAGE. Ignored for Kubernetes or Helm configs."""
    @property
    def auto_rollback(self) -> global___AutoRollbackConfig: ...
    no_cleanup_on_delete: builtins.bool
    """if set, do not attempt to delete the underlying runtime objects when deleting a service"""
    @property
    def env(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, prodvana.proto.prodvana.common_config.env_pb2.EnvValue]:
        """Additional env variables that are injected to the service.
        This can be useful for injecting and/or overriding env variables from release channel
        configs for Kubernetes and runtime extension configs.
        Not supported for helm configs.
        """
    async_set_desired_state: builtins.bool
    """internal use"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        application: builtins.str = ...,
        programs: collections.abc.Iterable[prodvana.proto.prodvana.common_config.program_pb2.ProgramConfig] | None = ...,
        replicas: global___ReplicasConfig | None = ...,
        release_strategy: global___ReleaseStrategyConfig | None = ...,
        per_release_channel: collections.abc.Iterable[global___PerReleaseChannelConfig] | None = ...,
        capabilities: collections.abc.Iterable[global___CapabilityReference] | None = ...,
        delivery_config: prodvana.proto.prodvana.delivery.delivery_config_pb2.DeliveryConfig | None = ...,
        volumes: collections.abc.Iterable[prodvana.proto.prodvana.volumes.volumes_pb2.Volume] | None = ...,
        deploy_annotations: prodvana.proto.prodvana.workflow.integration_config_pb2.AnnotationsConfig | None = ...,
        pre_push_tasks: collections.abc.Iterable[global___TaskConfig] | None = ...,
        delivery_extensions: collections.abc.Iterable[global___DeliveryExtensionConfig] | None = ...,
        delivery_extension_instances: collections.abc.Iterable[global___DeliveryExtensionInstance] | None = ...,
        runtime_specific: global___RuntimeSpecificConfig | None = ...,
        runtime_connection: builtins.str = ...,
        parameters: collections.abc.Iterable[prodvana.proto.prodvana.common_config.parameters_pb2.ParameterDefinition] | None = ...,
        parameter_values: prodvana.proto.prodvana.service.parameters_pb2.ServiceParameterValues | None = ...,
        constants: collections.abc.Iterable[prodvana.proto.prodvana.common_config.constants_pb2.Constant] | None = ...,
        progress_deadline: google.protobuf.duration_pb2.Duration | None = ...,
        runtime_extension: global___RuntimeExtensionConfig | None = ...,
        kubernetes_config: prodvana.proto.prodvana.common_config.kubernetes_config_pb2.KubernetesConfig | None = ...,
        external_config: prodvana.proto.prodvana.common_config.kubernetes_config_pb2.KubernetesConfig | None = ...,
        helm: prodvana.proto.prodvana.common_config.helm_pb2.HelmConfig | None = ...,
        parameters_autogen: global___ServiceConfig.ParametersAutogen.ValueType = ...,
        auto_rollback: global___AutoRollbackConfig | None = ...,
        no_cleanup_on_delete: builtins.bool = ...,
        env: collections.abc.Mapping[builtins.str, prodvana.proto.prodvana.common_config.env_pb2.EnvValue] | None = ...,
        async_set_desired_state: builtins.bool = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["auto_rollback", b"auto_rollback", "config_oneof", b"config_oneof", "delivery_config", b"delivery_config", "deploy_annotations", b"deploy_annotations", "external_config", b"external_config", "helm", b"helm", "kubernetes_config", b"kubernetes_config", "parameter_values", b"parameter_values", "progress_deadline", b"progress_deadline", "release_strategy", b"release_strategy", "replicas", b"replicas", "runtime_extension", b"runtime_extension", "runtime_specific", b"runtime_specific"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["application", b"application", "async_set_desired_state", b"async_set_desired_state", "auto_rollback", b"auto_rollback", "capabilities", b"capabilities", "config_oneof", b"config_oneof", "constants", b"constants", "delivery_config", b"delivery_config", "delivery_extension_instances", b"delivery_extension_instances", "delivery_extensions", b"delivery_extensions", "deploy_annotations", b"deploy_annotations", "env", b"env", "external_config", b"external_config", "helm", b"helm", "kubernetes_config", b"kubernetes_config", "name", b"name", "no_cleanup_on_delete", b"no_cleanup_on_delete", "parameter_values", b"parameter_values", "parameters", b"parameters", "parameters_autogen", b"parameters_autogen", "per_release_channel", b"per_release_channel", "pre_push_tasks", b"pre_push_tasks", "programs", b"programs", "progress_deadline", b"progress_deadline", "release_strategy", b"release_strategy", "replicas", b"replicas", "runtime_connection", b"runtime_connection", "runtime_extension", b"runtime_extension", "runtime_specific", b"runtime_specific", "volumes", b"volumes"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["config_oneof", b"config_oneof"]) -> typing_extensions.Literal["runtime_extension", "kubernetes_config", "external_config", "helm"] | None: ...

global___ServiceConfig = ServiceConfig

class CompiledServiceInstanceConfig(google.protobuf.message.Message):
    """a compiled version of ServiceConfig specific to a service instance, with release-channel configs applied"""

    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: ...

    SERVICE_FIELD_NUMBER: builtins.int
    APPLICATION_FIELD_NUMBER: builtins.int
    RELEASE_CHANNEL_FIELD_NUMBER: builtins.int
    PROGRAMS_FIELD_NUMBER: builtins.int
    REPLICAS_FIELD_NUMBER: builtins.int
    MATURITY_FIELD_NUMBER: builtins.int
    RELEASE_STRATEGY_FIELD_NUMBER: builtins.int
    CUSTOM_HOSTNAMES_FIELD_NUMBER: builtins.int
    CERT_FIELD_NUMBER: builtins.int
    RUNTIME_FIELD_NUMBER: builtins.int
    RUNTIME_EXECUTION_FIELD_NUMBER: builtins.int
    CAPABILITIES_FIELD_NUMBER: builtins.int
    DELIVERY_CONFIG_FIELD_NUMBER: builtins.int
    VOLUMES_FIELD_NUMBER: builtins.int
    DEPLOY_ANNOTATIONS_FIELD_NUMBER: builtins.int
    PRE_PUSH_TASKS_FIELD_NUMBER: builtins.int
    DELIVERY_EXTENSIONS_FIELD_NUMBER: builtins.int
    DELIVERY_EXTENSION_INSTANCES_FIELD_NUMBER: builtins.int
    RUNTIME_SPECIFIC_FIELD_NUMBER: builtins.int
    PARAMETERS_FIELD_NUMBER: builtins.int
    PARAMETER_VALUES_FIELD_NUMBER: builtins.int
    CONSTANTS_FIELD_NUMBER: builtins.int
    PROGRESS_DEADLINE_FIELD_NUMBER: builtins.int
    RUNTIME_EXTENSION_FIELD_NUMBER: builtins.int
    KUBERNETES_CONFIG_FIELD_NUMBER: builtins.int
    HELM_FIELD_NUMBER: builtins.int
    ENV_FIELD_NUMBER: builtins.int
    NO_CLEANUP_ON_DELETE_FIELD_NUMBER: builtins.int
    PROTECTIONS_FIELD_NUMBER: builtins.int
    service: builtins.str
    application: builtins.str
    release_channel: builtins.str
    @property
    def programs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[prodvana.proto.prodvana.common_config.program_pb2.ProgramConfig]: ...
    @property
    def replicas(self) -> global___ReplicasConfig: ...
    maturity: prodvana.proto.prodvana.common_config.maturity_pb2.Maturity.ValueType
    @property
    def release_strategy(self) -> global___ReleaseStrategyConfig: ...
    @property
    def custom_hostnames(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def cert(self) -> global___Certificate: ...
    @property
    def runtime(self) -> prodvana.proto.prodvana.release_channel.release_channel_config_pb2.ReleaseChannelRuntimeConfig: ...
    @property
    def runtime_execution(self) -> prodvana.proto.prodvana.runtimes.runtimes_config_pb2.RuntimeExecutionConfig: ...
    @property
    def capabilities(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___CompiledCapabilityConfig]: ...
    @property
    def delivery_config(self) -> prodvana.proto.prodvana.delivery.delivery_config_pb2.DeliveryConfig: ...
    @property
    def volumes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[prodvana.proto.prodvana.volumes.volumes_pb2.Volume]: ...
    @property
    def deploy_annotations(self) -> prodvana.proto.prodvana.workflow.integration_config_pb2.AnnotationsConfig: ...
    @property
    def pre_push_tasks(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TaskConfig]:
        """DEPRECATED: Replace with delivery_extensions once its implemented."""
    @property
    def delivery_extensions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DeliveryExtensionConfig]: ...
    @property
    def delivery_extension_instances(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DeliveryExtensionInstance]: ...
    @property
    def runtime_specific(self) -> global___RuntimeSpecificConfig: ...
    @property
    def parameters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[prodvana.proto.prodvana.common_config.parameters_pb2.ParameterDefinition]: ...
    @property
    def parameter_values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[prodvana.proto.prodvana.common_config.parameters_pb2.ParameterValue]: ...
    @property
    def constants(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[prodvana.proto.prodvana.common_config.constants_pb2.Constant]:
        """constants made available in template substitutions"""
    @property
    def progress_deadline(self) -> google.protobuf.duration_pb2.Duration:
        """how long to wait before marking deployment as failed"""
    @property
    def runtime_extension(self) -> global___RuntimeExtensionConfig: ...
    @property
    def kubernetes_config(self) -> prodvana.proto.prodvana.common_config.kubernetes_config_pb2.KubernetesConfig: ...
    @property
    def helm(self) -> prodvana.proto.prodvana.common_config.helm_pb2.HelmConfig: ...
    @property
    def env(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, prodvana.proto.prodvana.common_config.env_pb2.EnvValue]:
        """The compiled environment for this instance's context, e.g.  Release Channel.
        This is used to inject these values into external configs.
        """
    no_cleanup_on_delete: builtins.bool
    @property
    def protections(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[prodvana.proto.prodvana.protection.attachments_pb2.ProtectionAttachmentConfig]: ...
    def __init__(
        self,
        *,
        service: builtins.str = ...,
        application: builtins.str = ...,
        release_channel: builtins.str = ...,
        programs: collections.abc.Iterable[prodvana.proto.prodvana.common_config.program_pb2.ProgramConfig] | None = ...,
        replicas: global___ReplicasConfig | None = ...,
        maturity: prodvana.proto.prodvana.common_config.maturity_pb2.Maturity.ValueType = ...,
        release_strategy: global___ReleaseStrategyConfig | None = ...,
        custom_hostnames: collections.abc.Iterable[builtins.str] | None = ...,
        cert: global___Certificate | None = ...,
        runtime: prodvana.proto.prodvana.release_channel.release_channel_config_pb2.ReleaseChannelRuntimeConfig | None = ...,
        runtime_execution: prodvana.proto.prodvana.runtimes.runtimes_config_pb2.RuntimeExecutionConfig | None = ...,
        capabilities: collections.abc.Iterable[global___CompiledCapabilityConfig] | None = ...,
        delivery_config: prodvana.proto.prodvana.delivery.delivery_config_pb2.DeliveryConfig | None = ...,
        volumes: collections.abc.Iterable[prodvana.proto.prodvana.volumes.volumes_pb2.Volume] | None = ...,
        deploy_annotations: prodvana.proto.prodvana.workflow.integration_config_pb2.AnnotationsConfig | None = ...,
        pre_push_tasks: collections.abc.Iterable[global___TaskConfig] | None = ...,
        delivery_extensions: collections.abc.Iterable[global___DeliveryExtensionConfig] | None = ...,
        delivery_extension_instances: collections.abc.Iterable[global___DeliveryExtensionInstance] | None = ...,
        runtime_specific: global___RuntimeSpecificConfig | None = ...,
        parameters: collections.abc.Iterable[prodvana.proto.prodvana.common_config.parameters_pb2.ParameterDefinition] | None = ...,
        parameter_values: collections.abc.Iterable[prodvana.proto.prodvana.common_config.parameters_pb2.ParameterValue] | None = ...,
        constants: collections.abc.Iterable[prodvana.proto.prodvana.common_config.constants_pb2.Constant] | None = ...,
        progress_deadline: google.protobuf.duration_pb2.Duration | None = ...,
        runtime_extension: global___RuntimeExtensionConfig | None = ...,
        kubernetes_config: prodvana.proto.prodvana.common_config.kubernetes_config_pb2.KubernetesConfig | None = ...,
        helm: prodvana.proto.prodvana.common_config.helm_pb2.HelmConfig | None = ...,
        env: collections.abc.Mapping[builtins.str, prodvana.proto.prodvana.common_config.env_pb2.EnvValue] | None = ...,
        no_cleanup_on_delete: builtins.bool = ...,
        protections: collections.abc.Iterable[prodvana.proto.prodvana.protection.attachments_pb2.ProtectionAttachmentConfig] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["cert", b"cert", "config_oneof", b"config_oneof", "delivery_config", b"delivery_config", "deploy_annotations", b"deploy_annotations", "helm", b"helm", "kubernetes_config", b"kubernetes_config", "progress_deadline", b"progress_deadline", "release_strategy", b"release_strategy", "replicas", b"replicas", "runtime", b"runtime", "runtime_execution", b"runtime_execution", "runtime_extension", b"runtime_extension", "runtime_specific", b"runtime_specific"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["application", b"application", "capabilities", b"capabilities", "cert", b"cert", "config_oneof", b"config_oneof", "constants", b"constants", "custom_hostnames", b"custom_hostnames", "delivery_config", b"delivery_config", "delivery_extension_instances", b"delivery_extension_instances", "delivery_extensions", b"delivery_extensions", "deploy_annotations", b"deploy_annotations", "env", b"env", "helm", b"helm", "kubernetes_config", b"kubernetes_config", "maturity", b"maturity", "no_cleanup_on_delete", b"no_cleanup_on_delete", "parameter_values", b"parameter_values", "parameters", b"parameters", "pre_push_tasks", b"pre_push_tasks", "programs", b"programs", "progress_deadline", b"progress_deadline", "protections", b"protections", "release_channel", b"release_channel", "release_strategy", b"release_strategy", "replicas", b"replicas", "runtime", b"runtime", "runtime_execution", b"runtime_execution", "runtime_extension", b"runtime_extension", "runtime_specific", b"runtime_specific", "service", b"service", "volumes", b"volumes"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["config_oneof", b"config_oneof"]) -> typing_extensions.Literal["runtime_extension", "kubernetes_config", "helm"] | None: ...

global___CompiledServiceInstanceConfig = CompiledServiceInstanceConfig

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

    NAME_PREFIX_FIELD_NUMBER: builtins.int
    RELEASE_CHANNEL_FIELD_NUMBER: builtins.int
    PROGRAMS_FIELD_NUMBER: builtins.int
    RUNTIME_FIELD_NUMBER: builtins.int
    RUNTIME_EXECUTION_FIELD_NUMBER: builtins.int
    name_prefix: builtins.str
    release_channel: builtins.str
    @property
    def programs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[prodvana.proto.prodvana.common_config.program_pb2.ProgramConfig]: ...
    @property
    def runtime(self) -> prodvana.proto.prodvana.release_channel.release_channel_config_pb2.ReleaseChannelRuntimeConfig: ...
    @property
    def runtime_execution(self) -> prodvana.proto.prodvana.runtimes.runtimes_config_pb2.RuntimeExecutionConfig: ...
    def __init__(
        self,
        *,
        name_prefix: builtins.str = ...,
        release_channel: builtins.str = ...,
        programs: collections.abc.Iterable[prodvana.proto.prodvana.common_config.program_pb2.ProgramConfig] | None = ...,
        runtime: prodvana.proto.prodvana.release_channel.release_channel_config_pb2.ReleaseChannelRuntimeConfig | None = ...,
        runtime_execution: prodvana.proto.prodvana.runtimes.runtimes_config_pb2.RuntimeExecutionConfig | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["runtime", b"runtime", "runtime_execution", b"runtime_execution"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["name_prefix", b"name_prefix", "programs", b"programs", "release_channel", b"release_channel", "runtime", b"runtime", "runtime_execution", b"runtime_execution"]) -> None: ...

global___CompiledJobConfig = CompiledJobConfig
