"""
@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.message
import prodvana.proto.prodvana.common_config.parameters_pb2
import sys

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

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

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

        def __init__(
            self,
        ) -> None: ...

    class PostApproval(google.protobuf.message.Message):
        """message Approval {
        }
        """

        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        def __init__(
            self,
        ) -> None: ...

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

        def __init__(
            self,
        ) -> None: ...

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

        DELAY_CHECK_DURATION_FIELD_NUMBER: builtins.int
        CHECK_DURATION_FIELD_NUMBER: builtins.int
        @property
        def delay_check_duration(self) -> google.protobuf.duration_pb2.Duration:
            """How long after the deployment completes should we start checking status?
            e.g, delay health checks X minutes after deployment (if deployment is noisy).
            """
        @property
        def check_duration(self) -> google.protobuf.duration_pb2.Duration:
            """How long after starting should we check for?"""
        def __init__(
            self,
            *,
            delay_check_duration: google.protobuf.duration_pb2.Duration | None = ...,
            check_duration: google.protobuf.duration_pb2.Duration | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["check_duration", b"check_duration", "delay_check_duration", b"delay_check_duration"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["check_duration", b"check_duration", "delay_check_duration", b"delay_check_duration"]) -> None: ...

    PRE_APPROVAL_FIELD_NUMBER: builtins.int
    POST_APPROVAL_FIELD_NUMBER: builtins.int
    DEPLOYMENT_FIELD_NUMBER: builtins.int
    POST_DEPLOYMENT_FIELD_NUMBER: builtins.int
    @property
    def pre_approval(self) -> global___ProtectionLifecycle.PreApproval:
        """NOTE: Type here must match CustomTaskType"""
    @property
    def post_approval(self) -> global___ProtectionLifecycle.PostApproval:
        """Approval approval = 2;"""
    @property
    def deployment(self) -> global___ProtectionLifecycle.Deployment: ...
    @property
    def post_deployment(self) -> global___ProtectionLifecycle.PostDeployment: ...
    def __init__(
        self,
        *,
        pre_approval: global___ProtectionLifecycle.PreApproval | None = ...,
        post_approval: global___ProtectionLifecycle.PostApproval | None = ...,
        deployment: global___ProtectionLifecycle.Deployment | None = ...,
        post_deployment: global___ProtectionLifecycle.PostDeployment | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["deployment", b"deployment", "lifecycle", b"lifecycle", "post_approval", b"post_approval", "post_deployment", b"post_deployment", "pre_approval", b"pre_approval"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["deployment", b"deployment", "lifecycle", b"lifecycle", "post_approval", b"post_approval", "post_deployment", b"post_deployment", "pre_approval", b"pre_approval"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["lifecycle", b"lifecycle"]) -> typing_extensions.Literal["pre_approval", "post_approval", "deployment", "post_deployment"] | None: ...

global___ProtectionLifecycle = ProtectionLifecycle

class ProtectionReference(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___ProtectionReference = ProtectionReference
