"""
@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 google.protobuf.timestamp_pb2
import typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class DnsZone(google.protobuf.message.Message):
    """A DNS zone. For details about the concept, see [DNS zones](/docs/dns/concepts/dns-zone)."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class LabelsEntry(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.Literal["key", b"key", "value", b"value"]) -> None: ...

    ID_FIELD_NUMBER: builtins.int
    FOLDER_ID_FIELD_NUMBER: builtins.int
    CREATED_AT_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    LABELS_FIELD_NUMBER: builtins.int
    ZONE_FIELD_NUMBER: builtins.int
    PRIVATE_VISIBILITY_FIELD_NUMBER: builtins.int
    PUBLIC_VISIBILITY_FIELD_NUMBER: builtins.int
    DELETION_PROTECTION_FIELD_NUMBER: builtins.int
    id: builtins.str
    """ID of the DNS zone. Generated at creation time."""
    folder_id: builtins.str
    """ID of the folder that the DNS zone belongs to."""
    name: builtins.str
    """Name of the DNS zone. 
    The name is unique within the folder.
    """
    description: builtins.str
    """Description of the DNS zone."""
    zone: builtins.str
    """DNS zone suffix."""
    deletion_protection: builtins.bool
    """Prevents accidental zone removal."""
    @property
    def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Creation timestamp."""

    @property
    def labels(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
        """DNS zone labels as `key:value` pairs."""

    @property
    def private_visibility(self) -> global___PrivateVisibility:
        """Privately visible zone settings.
        Specifies whether records within the zone are visible from a VPC networks only.
        """

    @property
    def public_visibility(self) -> global___PublicVisibility:
        """Publicly visible zone settings. 
        Indicates whether records within the zone are publicly visible.
        """

    def __init__(
        self,
        *,
        id: builtins.str = ...,
        folder_id: builtins.str = ...,
        created_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        name: builtins.str = ...,
        description: builtins.str = ...,
        labels: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        zone: builtins.str = ...,
        private_visibility: global___PrivateVisibility | None = ...,
        public_visibility: global___PublicVisibility | None = ...,
        deletion_protection: builtins.bool = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["created_at", b"created_at", "private_visibility", b"private_visibility", "public_visibility", b"public_visibility"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["created_at", b"created_at", "deletion_protection", b"deletion_protection", "description", b"description", "folder_id", b"folder_id", "id", b"id", "labels", b"labels", "name", b"name", "private_visibility", b"private_visibility", "public_visibility", b"public_visibility", "zone", b"zone"]) -> None: ...

global___DnsZone = DnsZone

@typing.final
class RecordSet(google.protobuf.message.Message):
    """A record set. For details about the concept, see [Resource record](/docs/dns/concepts/resource-record)."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    TTL_FIELD_NUMBER: builtins.int
    DATA_FIELD_NUMBER: builtins.int
    name: builtins.str
    """Domain name."""
    type: builtins.str
    """Record type."""
    ttl: builtins.int
    """Time to live in seconds."""
    @property
    def data(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Data of the record set."""

    def __init__(
        self,
        *,
        name: builtins.str = ...,
        type: builtins.str = ...,
        ttl: builtins.int = ...,
        data: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["data", b"data", "name", b"name", "ttl", b"ttl", "type", b"type"]) -> None: ...

global___RecordSet = RecordSet

@typing.final
class PrivateVisibility(google.protobuf.message.Message):
    """Configuration for privately visible zones."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NETWORK_IDS_FIELD_NUMBER: builtins.int
    @property
    def network_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Network IDs."""

    def __init__(
        self,
        *,
        network_ids: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["network_ids", b"network_ids"]) -> None: ...

global___PrivateVisibility = PrivateVisibility

@typing.final
class PublicVisibility(google.protobuf.message.Message):
    """Configuration for publicly visible zones."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___PublicVisibility = PublicVisibility
