"""
@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 shared.shared_pb2
import sys

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing_extensions.final
class ComputeResourcePolicyXGroupPlacementPolicy(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    AVAILABILITY_DOMAIN_COUNT_FIELD_NUMBER: builtins.int
    COLLOCATION_FIELD_NUMBER: builtins.int
    VM_COUNT_FIELD_NUMBER: builtins.int
    availability_domain_count: builtins.float
    collocation: builtins.str
    vm_count: builtins.float
    def __init__(
        self,
        *,
        availability_domain_count: builtins.float = ...,
        collocation: builtins.str = ...,
        vm_count: builtins.float = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["availability_domain_count", b"availability_domain_count", "collocation", b"collocation", "vm_count", b"vm_count"]) -> None: ...

global___ComputeResourcePolicyXGroupPlacementPolicy = ComputeResourcePolicyXGroupPlacementPolicy

@typing_extensions.final
class ComputeResourcePolicyXInstanceSchedulePolicyXVmStartSchedule(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___ComputeResourcePolicyXInstanceSchedulePolicyXVmStartSchedule = ComputeResourcePolicyXInstanceSchedulePolicyXVmStartSchedule

@typing_extensions.final
class ComputeResourcePolicyXInstanceSchedulePolicyXVmStopSchedule(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___ComputeResourcePolicyXInstanceSchedulePolicyXVmStopSchedule = ComputeResourcePolicyXInstanceSchedulePolicyXVmStopSchedule

@typing_extensions.final
class ComputeResourcePolicyXInstanceSchedulePolicy(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    EXPIRATION_TIME_FIELD_NUMBER: builtins.int
    START_TIME_FIELD_NUMBER: builtins.int
    TIME_ZONE_FIELD_NUMBER: builtins.int
    VM_START_SCHEDULE_FIELD_NUMBER: builtins.int
    VM_STOP_SCHEDULE_FIELD_NUMBER: builtins.int
    expiration_time: builtins.str
    start_time: builtins.str
    time_zone: builtins.str
    @property
    def vm_start_schedule(self) -> global___ComputeResourcePolicyXInstanceSchedulePolicyXVmStartSchedule: ...
    @property
    def vm_stop_schedule(self) -> global___ComputeResourcePolicyXInstanceSchedulePolicyXVmStopSchedule: ...
    def __init__(
        self,
        *,
        expiration_time: builtins.str = ...,
        start_time: builtins.str = ...,
        time_zone: builtins.str = ...,
        vm_start_schedule: global___ComputeResourcePolicyXInstanceSchedulePolicyXVmStartSchedule | None = ...,
        vm_stop_schedule: global___ComputeResourcePolicyXInstanceSchedulePolicyXVmStopSchedule | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["vm_start_schedule", b"vm_start_schedule", "vm_stop_schedule", b"vm_stop_schedule"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["expiration_time", b"expiration_time", "start_time", b"start_time", "time_zone", b"time_zone", "vm_start_schedule", b"vm_start_schedule", "vm_stop_schedule", b"vm_stop_schedule"]) -> None: ...

global___ComputeResourcePolicyXInstanceSchedulePolicy = ComputeResourcePolicyXInstanceSchedulePolicy

@typing_extensions.final
class ComputeResourcePolicyXSnapshotSchedulePolicyXRetentionPolicy(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MAX_RETENTION_DAYS_FIELD_NUMBER: builtins.int
    ON_SOURCE_DISK_DELETE_FIELD_NUMBER: builtins.int
    max_retention_days: builtins.float
    on_source_disk_delete: builtins.str
    def __init__(
        self,
        *,
        max_retention_days: builtins.float = ...,
        on_source_disk_delete: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["max_retention_days", b"max_retention_days", "on_source_disk_delete", b"on_source_disk_delete"]) -> None: ...

global___ComputeResourcePolicyXSnapshotSchedulePolicyXRetentionPolicy = ComputeResourcePolicyXSnapshotSchedulePolicyXRetentionPolicy

@typing_extensions.final
class ComputeResourcePolicyXSnapshotSchedulePolicyXScheduleXDailySchedule(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DAYS_IN_CYCLE_FIELD_NUMBER: builtins.int
    START_TIME_FIELD_NUMBER: builtins.int
    days_in_cycle: builtins.float
    start_time: builtins.str
    def __init__(
        self,
        *,
        days_in_cycle: builtins.float = ...,
        start_time: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["days_in_cycle", b"days_in_cycle", "start_time", b"start_time"]) -> None: ...

global___ComputeResourcePolicyXSnapshotSchedulePolicyXScheduleXDailySchedule = ComputeResourcePolicyXSnapshotSchedulePolicyXScheduleXDailySchedule

@typing_extensions.final
class ComputeResourcePolicyXSnapshotSchedulePolicyXScheduleXHourlySchedule(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    HOURS_IN_CYCLE_FIELD_NUMBER: builtins.int
    START_TIME_FIELD_NUMBER: builtins.int
    hours_in_cycle: builtins.float
    start_time: builtins.str
    def __init__(
        self,
        *,
        hours_in_cycle: builtins.float = ...,
        start_time: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["hours_in_cycle", b"hours_in_cycle", "start_time", b"start_time"]) -> None: ...

global___ComputeResourcePolicyXSnapshotSchedulePolicyXScheduleXHourlySchedule = ComputeResourcePolicyXSnapshotSchedulePolicyXScheduleXHourlySchedule

@typing_extensions.final
class ComputeResourcePolicyXSnapshotSchedulePolicyXScheduleXWeeklyScheduleXDayOfWeeks(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___ComputeResourcePolicyXSnapshotSchedulePolicyXScheduleXWeeklyScheduleXDayOfWeeks = ComputeResourcePolicyXSnapshotSchedulePolicyXScheduleXWeeklyScheduleXDayOfWeeks

@typing_extensions.final
class ComputeResourcePolicyXSnapshotSchedulePolicyXScheduleXWeeklySchedule(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DAY_OF_WEEKS_FIELD_NUMBER: builtins.int
    @property
    def day_of_weeks(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ComputeResourcePolicyXSnapshotSchedulePolicyXScheduleXWeeklyScheduleXDayOfWeeks]: ...
    def __init__(
        self,
        *,
        day_of_weeks: collections.abc.Iterable[global___ComputeResourcePolicyXSnapshotSchedulePolicyXScheduleXWeeklyScheduleXDayOfWeeks] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["day_of_weeks", b"day_of_weeks"]) -> None: ...

global___ComputeResourcePolicyXSnapshotSchedulePolicyXScheduleXWeeklySchedule = ComputeResourcePolicyXSnapshotSchedulePolicyXScheduleXWeeklySchedule

@typing_extensions.final
class ComputeResourcePolicyXSnapshotSchedulePolicyXSchedule(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DAILY_SCHEDULE_FIELD_NUMBER: builtins.int
    HOURLY_SCHEDULE_FIELD_NUMBER: builtins.int
    WEEKLY_SCHEDULE_FIELD_NUMBER: builtins.int
    @property
    def daily_schedule(self) -> global___ComputeResourcePolicyXSnapshotSchedulePolicyXScheduleXDailySchedule: ...
    @property
    def hourly_schedule(self) -> global___ComputeResourcePolicyXSnapshotSchedulePolicyXScheduleXHourlySchedule: ...
    @property
    def weekly_schedule(self) -> global___ComputeResourcePolicyXSnapshotSchedulePolicyXScheduleXWeeklySchedule: ...
    def __init__(
        self,
        *,
        daily_schedule: global___ComputeResourcePolicyXSnapshotSchedulePolicyXScheduleXDailySchedule | None = ...,
        hourly_schedule: global___ComputeResourcePolicyXSnapshotSchedulePolicyXScheduleXHourlySchedule | None = ...,
        weekly_schedule: global___ComputeResourcePolicyXSnapshotSchedulePolicyXScheduleXWeeklySchedule | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["daily_schedule", b"daily_schedule", "hourly_schedule", b"hourly_schedule", "weekly_schedule", b"weekly_schedule"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["daily_schedule", b"daily_schedule", "hourly_schedule", b"hourly_schedule", "weekly_schedule", b"weekly_schedule"]) -> None: ...

global___ComputeResourcePolicyXSnapshotSchedulePolicyXSchedule = ComputeResourcePolicyXSnapshotSchedulePolicyXSchedule

@typing_extensions.final
class ComputeResourcePolicyXSnapshotSchedulePolicyXSnapshotProperties(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.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_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    GUEST_FLUSH_FIELD_NUMBER: builtins.int
    LABELS_FIELD_NUMBER: builtins.int
    STORAGE_LOCATIONS_FIELD_NUMBER: builtins.int
    guest_flush: builtins.bool
    @property
    def labels(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def storage_locations(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        guest_flush: builtins.bool = ...,
        labels: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        storage_locations: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["guest_flush", b"guest_flush", "labels", b"labels", "storage_locations", b"storage_locations"]) -> None: ...

global___ComputeResourcePolicyXSnapshotSchedulePolicyXSnapshotProperties = ComputeResourcePolicyXSnapshotSchedulePolicyXSnapshotProperties

@typing_extensions.final
class ComputeResourcePolicyXSnapshotSchedulePolicy(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RETENTION_POLICY_FIELD_NUMBER: builtins.int
    SCHEDULE_FIELD_NUMBER: builtins.int
    SNAPSHOT_PROPERTIES_FIELD_NUMBER: builtins.int
    @property
    def retention_policy(self) -> global___ComputeResourcePolicyXSnapshotSchedulePolicyXRetentionPolicy: ...
    @property
    def schedule(self) -> global___ComputeResourcePolicyXSnapshotSchedulePolicyXSchedule: ...
    @property
    def snapshot_properties(self) -> global___ComputeResourcePolicyXSnapshotSchedulePolicyXSnapshotProperties: ...
    def __init__(
        self,
        *,
        retention_policy: global___ComputeResourcePolicyXSnapshotSchedulePolicyXRetentionPolicy | None = ...,
        schedule: global___ComputeResourcePolicyXSnapshotSchedulePolicyXSchedule | None = ...,
        snapshot_properties: global___ComputeResourcePolicyXSnapshotSchedulePolicyXSnapshotProperties | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["retention_policy", b"retention_policy", "schedule", b"schedule", "snapshot_properties", b"snapshot_properties"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["retention_policy", b"retention_policy", "schedule", b"schedule", "snapshot_properties", b"snapshot_properties"]) -> None: ...

global___ComputeResourcePolicyXSnapshotSchedulePolicy = ComputeResourcePolicyXSnapshotSchedulePolicy

@typing_extensions.final
class ComputeResourcePolicyXTimeouts(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___ComputeResourcePolicyXTimeouts = ComputeResourcePolicyXTimeouts

@typing_extensions.final
class ComputeResourcePolicy(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DESCRIPTION_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    PROJECT_FIELD_NUMBER: builtins.int
    REGION_FIELD_NUMBER: builtins.int
    SELF_LINK_FIELD_NUMBER: builtins.int
    GROUP_PLACEMENT_POLICY_FIELD_NUMBER: builtins.int
    INSTANCE_SCHEDULE_POLICY_FIELD_NUMBER: builtins.int
    SNAPSHOT_SCHEDULE_POLICY_FIELD_NUMBER: builtins.int
    TIMEOUTS_FIELD_NUMBER: builtins.int
    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    description: builtins.str
    id: builtins.str
    name: builtins.str
    project: builtins.str
    region: builtins.str
    self_link: builtins.str
    @property
    def group_placement_policy(self) -> global___ComputeResourcePolicyXGroupPlacementPolicy: ...
    @property
    def instance_schedule_policy(self) -> global___ComputeResourcePolicyXInstanceSchedulePolicy: ...
    @property
    def snapshot_schedule_policy(self) -> global___ComputeResourcePolicyXSnapshotSchedulePolicy: ...
    @property
    def timeouts(self) -> global___ComputeResourcePolicyXTimeouts: ...
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    def __init__(
        self,
        *,
        description: builtins.str = ...,
        id: builtins.str = ...,
        name: builtins.str = ...,
        project: builtins.str = ...,
        region: builtins.str = ...,
        self_link: builtins.str = ...,
        group_placement_policy: global___ComputeResourcePolicyXGroupPlacementPolicy | None = ...,
        instance_schedule_policy: global___ComputeResourcePolicyXInstanceSchedulePolicy | None = ...,
        snapshot_schedule_policy: global___ComputeResourcePolicyXSnapshotSchedulePolicy | None = ...,
        timeouts: global___ComputeResourcePolicyXTimeouts | None = ...,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["group_placement_policy", b"group_placement_policy", "instance_schedule_policy", b"instance_schedule_policy", "resource_info", b"resource_info", "snapshot_schedule_policy", b"snapshot_schedule_policy", "timeouts", b"timeouts"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "group_placement_policy", b"group_placement_policy", "id", b"id", "instance_schedule_policy", b"instance_schedule_policy", "name", b"name", "project", b"project", "region", b"region", "resource_info", b"resource_info", "self_link", b"self_link", "snapshot_schedule_policy", b"snapshot_schedule_policy", "timeouts", b"timeouts"]) -> None: ...

global___ComputeResourcePolicy = ComputeResourcePolicy
