"""
This type stub file was generated by pyright.
"""

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.duration_pb2
import google.protobuf.internal.containers
import google.protobuf.message
import google.protobuf.timestamp_pb2
import sys
import temporalio.api.common.v1.message_pb2
import temporalio.api.enums.v1.schedule_pb2
import temporalio.api.workflow.v1.message_pb2
import typing as typing_extensions

"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
(-- api-linter: core::0203::optional=disabled
    aip.dev/not-precedent: field_behavior annotation not available in our gogo fork --)
(-- api-linter: core::0203::input-only=disabled
    aip.dev/not-precedent: field_behavior annotation not available in our gogo fork --)
"""
if sys.version_info >= (3, 8):
    ...
else:
    ...
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
class CalendarSpec(google.protobuf.message.Message):
    """CalendarSpec describes an event specification relative to the calendar,
    similar to a traditional cron specification, but with labeled fields. Each
    field can be one of:
      *: matches always
      x: matches when the field equals x
      x/y : matches when the field equals x+n*y where n is an integer
      x-z: matches when the field is between x and z inclusive
      w,x,y,...: matches when the field is one of the listed values
    Each x, y, z, ... is either a decimal integer, or a month or day of week name
    or abbreviation (in the appropriate fields).
    A timestamp matches if all fields match.
    Note that fields have different default values, for convenience.
    Note that the special case that some cron implementations have for treating
    day_of_month and day_of_week as "or" instead of "and" when both are set is
    not implemented.
    day_of_week can accept 0 or 7 as Sunday
    CalendarSpec gets compiled into StructuredCalendarSpec, which is what will be
    returned if you describe the schedule.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    SECOND_FIELD_NUMBER: builtins.int
    MINUTE_FIELD_NUMBER: builtins.int
    HOUR_FIELD_NUMBER: builtins.int
    DAY_OF_MONTH_FIELD_NUMBER: builtins.int
    MONTH_FIELD_NUMBER: builtins.int
    YEAR_FIELD_NUMBER: builtins.int
    DAY_OF_WEEK_FIELD_NUMBER: builtins.int
    COMMENT_FIELD_NUMBER: builtins.int
    second: builtins.str
    minute: builtins.str
    hour: builtins.str
    day_of_month: builtins.str
    month: builtins.str
    year: builtins.str
    day_of_week: builtins.str
    comment: builtins.str
    def __init__(self, *, second: builtins.str = ..., minute: builtins.str = ..., hour: builtins.str = ..., day_of_month: builtins.str = ..., month: builtins.str = ..., year: builtins.str = ..., day_of_week: builtins.str = ..., comment: builtins.str = ...) -> None:
        ...
    
    def ClearField(self, field_name: typing_extensions.Literal["comment", b"comment", "day_of_month", b"day_of_month", "day_of_week", b"day_of_week", "hour", b"hour", "minute", b"minute", "month", b"month", "second", b"second", "year", b"year",]) -> None:
        ...
    


global___CalendarSpec = CalendarSpec
class Range(google.protobuf.message.Message):
    """Range represents a set of integer values, used to match fields of a calendar
    time in StructuredCalendarSpec. If end < start, then end is interpreted as
    equal to start. This means you can use a Range with start set to a value, and
    end and step unset (defaulting to 0) to represent a single value.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    START_FIELD_NUMBER: builtins.int
    END_FIELD_NUMBER: builtins.int
    STEP_FIELD_NUMBER: builtins.int
    start: builtins.int
    end: builtins.int
    step: builtins.int
    def __init__(self, *, start: builtins.int = ..., end: builtins.int = ..., step: builtins.int = ...) -> None:
        ...
    
    def ClearField(self, field_name: typing_extensions.Literal["end", b"end", "start", b"start", "step", b"step"]) -> None:
        ...
    


global___Range = Range
class StructuredCalendarSpec(google.protobuf.message.Message):
    """StructuredCalendarSpec describes an event specification relative to the
    calendar, in a form that's easy to work with programmatically. Each field can
    be one or more ranges.
    A timestamp matches if at least one range of each field matches the
    corresponding fields of the timestamp, except for year: if year is missing,
    that means all years match. For all fields besides year, at least one Range
    must be present to match anything.
    TODO: add relative-to-end-of-month
    TODO: add nth day-of-week in month
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    SECOND_FIELD_NUMBER: builtins.int
    MINUTE_FIELD_NUMBER: builtins.int
    HOUR_FIELD_NUMBER: builtins.int
    DAY_OF_MONTH_FIELD_NUMBER: builtins.int
    MONTH_FIELD_NUMBER: builtins.int
    YEAR_FIELD_NUMBER: builtins.int
    DAY_OF_WEEK_FIELD_NUMBER: builtins.int
    COMMENT_FIELD_NUMBER: builtins.int
    @property
    def second(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Range]:
        """Match seconds (0-59)"""
        ...
    
    @property
    def minute(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Range]:
        """Match minutes (0-59)"""
        ...
    
    @property
    def hour(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Range]:
        """Match hours (0-23)"""
        ...
    
    @property
    def day_of_month(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Range]:
        """Match days of the month (1-31)
        (-- api-linter: core::0140::prepositions=disabled
            aip.dev/not-precedent: standard name of field --)
        """
        ...
    
    @property
    def month(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Range]:
        """Match months (1-12)"""
        ...
    
    @property
    def year(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Range]:
        """Match years."""
        ...
    
    @property
    def day_of_week(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Range]:
        """Match days of the week (0-6; 0 is Sunday)."""
        ...
    
    comment: builtins.str
    def __init__(self, *, second: collections.abc.Iterable[global___Range] | None = ..., minute: collections.abc.Iterable[global___Range] | None = ..., hour: collections.abc.Iterable[global___Range] | None = ..., day_of_month: collections.abc.Iterable[global___Range] | None = ..., month: collections.abc.Iterable[global___Range] | None = ..., year: collections.abc.Iterable[global___Range] | None = ..., day_of_week: collections.abc.Iterable[global___Range] | None = ..., comment: builtins.str = ...) -> None:
        ...
    
    def ClearField(self, field_name: typing_extensions.Literal["comment", b"comment", "day_of_month", b"day_of_month", "day_of_week", b"day_of_week", "hour", b"hour", "minute", b"minute", "month", b"month", "second", b"second", "year", b"year",]) -> None:
        ...
    


global___StructuredCalendarSpec = StructuredCalendarSpec
class IntervalSpec(google.protobuf.message.Message):
    """IntervalSpec matches times that can be expressed as:
    epoch + n * interval + phase
    where n is an integer.
    phase defaults to zero if missing. interval is required.
    Both interval and phase must be non-negative and are truncated to the nearest
    second before any calculations.
    For example, an interval of 1 hour with phase of zero would match every hour,
    on the hour. The same interval but a phase of 19 minutes would match every
    xx:19:00. An interval of 28 days with phase zero would match
    2022-02-17T00:00:00Z (among other times). The same interval with a phase of 3
    days, 5 hours, and 23 minutes would match 2022-02-20T05:23:00Z instead.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    INTERVAL_FIELD_NUMBER: builtins.int
    PHASE_FIELD_NUMBER: builtins.int
    @property
    def interval(self) -> google.protobuf.duration_pb2.Duration:
        ...
    
    @property
    def phase(self) -> google.protobuf.duration_pb2.Duration:
        ...
    
    def __init__(self, *, interval: google.protobuf.duration_pb2.Duration | None = ..., phase: google.protobuf.duration_pb2.Duration | None = ...) -> None:
        ...
    
    def HasField(self, field_name: typing_extensions.Literal["interval", b"interval", "phase", b"phase"]) -> builtins.bool:
        ...
    
    def ClearField(self, field_name: typing_extensions.Literal["interval", b"interval", "phase", b"phase"]) -> None:
        ...
    


global___IntervalSpec = IntervalSpec
class ScheduleSpec(google.protobuf.message.Message):
    """ScheduleSpec is a complete description of a set of absolute timestamps
    (possibly infinite) that an action should occur at. The meaning of a
    ScheduleSpec depends only on its contents and never changes, except that the
    definition of a time zone can change over time (most commonly, when daylight
    saving time policy changes for an area). To create a totally self-contained
    ScheduleSpec, use UTC or include timezone_data.

    For input, you can provide zero or more of: structured_calendar, calendar,
    cron_string, interval, and exclude_structured_calendar, and all of them will
    be used (the schedule will take action at the union of all of their times,
    minus the ones that match exclude_structured_calendar).

    On input, calendar and cron_string fields will be compiled into
    structured_calendar (and maybe interval and timezone_name), so if you
    Describe a schedule, you'll see only structured_calendar, interval, etc.

    If a spec has no matching times after the current time, then the schedule
    will be subject to automatic deletion (after several days).
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    STRUCTURED_CALENDAR_FIELD_NUMBER: builtins.int
    CRON_STRING_FIELD_NUMBER: builtins.int
    CALENDAR_FIELD_NUMBER: builtins.int
    INTERVAL_FIELD_NUMBER: builtins.int
    EXCLUDE_CALENDAR_FIELD_NUMBER: builtins.int
    EXCLUDE_STRUCTURED_CALENDAR_FIELD_NUMBER: builtins.int
    START_TIME_FIELD_NUMBER: builtins.int
    END_TIME_FIELD_NUMBER: builtins.int
    JITTER_FIELD_NUMBER: builtins.int
    TIMEZONE_NAME_FIELD_NUMBER: builtins.int
    TIMEZONE_DATA_FIELD_NUMBER: builtins.int
    @property
    def structured_calendar(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___StructuredCalendarSpec]:
        """Calendar-based specifications of times."""
        ...
    
    @property
    def cron_string(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """cron_string holds a traditional cron specification as a string. It
        accepts 5, 6, or 7 fields, separated by spaces, and interprets them the
        same way as CalendarSpec.
        5 fields:         minute, hour, day_of_month, month, day_of_week
        6 fields:         minute, hour, day_of_month, month, day_of_week, year
        7 fields: second, minute, hour, day_of_month, month, day_of_week, year
        If year is not given, it defaults to *. If second is not given, it
        defaults to 0.
        Shorthands @yearly, @monthly, @weekly, @daily, and @hourly are also
        accepted instead of the 5-7 time fields.
        Optionally, the string can be preceded by CRON_TZ=<timezone name> or
        TZ=<timezone name>, which will get copied to timezone_name. (There must
        not also be a timezone_name present.)
        Optionally "#" followed by a comment can appear at the end of the string.
        Note that the special case that some cron implementations have for
        treating day_of_month and day_of_week as "or" instead of "and" when both
        are set is not implemented.
        @every <interval>[/<phase>] is accepted and gets compiled into an
        IntervalSpec instead. <interval> and <phase> should be a decimal integer
        with a unit suffix s, m, h, or d.
        """
        ...
    
    @property
    def calendar(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___CalendarSpec]:
        """Calendar-based specifications of times."""
        ...
    
    @property
    def interval(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___IntervalSpec]:
        """Interval-based specifications of times."""
        ...
    
    @property
    def exclude_calendar(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___CalendarSpec]:
        """Any timestamps matching any of exclude_* will be skipped.
        use exclude_structured_calendar
        """
        ...
    
    @property
    def exclude_structured_calendar(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___StructuredCalendarSpec]:
        ...
    
    @property
    def start_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """If start_time is set, any timestamps before start_time will be skipped.
        (Together, start_time and end_time make an inclusive interval.)
        """
        ...
    
    @property
    def end_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """If end_time is set, any timestamps after end_time will be skipped."""
        ...
    
    @property
    def jitter(self) -> google.protobuf.duration_pb2.Duration:
        """All timestamps will be incremented by a random value from 0 to this
        amount of jitter. Default: 0
        """
        ...
    
    timezone_name: builtins.str
    timezone_data: builtins.bytes
    def __init__(self, *, structured_calendar: collections.abc.Iterable[global___StructuredCalendarSpec] | None = ..., cron_string: collections.abc.Iterable[builtins.str] | None = ..., calendar: collections.abc.Iterable[global___CalendarSpec] | None = ..., interval: collections.abc.Iterable[global___IntervalSpec] | None = ..., exclude_calendar: collections.abc.Iterable[global___CalendarSpec] | None = ..., exclude_structured_calendar: collections.abc.Iterable[global___StructuredCalendarSpec] | None = ..., start_time: google.protobuf.timestamp_pb2.Timestamp | None = ..., end_time: google.protobuf.timestamp_pb2.Timestamp | None = ..., jitter: google.protobuf.duration_pb2.Duration | None = ..., timezone_name: builtins.str = ..., timezone_data: builtins.bytes = ...) -> None:
        ...
    
    def HasField(self, field_name: typing_extensions.Literal["end_time", b"end_time", "jitter", b"jitter", "start_time", b"start_time"]) -> builtins.bool:
        ...
    
    def ClearField(self, field_name: typing_extensions.Literal["calendar", b"calendar", "cron_string", b"cron_string", "end_time", b"end_time", "exclude_calendar", b"exclude_calendar", "exclude_structured_calendar", b"exclude_structured_calendar", "interval", b"interval", "jitter", b"jitter", "start_time", b"start_time", "structured_calendar", b"structured_calendar", "timezone_data", b"timezone_data", "timezone_name", b"timezone_name",]) -> None:
        ...
    


global___ScheduleSpec = ScheduleSpec
class SchedulePolicies(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    OVERLAP_POLICY_FIELD_NUMBER: builtins.int
    CATCHUP_WINDOW_FIELD_NUMBER: builtins.int
    PAUSE_ON_FAILURE_FIELD_NUMBER: builtins.int
    overlap_policy: temporalio.api.enums.v1.schedule_pb2.ScheduleOverlapPolicy.ValueType
    @property
    def catchup_window(self) -> google.protobuf.duration_pb2.Duration:
        """Policy for catchups:
        If the Temporal server misses an action due to one or more components
        being down, and comes back up, the action will be run if the scheduled
        time is within this window from the current time.
        This value defaults to one year, and can't be less than 10 seconds.
        """
        ...
    
    pause_on_failure: builtins.bool
    def __init__(self, *, overlap_policy: temporalio.api.enums.v1.schedule_pb2.ScheduleOverlapPolicy.ValueType = ..., catchup_window: google.protobuf.duration_pb2.Duration | None = ..., pause_on_failure: builtins.bool = ...) -> None:
        ...
    
    def HasField(self, field_name: typing_extensions.Literal["catchup_window", b"catchup_window"]) -> builtins.bool:
        ...
    
    def ClearField(self, field_name: typing_extensions.Literal["catchup_window", b"catchup_window", "overlap_policy", b"overlap_policy", "pause_on_failure", b"pause_on_failure",]) -> None:
        ...
    


global___SchedulePolicies = SchedulePolicies
class ScheduleAction(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    START_WORKFLOW_FIELD_NUMBER: builtins.int
    @property
    def start_workflow(self) -> temporalio.api.workflow.v1.message_pb2.NewWorkflowExecutionInfo:
        """All fields of NewWorkflowExecutionInfo are valid except for:
        - workflow_id_reuse_policy
        - cron_schedule
        The workflow id of the started workflow may not match this exactly,
        it may have a timestamp appended for uniqueness.
        """
        ...
    
    def __init__(self, *, start_workflow: temporalio.api.workflow.v1.message_pb2.NewWorkflowExecutionInfo | None = ...) -> None:
        ...
    
    def HasField(self, field_name: typing_extensions.Literal["action", b"action", "start_workflow", b"start_workflow"]) -> builtins.bool:
        ...
    
    def ClearField(self, field_name: typing_extensions.Literal["action", b"action", "start_workflow", b"start_workflow"]) -> None:
        ...
    
    def WhichOneof(self, oneof_group: typing_extensions.Literal["action", b"action"]) -> typing_extensions.Literal["start_workflow"] | None:
        ...
    


global___ScheduleAction = ScheduleAction
class ScheduleActionResult(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    SCHEDULE_TIME_FIELD_NUMBER: builtins.int
    ACTUAL_TIME_FIELD_NUMBER: builtins.int
    START_WORKFLOW_RESULT_FIELD_NUMBER: builtins.int
    @property
    def schedule_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Time that the action was taken (according to the schedule, including jitter)."""
        ...
    
    @property
    def actual_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Time that the action was taken (real time)."""
        ...
    
    @property
    def start_workflow_result(self) -> temporalio.api.common.v1.message_pb2.WorkflowExecution:
        """If action was start_workflow:"""
        ...
    
    def __init__(self, *, schedule_time: google.protobuf.timestamp_pb2.Timestamp | None = ..., actual_time: google.protobuf.timestamp_pb2.Timestamp | None = ..., start_workflow_result: temporalio.api.common.v1.message_pb2.WorkflowExecution | None = ...) -> None:
        ...
    
    def HasField(self, field_name: typing_extensions.Literal["actual_time", b"actual_time", "schedule_time", b"schedule_time", "start_workflow_result", b"start_workflow_result",]) -> builtins.bool:
        ...
    
    def ClearField(self, field_name: typing_extensions.Literal["actual_time", b"actual_time", "schedule_time", b"schedule_time", "start_workflow_result", b"start_workflow_result",]) -> None:
        ...
    


global___ScheduleActionResult = ScheduleActionResult
class ScheduleState(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    NOTES_FIELD_NUMBER: builtins.int
    PAUSED_FIELD_NUMBER: builtins.int
    LIMITED_ACTIONS_FIELD_NUMBER: builtins.int
    REMAINING_ACTIONS_FIELD_NUMBER: builtins.int
    notes: builtins.str
    paused: builtins.bool
    limited_actions: builtins.bool
    remaining_actions: builtins.int
    def __init__(self, *, notes: builtins.str = ..., paused: builtins.bool = ..., limited_actions: builtins.bool = ..., remaining_actions: builtins.int = ...) -> None:
        ...
    
    def ClearField(self, field_name: typing_extensions.Literal["limited_actions", b"limited_actions", "notes", b"notes", "paused", b"paused", "remaining_actions", b"remaining_actions",]) -> None:
        ...
    


global___ScheduleState = ScheduleState
class TriggerImmediatelyRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    OVERLAP_POLICY_FIELD_NUMBER: builtins.int
    overlap_policy: temporalio.api.enums.v1.schedule_pb2.ScheduleOverlapPolicy.ValueType
    def __init__(self, *, overlap_policy: temporalio.api.enums.v1.schedule_pb2.ScheduleOverlapPolicy.ValueType = ...) -> None:
        ...
    
    def ClearField(self, field_name: typing_extensions.Literal["overlap_policy", b"overlap_policy"]) -> None:
        ...
    


global___TriggerImmediatelyRequest = TriggerImmediatelyRequest
class BackfillRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    START_TIME_FIELD_NUMBER: builtins.int
    END_TIME_FIELD_NUMBER: builtins.int
    OVERLAP_POLICY_FIELD_NUMBER: builtins.int
    @property
    def start_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Time range to evaluate schedule in. Currently, this time range is
        exclusive on start_time and inclusive on end_time. (This is admittedly
        counterintuitive and it may change in the future, so to be safe, use a
        start time strictly before a scheduled time.) Also note that an action
        nominally scheduled in the interval but with jitter that pushes it after
        end_time will not be included.
        """
        ...
    
    @property
    def end_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
        ...
    
    overlap_policy: temporalio.api.enums.v1.schedule_pb2.ScheduleOverlapPolicy.ValueType
    def __init__(self, *, start_time: google.protobuf.timestamp_pb2.Timestamp | None = ..., end_time: google.protobuf.timestamp_pb2.Timestamp | None = ..., overlap_policy: temporalio.api.enums.v1.schedule_pb2.ScheduleOverlapPolicy.ValueType = ...) -> None:
        ...
    
    def HasField(self, field_name: typing_extensions.Literal["end_time", b"end_time", "start_time", b"start_time"]) -> builtins.bool:
        ...
    
    def ClearField(self, field_name: typing_extensions.Literal["end_time", b"end_time", "overlap_policy", b"overlap_policy", "start_time", b"start_time",]) -> None:
        ...
    


global___BackfillRequest = BackfillRequest
class SchedulePatch(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    TRIGGER_IMMEDIATELY_FIELD_NUMBER: builtins.int
    BACKFILL_REQUEST_FIELD_NUMBER: builtins.int
    PAUSE_FIELD_NUMBER: builtins.int
    UNPAUSE_FIELD_NUMBER: builtins.int
    @property
    def trigger_immediately(self) -> global___TriggerImmediatelyRequest:
        """If set, trigger one action immediately."""
        ...
    
    @property
    def backfill_request(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___BackfillRequest]:
        """If set, runs though the specified time period(s) and takes actions as if that time
        passed by right now, all at once. The overlap policy can be overridden for the
        scope of the backfill.
        """
        ...
    
    pause: builtins.str
    unpause: builtins.str
    def __init__(self, *, trigger_immediately: global___TriggerImmediatelyRequest | None = ..., backfill_request: collections.abc.Iterable[global___BackfillRequest] | None = ..., pause: builtins.str = ..., unpause: builtins.str = ...) -> None:
        ...
    
    def HasField(self, field_name: typing_extensions.Literal["trigger_immediately", b"trigger_immediately"]) -> builtins.bool:
        ...
    
    def ClearField(self, field_name: typing_extensions.Literal["backfill_request", b"backfill_request", "pause", b"pause", "trigger_immediately", b"trigger_immediately", "unpause", b"unpause",]) -> None:
        ...
    


global___SchedulePatch = SchedulePatch
class ScheduleInfo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ACTION_COUNT_FIELD_NUMBER: builtins.int
    MISSED_CATCHUP_WINDOW_FIELD_NUMBER: builtins.int
    OVERLAP_SKIPPED_FIELD_NUMBER: builtins.int
    BUFFER_DROPPED_FIELD_NUMBER: builtins.int
    BUFFER_SIZE_FIELD_NUMBER: builtins.int
    RUNNING_WORKFLOWS_FIELD_NUMBER: builtins.int
    RECENT_ACTIONS_FIELD_NUMBER: builtins.int
    FUTURE_ACTION_TIMES_FIELD_NUMBER: builtins.int
    CREATE_TIME_FIELD_NUMBER: builtins.int
    UPDATE_TIME_FIELD_NUMBER: builtins.int
    INVALID_SCHEDULE_ERROR_FIELD_NUMBER: builtins.int
    action_count: builtins.int
    missed_catchup_window: builtins.int
    overlap_skipped: builtins.int
    buffer_dropped: builtins.int
    buffer_size: builtins.int
    @property
    def running_workflows(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[temporalio.api.common.v1.message_pb2.WorkflowExecution]:
        """Currently-running workflows started by this schedule. (There might be
        more than one if the overlap policy allows overlaps.)
        Note that the run_ids in here are the original execution run ids as
        started by the schedule. If the workflows retried, did continue-as-new,
        or were reset, they might still be running but with a different run_id.
        """
        ...
    
    @property
    def recent_actions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ScheduleActionResult]:
        """Most recent ten actual action times (including manual triggers)."""
        ...
    
    @property
    def future_action_times(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.timestamp_pb2.Timestamp]:
        """Next ten scheduled action times."""
        ...
    
    @property
    def create_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Timestamps of schedule creation and last update."""
        ...
    
    @property
    def update_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
        ...
    
    invalid_schedule_error: builtins.str
    def __init__(self, *, action_count: builtins.int = ..., missed_catchup_window: builtins.int = ..., overlap_skipped: builtins.int = ..., buffer_dropped: builtins.int = ..., buffer_size: builtins.int = ..., running_workflows: collections.abc.Iterable[temporalio.api.common.v1.message_pb2.WorkflowExecution] | None = ..., recent_actions: collections.abc.Iterable[global___ScheduleActionResult] | None = ..., future_action_times: collections.abc.Iterable[google.protobuf.timestamp_pb2.Timestamp] | None = ..., create_time: google.protobuf.timestamp_pb2.Timestamp | None = ..., update_time: google.protobuf.timestamp_pb2.Timestamp | None = ..., invalid_schedule_error: builtins.str = ...) -> None:
        ...
    
    def HasField(self, field_name: typing_extensions.Literal["create_time", b"create_time", "update_time", b"update_time"]) -> builtins.bool:
        ...
    
    def ClearField(self, field_name: typing_extensions.Literal["action_count", b"action_count", "buffer_dropped", b"buffer_dropped", "buffer_size", b"buffer_size", "create_time", b"create_time", "future_action_times", b"future_action_times", "invalid_schedule_error", b"invalid_schedule_error", "missed_catchup_window", b"missed_catchup_window", "overlap_skipped", b"overlap_skipped", "recent_actions", b"recent_actions", "running_workflows", b"running_workflows", "update_time", b"update_time",]) -> None:
        ...
    


global___ScheduleInfo = ScheduleInfo
class Schedule(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    SPEC_FIELD_NUMBER: builtins.int
    ACTION_FIELD_NUMBER: builtins.int
    POLICIES_FIELD_NUMBER: builtins.int
    STATE_FIELD_NUMBER: builtins.int
    @property
    def spec(self) -> global___ScheduleSpec:
        ...
    
    @property
    def action(self) -> global___ScheduleAction:
        ...
    
    @property
    def policies(self) -> global___SchedulePolicies:
        ...
    
    @property
    def state(self) -> global___ScheduleState:
        ...
    
    def __init__(self, *, spec: global___ScheduleSpec | None = ..., action: global___ScheduleAction | None = ..., policies: global___SchedulePolicies | None = ..., state: global___ScheduleState | None = ...) -> None:
        ...
    
    def HasField(self, field_name: typing_extensions.Literal["action", b"action", "policies", b"policies", "spec", b"spec", "state", b"state",]) -> builtins.bool:
        ...
    
    def ClearField(self, field_name: typing_extensions.Literal["action", b"action", "policies", b"policies", "spec", b"spec", "state", b"state",]) -> None:
        ...
    


global___Schedule = Schedule
class ScheduleListInfo(google.protobuf.message.Message):
    """ScheduleListInfo is an abbreviated set of values from Schedule and ScheduleInfo
    that's returned in ListSchedules.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    SPEC_FIELD_NUMBER: builtins.int
    WORKFLOW_TYPE_FIELD_NUMBER: builtins.int
    NOTES_FIELD_NUMBER: builtins.int
    PAUSED_FIELD_NUMBER: builtins.int
    RECENT_ACTIONS_FIELD_NUMBER: builtins.int
    FUTURE_ACTION_TIMES_FIELD_NUMBER: builtins.int
    @property
    def spec(self) -> global___ScheduleSpec:
        """From spec:
        Some fields are dropped from this copy of spec: timezone_data
        """
        ...
    
    @property
    def workflow_type(self) -> temporalio.api.common.v1.message_pb2.WorkflowType:
        """From action:
        Action is a oneof field, but we need to encode this in JSON and oneof fields don't work
        well with JSON. If action is start_workflow, this is set:
        """
        ...
    
    notes: builtins.str
    paused: builtins.bool
    @property
    def recent_actions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ScheduleActionResult]:
        """From info (maybe fewer entries):"""
        ...
    
    @property
    def future_action_times(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.timestamp_pb2.Timestamp]:
        ...
    
    def __init__(self, *, spec: global___ScheduleSpec | None = ..., workflow_type: temporalio.api.common.v1.message_pb2.WorkflowType | None = ..., notes: builtins.str = ..., paused: builtins.bool = ..., recent_actions: collections.abc.Iterable[global___ScheduleActionResult] | None = ..., future_action_times: collections.abc.Iterable[google.protobuf.timestamp_pb2.Timestamp] | None = ...) -> None:
        ...
    
    def HasField(self, field_name: typing_extensions.Literal["spec", b"spec", "workflow_type", b"workflow_type"]) -> builtins.bool:
        ...
    
    def ClearField(self, field_name: typing_extensions.Literal["future_action_times", b"future_action_times", "notes", b"notes", "paused", b"paused", "recent_actions", b"recent_actions", "spec", b"spec", "workflow_type", b"workflow_type",]) -> None:
        ...
    


global___ScheduleListInfo = ScheduleListInfo
class ScheduleListEntry(google.protobuf.message.Message):
    """ScheduleListEntry is returned by ListSchedules."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    SCHEDULE_ID_FIELD_NUMBER: builtins.int
    MEMO_FIELD_NUMBER: builtins.int
    SEARCH_ATTRIBUTES_FIELD_NUMBER: builtins.int
    INFO_FIELD_NUMBER: builtins.int
    schedule_id: builtins.str
    @property
    def memo(self) -> temporalio.api.common.v1.message_pb2.Memo:
        ...
    
    @property
    def search_attributes(self) -> temporalio.api.common.v1.message_pb2.SearchAttributes:
        ...
    
    @property
    def info(self) -> global___ScheduleListInfo:
        ...
    
    def __init__(self, *, schedule_id: builtins.str = ..., memo: temporalio.api.common.v1.message_pb2.Memo | None = ..., search_attributes: temporalio.api.common.v1.message_pb2.SearchAttributes | None = ..., info: global___ScheduleListInfo | None = ...) -> None:
        ...
    
    def HasField(self, field_name: typing_extensions.Literal["info", b"info", "memo", b"memo", "search_attributes", b"search_attributes"]) -> builtins.bool:
        ...
    
    def ClearField(self, field_name: typing_extensions.Literal["info", b"info", "memo", b"memo", "schedule_id", b"schedule_id", "search_attributes", b"search_attributes",]) -> None:
        ...
    


global___ScheduleListEntry = ScheduleListEntry
