"""
@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.protection.protection_reference_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 _AttachmentType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _AttachmentTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_AttachmentType.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    UNKNOWN: _AttachmentType.ValueType  # 0
    RELEASE_CHANNEL: _AttachmentType.ValueType  # 1
    SERVICE_INSTANCE: _AttachmentType.ValueType  # 2
    CONVERGENCE: _AttachmentType.ValueType  # 3

class AttachmentType(_AttachmentType, metaclass=_AttachmentTypeEnumTypeWrapper): ...

UNKNOWN: AttachmentType.ValueType  # 0
RELEASE_CHANNEL: AttachmentType.ValueType  # 1
SERVICE_INSTANCE: AttachmentType.ValueType  # 2
CONVERGENCE: AttachmentType.ValueType  # 3
global___AttachmentType = AttachmentType

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

    NAME_FIELD_NUMBER: builtins.int
    REF_FIELD_NUMBER: builtins.int
    LIFECYCLE_FIELD_NUMBER: builtins.int
    name: builtins.str
    """optional, default to protection name"""
    @property
    def ref(self) -> prodvana.proto.prodvana.protection.protection_reference_pb2.ProtectionReference: ...
    @property
    def lifecycle(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[prodvana.proto.prodvana.protection.protection_reference_pb2.ProtectionLifecycle]:
        """if set, the attachment is automatically used in all deployments for the subject of this attachment.
        e.g. for release channels, all service instances in that release channel will use the attachment.
        """
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        ref: prodvana.proto.prodvana.protection.protection_reference_pb2.ProtectionReference | None = ...,
        lifecycle: collections.abc.Iterable[prodvana.proto.prodvana.protection.protection_reference_pb2.ProtectionLifecycle] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["ref", b"ref"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["lifecycle", b"lifecycle", "name", b"name", "ref", b"ref"]) -> None: ...

global___ProtectionAttachmentConfig = ProtectionAttachmentConfig
