"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.protobuf.descriptor
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import typing
import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor = ...

class FixedRateUnit(_FixedRateUnit, metaclass=_FixedRateUnitEnumTypeWrapper):
    """Represents a frequency at which to run a schedule."""
    pass
class _FixedRateUnit:
    V = typing.NewType('V', builtins.int)
class _FixedRateUnitEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_FixedRateUnit.V], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
    MINUTE = FixedRateUnit.V(0)
    HOUR = FixedRateUnit.V(1)
    DAY = FixedRateUnit.V(2)

MINUTE = FixedRateUnit.V(0)
HOUR = FixedRateUnit.V(1)
DAY = FixedRateUnit.V(2)
global___FixedRateUnit = FixedRateUnit


class FixedRate(google.protobuf.message.Message):
    """Option for schedules run at a certain frequency e.g. every 2 minutes."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    VALUE_FIELD_NUMBER: builtins.int
    UNIT_FIELD_NUMBER: builtins.int
    value: builtins.int = ...
    unit: global___FixedRateUnit.V = ...
    def __init__(self,
        *,
        value : builtins.int = ...,
        unit : global___FixedRateUnit.V = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"unit",b"unit",u"value",b"value"]) -> None: ...
global___FixedRate = FixedRate

class CronSchedule(google.protobuf.message.Message):
    """Options for schedules to run according to a cron expression."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    SCHEDULE_FIELD_NUMBER: builtins.int
    OFFSET_FIELD_NUMBER: builtins.int
    schedule: typing.Text = ...
    """Standard/default cron implementation as described by https://en.wikipedia.org/wiki/Cron#CRON_expression;
    Also supports nonstandard predefined scheduling definitions
    as described by https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions
    except @reboot
    """

    offset: typing.Text = ...
    """ISO 8601 duration as described by https://en.wikipedia.org/wiki/ISO_8601#Durations"""

    def __init__(self,
        *,
        schedule : typing.Text = ...,
        offset : typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"offset",b"offset",u"schedule",b"schedule"]) -> None: ...
global___CronSchedule = CronSchedule

class Schedule(google.protobuf.message.Message):
    """Defines complete set of information required to trigger an execution on a schedule."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    CRON_EXPRESSION_FIELD_NUMBER: builtins.int
    RATE_FIELD_NUMBER: builtins.int
    CRON_SCHEDULE_FIELD_NUMBER: builtins.int
    KICKOFF_TIME_INPUT_ARG_FIELD_NUMBER: builtins.int
    cron_expression: typing.Text = ...
    """Uses AWS syntax: Minutes Hours Day-of-month Month Day-of-week Year
    e.g. for a schedule that runs every 15 minutes: 0/15 * * * ? *
    """

    @property
    def rate(self) -> global___FixedRate: ...
    @property
    def cron_schedule(self) -> global___CronSchedule: ...
    kickoff_time_input_arg: typing.Text = ...
    """Name of the input variable that the kickoff time will be supplied to when the workflow is kicked off."""

    def __init__(self,
        *,
        cron_expression : typing.Text = ...,
        rate : typing.Optional[global___FixedRate] = ...,
        cron_schedule : typing.Optional[global___CronSchedule] = ...,
        kickoff_time_input_arg : typing.Text = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"ScheduleExpression",b"ScheduleExpression",u"cron_expression",b"cron_expression",u"cron_schedule",b"cron_schedule",u"rate",b"rate"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"ScheduleExpression",b"ScheduleExpression",u"cron_expression",b"cron_expression",u"cron_schedule",b"cron_schedule",u"kickoff_time_input_arg",b"kickoff_time_input_arg",u"rate",b"rate"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"ScheduleExpression",b"ScheduleExpression"]) -> typing.Optional[typing_extensions.Literal["cron_expression","rate","cron_schedule"]]: ...
global___Schedule = Schedule
