"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""

import builtins
import google.protobuf.descriptor
import google.protobuf.message
import google.protobuf.timestamp_pb2
import typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class CronTab(google.protobuf.message.Message):
    """Message to describe a crontab schedule."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DAY_OF_MONTH_FIELD_NUMBER: builtins.int
    MONTH_FIELD_NUMBER: builtins.int
    DAY_OF_WEEK_FIELD_NUMBER: builtins.int
    day_of_month: builtins.str
    month: builtins.str
    day_of_week: builtins.str
    def __init__(
        self,
        *,
        day_of_month: builtins.str = ...,
        month: builtins.str = ...,
        day_of_week: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["day_of_month", b"day_of_month", "day_of_week", b"day_of_week", "month", b"month"]) -> None: ...

global___CronTab = CronTab

@typing.final
class BackupRetentionPolicy(google.protobuf.message.Message):
    """Message to describe a retention policy for cluster backups."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    POLICY_ID_FIELD_NUMBER: builtins.int
    CLUSTER_ID_FIELD_NUMBER: builtins.int
    POLICY_NAME_FIELD_NUMBER: builtins.int
    CREATED_AT_FIELD_NUMBER: builtins.int
    CRON_FIELD_NUMBER: builtins.int
    RETAIN_FOR_DAYS_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    policy_id: builtins.str
    """Required. Policy ID."""
    cluster_id: builtins.str
    """PostgreSQL cluster ID."""
    policy_name: builtins.str
    """Required. Policy name."""
    retain_for_days: builtins.int
    """Retention duration."""
    description: builtins.str
    """Human-readable description."""
    @property
    def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format."""

    @property
    def cron(self) -> global___CronTab:
        """CronTab schedule."""

    def __init__(
        self,
        *,
        policy_id: builtins.str = ...,
        cluster_id: builtins.str = ...,
        policy_name: builtins.str = ...,
        created_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        cron: global___CronTab | None = ...,
        retain_for_days: builtins.int = ...,
        description: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["created_at", b"created_at", "cron", b"cron"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["cluster_id", b"cluster_id", "created_at", b"created_at", "cron", b"cron", "description", b"description", "policy_id", b"policy_id", "policy_name", b"policy_name", "retain_for_days", b"retain_for_days"]) -> None: ...

global___BackupRetentionPolicy = BackupRetentionPolicy
