temporal-sdk
Safe HaskellNone
LanguageHaskell2010

Temporal.Client.Schedule

Description

A Schedule contains instructions for starting a Workflow Execution at specific times. Schedules provide a more flexible and user-friendly approach than Temporal Cron Jobs.

How to enable Schedules

A Schedule has an identity and is independent of a Workflow Execution. This differs from a Temporal Cron Job, which relies on a cron schedule as a property of the Workflow Execution.

Action

The Action of a Schedule is where the Workflow Execution properties are established, such as Workflow Type, Task Queue, parameters, and timeouts.

Workflow Executions started by a Schedule have the following additional properties:

  • The Action's timestamp is appended to the Workflow Id.
  • The TemporalScheduledStartTime Search Attribute is added to the Workflow Execution. The value is the Action's timestamp.
  • The TemporalScheduledById Search Attribute is added to the Workflow Execution. The value is the Schedule Id.
  • The Schedule Spec describes when the Action is taken. There are two kinds of Schedule Spec:
  • A simple interval, like "every 30 minutes" (aligned to start at the Unix epoch, and optionally including a phase offset).
  • A calendar-based expression, similar to the "cron expressions" supported by lots of software, including the older Temporal Cron feature.

The following calendar JSON fields are available:

  • year
  • month
  • dayOfMonth
  • dayOfWeek
  • hour
  • minute
  • second
  • comment

Each field can contain a comma-separated list of ranges (or the * wildcard), and each range can include a slash followed by a skip value. The hour, minute, and second fields default to 0 while the others default to *, so you can describe many useful specs with only a few fields.

For month, names of months may be used instead of integers (case-insensitive, abbreviations permitted). For dayOfWeek, day-of-week names may be used.

The comment field is optional and can be used to include a free-form description of the intent of the calendar spec, useful for complicated specs.

No matter which form you supply, calendar and interval specs are converted to canonical representations. What you see when you "describe" or "list" a Schedule might not look exactly like what you entered, but it has the same meaning.

Other Spec features

Multiple intervals/calendar expressions

A Spec can have combinations of multiple intervals and/or calendar expressions to define a specific Schedule.

Time bounds

Provide an absolute start or end time (or both) with a Spec to ensure that no actions are taken before the start time or after the end time.

Exclusions

A Spec can contain exclusions in the form of zero or more calendar expressions. This can be used to express scheduling like "each Monday at noon except for holidays. You'll have to provide your own set of exclusions and include it in each schedule; there are no pre-defined sets. (This feature isn't currently exposed in tctl or the Temporal Web UI.)

Jitter

If given, a random offset between zero and the maximum jitter is added to each Action time (but bounded by the time until the next scheduled Action).

Time zones

By default, calendar-based expressions are interpreted in UTC. Temporal recommends using UTC to avoid various surprising properties of time zones. If you don't want to use UTC, you can provide the name of a time zone. The time zone definition is loaded on the Temporal Server Worker Service from either disk or the fallback embedded in the binary.

For more operational control, embed the contents of the time zone database file in the Schedule Spec itself. (Note: this isn't currently exposed in tctl or the web UI.)

Pause

A Schedule can be Paused. When a Schedule is Paused, the Spec has no effect. However, you can still force manual actions by using the tctl schedule trigger command.

To assist communication among developers and operators, a “notes” field can be updated on pause or resume to store an explanation for the current state.

Backfill

A Schedule can be Backfilled. When a Schedule is Backfilled, all the Actions that would have been taken over a specified time period are taken now (in parallel if the AllowAll Overlap Policy is used; sequentially if BufferAll is used). You might use this to fill in runs from a time period when the Schedule was paused due to an external condition that's now resolved, or a period before the Schedule was created.

Limit number of Actions

A Schedule can be limited to a certain number of scheduled Actions (that is, not trigger immediately). After that it will act as if it were paused.

Policies

A Schedule supports a set of Policies that enable customizing behavior.

Overlap Policy

The Overlap Policy controls what happens when it is time to start a Workflow Execution but a previously started Workflow Execution is still running. The following options are available:

Skip: Default. Nothing happens; the Workflow Execution is not started. BufferOne: Starts the Workflow Execution as soon as the current one completes. The buffer is limited to one. If another Workflow Execution is supposed to start, but one is already in the buffer, only the one in the buffer eventually starts. BufferAll: Allows an unlimited number of Workflows to buffer. They are started sequentially. CancelOther: Cancels the running Workflow Execution, and then starts the new one after the old one completes cancellation. TerminateOther: Terminates the running Workflow Execution and starts the new one immediately. AllowAll Starts any number of concurrent Workflow Executions. With this policy (and only this policy), more than one Workflow Execution, started by the Schedule, can run simultaneously. Catchup Window The Temporal Cluster might be down or unavailable at the time when a Schedule should take an Action. When it comes back up, the Catchup Window controls which missed Actions should be taken at that point. The default is one minute, which means that the Schedule attempts to take any Actions that wouldn't be more than one minute late. An outage that lasts longer than the Catchup Window could lead to missed Actions. (But you can always Backfill.)

Pause-on-failure

If this policy is set, a Workflow Execution started by a Schedule that ends with a failure or timeout (but not Cancellation or Termination) causes the Schedule to automatically pause.

Note that with the AllowAll Overlap Policy, this pause might not apply to the next Workflow Execution, because the next Workflow Execution might have started before the failed one finished. It applies only to Workflow Executions that were scheduled to start after the failed one finished.

Last completion result

A Workflow started by a Schedule can obtain the completion result from the most recent successful run. (How you do this depends on the SDK you're using.)

For overlap policies that don't allow overlap, “the most recent successful run” is straightforward to define. For the AllowAll policy, it refers to the run that completed most recently, at the time that the run in question is started. Consider the following overlapping runs:

time -------------------------------------------->
 A     |----------------------|
 B               |-------|
 C                          |---------------|
 D                                |--------------T

If D asks for the last completion result at time T, it gets the result of A. Not B, even though B started more recently, because A completed later. And not C, even though C completed after A, because the result for D is captured when D is started, not when it's queried.

Failures and timeouts do not affect the last completion result.

Last failure A Workflow started by a Schedule can obtain the details of the failure of the most recent run that ended at the time when the Workflow in question was started. Unlike last completion result, a successful run does reset the last failure.

Limitations Internally, a Schedule is implemented as a Workflow. If you're using Advanced Visibility (Elasticsearch), these Workflow Executions are hidden from normal views. If you're using Standard Visibility, they are visible, though there's no need to interact with them directly.

Synopsis

Documentation

data ScheduleClient Source #

Instances

Instances details
HasField "identity" ScheduleClient Text Source # 
Instance details

Defined in Temporal.Client.Schedule

data CreateScheduleRequest Source #

Constructors

CreateScheduleRequest 

Fields

Instances

Instances details
Generic CreateScheduleRequest Source # 
Instance details

Defined in Temporal.Client.Schedule

Associated Types

type Rep CreateScheduleRequest 
Instance details

Defined in Temporal.Client.Schedule

Show CreateScheduleRequest Source # 
Instance details

Defined in Temporal.Client.Schedule

Eq CreateScheduleRequest Source # 
Instance details

Defined in Temporal.Client.Schedule

Ord CreateScheduleRequest Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep CreateScheduleRequest Source # 
Instance details

Defined in Temporal.Client.Schedule

deleteSchedule :: MonadIO m => ScheduleClient -> ScheduleId -> m () Source #

Deletes a schedule, removing it from the system.

listSchedules :: forall (m :: Type -> Type). MonadIO m => ScheduleClient -> ListSchedulesOptions -> ConduitT () (Vector ScheduleListEntry) m () Source #

List all schedules in a namespace.

data ScheduleListInfo Source #

Instances

Instances details
Generic ScheduleListInfo Source # 
Instance details

Defined in Temporal.Client.Schedule

Associated Types

type Rep ScheduleListInfo 
Instance details

Defined in Temporal.Client.Schedule

Show ScheduleListInfo Source # 
Instance details

Defined in Temporal.Client.Schedule

Eq ScheduleListInfo Source # 
Instance details

Defined in Temporal.Client.Schedule

Ord ScheduleListInfo Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep ScheduleListInfo Source # 
Instance details

Defined in Temporal.Client.Schedule

data ScheduleListEntry Source #

Instances

Instances details
Generic ScheduleListEntry Source # 
Instance details

Defined in Temporal.Client.Schedule

Associated Types

type Rep ScheduleListEntry 
Instance details

Defined in Temporal.Client.Schedule

type Rep ScheduleListEntry = D1 ('MetaData "ScheduleListEntry" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (C1 ('MetaCons "ScheduleListEntry" 'PrefixI 'True) ((S1 ('MetaSel ('Just "scheduleId") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ScheduleId) :*: S1 ('MetaSel ('Just "memo") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map Text Payload))) :*: (S1 ('MetaSel ('Just "searchAttributes") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map SearchAttributeKey SearchAttributeType)) :*: S1 ('MetaSel ('Just "info") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe ScheduleListInfo)))))
Show ScheduleListEntry Source # 
Instance details

Defined in Temporal.Client.Schedule

Eq ScheduleListEntry Source # 
Instance details

Defined in Temporal.Client.Schedule

Ord ScheduleListEntry Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep ScheduleListEntry Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep ScheduleListEntry = D1 ('MetaData "ScheduleListEntry" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (C1 ('MetaCons "ScheduleListEntry" 'PrefixI 'True) ((S1 ('MetaSel ('Just "scheduleId") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ScheduleId) :*: S1 ('MetaSel ('Just "memo") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map Text Payload))) :*: (S1 ('MetaSel ('Just "searchAttributes") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map SearchAttributeKey SearchAttributeType)) :*: S1 ('MetaSel ('Just "info") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe ScheduleListInfo)))))

data ScheduleActionResult Source #

Instances

Instances details
Generic ScheduleActionResult Source # 
Instance details

Defined in Temporal.Client.Schedule

Associated Types

type Rep ScheduleActionResult 
Instance details

Defined in Temporal.Client.Schedule

type Rep ScheduleActionResult = D1 ('MetaData "ScheduleActionResult" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (C1 ('MetaCons "ScheduleActionResult" 'PrefixI 'True) (S1 ('MetaSel ('Just "scheduleTime") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SystemTime) :*: (S1 ('MetaSel ('Just "actualTime") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SystemTime) :*: S1 ('MetaSel ('Just "startWorkflowResult") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 WorkflowExecution))))
Show ScheduleActionResult Source # 
Instance details

Defined in Temporal.Client.Schedule

Eq ScheduleActionResult Source # 
Instance details

Defined in Temporal.Client.Schedule

Ord ScheduleActionResult Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep ScheduleActionResult Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep ScheduleActionResult = D1 ('MetaData "ScheduleActionResult" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (C1 ('MetaCons "ScheduleActionResult" 'PrefixI 'True) (S1 ('MetaSel ('Just "scheduleTime") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SystemTime) :*: (S1 ('MetaSel ('Just "actualTime") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SystemTime) :*: S1 ('MetaSel ('Just "startWorkflowResult") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 WorkflowExecution))))

data ListSchedulesOptions Source #

Instances

Instances details
Generic ListSchedulesOptions Source # 
Instance details

Defined in Temporal.Client.Schedule

Associated Types

type Rep ListSchedulesOptions 
Instance details

Defined in Temporal.Client.Schedule

type Rep ListSchedulesOptions = D1 ('MetaData "ListSchedulesOptions" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (C1 ('MetaCons "ListSchedulesOptions" 'PrefixI 'True) (S1 ('MetaSel ('Just "maximumPageSize") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int32)))
Show ListSchedulesOptions Source # 
Instance details

Defined in Temporal.Client.Schedule

Eq ListSchedulesOptions Source # 
Instance details

Defined in Temporal.Client.Schedule

Ord ListSchedulesOptions Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep ListSchedulesOptions Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep ListSchedulesOptions = D1 ('MetaData "ListSchedulesOptions" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (C1 ('MetaCons "ListSchedulesOptions" 'PrefixI 'True) (S1 ('MetaSel ('Just "maximumPageSize") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int32)))

data ListScheduleMatchingTimesOptions Source #

Instances

Instances details
Generic ListScheduleMatchingTimesOptions Source # 
Instance details

Defined in Temporal.Client.Schedule

Associated Types

type Rep ListScheduleMatchingTimesOptions 
Instance details

Defined in Temporal.Client.Schedule

type Rep ListScheduleMatchingTimesOptions = D1 ('MetaData "ListScheduleMatchingTimesOptions" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (C1 ('MetaCons "ListScheduleMatchingTimesOptions" 'PrefixI 'True) (S1 ('MetaSel ('Just "scheduleId") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ScheduleId) :*: (S1 ('MetaSel ('Just "startTime") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SystemTime) :*: S1 ('MetaSel ('Just "endTime") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SystemTime))))
Show ListScheduleMatchingTimesOptions Source # 
Instance details

Defined in Temporal.Client.Schedule

Eq ListScheduleMatchingTimesOptions Source # 
Instance details

Defined in Temporal.Client.Schedule

Ord ListScheduleMatchingTimesOptions Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep ListScheduleMatchingTimesOptions Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep ListScheduleMatchingTimesOptions = D1 ('MetaData "ListScheduleMatchingTimesOptions" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (C1 ('MetaCons "ListScheduleMatchingTimesOptions" 'PrefixI 'True) (S1 ('MetaSel ('Just "scheduleId") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ScheduleId) :*: (S1 ('MetaSel ('Just "startTime") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SystemTime) :*: S1 ('MetaSel ('Just "endTime") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SystemTime))))

describeSchedule :: MonadIO m => ScheduleClient -> ScheduleId -> m DescribeScheduleResponse Source #

Returns the schedule description and current state of an existing schedule.

data DescribeScheduleResponse Source #

Constructors

DescribeScheduleResponse 

Fields

  • schedule :: !Schedule

    The complete current schedule details. This may not match the schedule as created because: - some types of schedule specs may get compiled into others (e.g. CronString into StructuredCalendarSpec) - some unspecified fields may be replaced by defaults - some fields in the state are modified automatically - the schedule may have been modified by UpdateSchedule or PatchSchedule

  • info :: !ScheduleInfo

    Extra schedule state info.

  • memo :: !(Map Text Payload)

    The memo that the schedule was created with.

  • searchAttributes :: !(Map SearchAttributeKey SearchAttributeType)

    The search attributes that the schedule was created with.

  • conflictToken :: !ByteString

    This value can be passed back to UpdateSchedule to ensure that the schedule was not modified between a Describe and an Update, which could lead to lost updates and other confusion.

Instances

Instances details
Generic DescribeScheduleResponse Source # 
Instance details

Defined in Temporal.Client.Schedule

Associated Types

type Rep DescribeScheduleResponse 
Instance details

Defined in Temporal.Client.Schedule

type Rep DescribeScheduleResponse = D1 ('MetaData "DescribeScheduleResponse" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (C1 ('MetaCons "DescribeScheduleResponse" 'PrefixI 'True) ((S1 ('MetaSel ('Just "schedule") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Schedule) :*: S1 ('MetaSel ('Just "info") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ScheduleInfo)) :*: (S1 ('MetaSel ('Just "memo") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map Text Payload)) :*: (S1 ('MetaSel ('Just "searchAttributes") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map SearchAttributeKey SearchAttributeType)) :*: S1 ('MetaSel ('Just "conflictToken") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ByteString)))))
Show DescribeScheduleResponse Source # 
Instance details

Defined in Temporal.Client.Schedule

Eq DescribeScheduleResponse Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep DescribeScheduleResponse Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep DescribeScheduleResponse = D1 ('MetaData "DescribeScheduleResponse" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (C1 ('MetaCons "DescribeScheduleResponse" 'PrefixI 'True) ((S1 ('MetaSel ('Just "schedule") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Schedule) :*: S1 ('MetaSel ('Just "info") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ScheduleInfo)) :*: (S1 ('MetaSel ('Just "memo") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map Text Payload)) :*: (S1 ('MetaSel ('Just "searchAttributes") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map SearchAttributeKey SearchAttributeType)) :*: S1 ('MetaSel ('Just "conflictToken") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ByteString)))))

patchSchedule :: MonadIO m => ScheduleClient -> ScheduleId -> SchedulePatch -> m () Source #

Makes a specific change to a schedule or triggers an immediate action.

data SchedulePatch Source #

Constructors

SchedulePatch 

Fields

data UpdateScheduleRequest Source #

Constructors

UpdateScheduleRequest 

Fields

  • schedule :: !Schedule

    The new schedule. The four main fields of the schedule (spec, action, policies, state) are replaced completely by the values in this message.

  • conflictToken :: !(Maybe ByteString)

    This can be the value of conflict_token from a DescribeScheduleResponse, which will cause this request to fail if the schedule has been modified between the Describe and this Update. If missing, the schedule will be updated unconditionally.

  • requestId :: !Text

    A unique identifier for this update request for idempotence. Typically UUIDv4.

Instances

Instances details
Generic UpdateScheduleRequest Source # 
Instance details

Defined in Temporal.Client.Schedule

Associated Types

type Rep UpdateScheduleRequest 
Instance details

Defined in Temporal.Client.Schedule

type Rep UpdateScheduleRequest = D1 ('MetaData "UpdateScheduleRequest" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (C1 ('MetaCons "UpdateScheduleRequest" 'PrefixI 'True) (S1 ('MetaSel ('Just "schedule") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Schedule) :*: (S1 ('MetaSel ('Just "conflictToken") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe ByteString)) :*: S1 ('MetaSel ('Just "requestId") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text))))
Show UpdateScheduleRequest Source # 
Instance details

Defined in Temporal.Client.Schedule

Eq UpdateScheduleRequest Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep UpdateScheduleRequest Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep UpdateScheduleRequest = D1 ('MetaData "UpdateScheduleRequest" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (C1 ('MetaCons "UpdateScheduleRequest" 'PrefixI 'True) (S1 ('MetaSel ('Just "schedule") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Schedule) :*: (S1 ('MetaSel ('Just "conflictToken") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe ByteString)) :*: S1 ('MetaSel ('Just "requestId") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text))))

newtype ScheduleId Source #

Constructors

ScheduleId 

Fields

Instances

Instances details
FromJSON ScheduleId Source # 
Instance details

Defined in Temporal.Common

ToJSON ScheduleId Source # 
Instance details

Defined in Temporal.Common

IsString ScheduleId Source # 
Instance details

Defined in Temporal.Common

Show ScheduleId Source # 
Instance details

Defined in Temporal.Common

Eq ScheduleId Source # 
Instance details

Defined in Temporal.Common

Ord ScheduleId Source # 
Instance details

Defined in Temporal.Common

Hashable ScheduleId Source # 
Instance details

Defined in Temporal.Common

Lift ScheduleId Source # 
Instance details

Defined in Temporal.Common

Methods

lift :: Quote m => ScheduleId -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => ScheduleId -> Code m ScheduleId #

data ScheduleSpec Source #

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.

Constructors

ScheduleSpec 

Fields

  • structuredCalendar :: [StructuredCalendarSpec]

    Calendar-based specifications of times.

  • cronString :: [Text]

    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=name or TZ=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.

  • calendar :: [CalendarSpec]

    Calendar-based specifications of times.

  • interval :: [IntervalSpec]

    Interval-based specifications of times.

  • excludeCalendar :: [CalendarSpec]

    Any timestamps matching any of exclude_* will be skipped.

  • excludeStructuredCalendar :: [StructuredCalendarSpec]

    Any timestamps matching any of exclude_* will be skipped.

  • startTime :: Maybe SystemTime

    If startTime is set, any timestamps before startTime will be skipped. (Together, startTime and endTime make an inclusive interval.)

  • endTime :: Maybe SystemTime

    If endTime is set, any timestamps after endTime will be skipped.

  • jitter :: Maybe Duration

    All timestamps will be incremented by a random value from 0 to this amount of jitter. Default: 0

  • timezoneName :: Text

    Time zone to interpret all calendar-based specs in.

    If unset, defaults to UTC. We recommend using UTC for your application if at all possible, to avoid various surprising properties of time zones.

    Time zones may be provided by name, corresponding to names in the IANA time zone database (see https://www.iana.org/time-zones). The definition will be loaded by the Temporal server from the environment it runs in.

    If your application requires more control over the time zone definition used, it may pass in a complete definition in the form of a TZif file from the time zone database. If present, this will be used instead of loading anything from the environment. You are then responsible for updating timezone_data when the definition changes.

    Calendar spec matching is based on literal matching of the clock time with no special handling of DST: if you write a calendar spec that fires at 2:30am and specify a time zone that follows DST, that action will not be triggered on the day that has no 2:30am. Similarly, an action that fires at 1:30am will be triggered twice on the day that has two 1:30s.

    Also note that no actions are taken on leap-seconds (e.g. 23:59:60 UTC).

  • timezoneData :: Maybe ByteString

    Some time zone definitions are not available in the IANA database, or are not available in the version of the database that the Temporal server is using. In this case, you can provide a complete definition in the form of a TZif file from the time zone database. If present, this will be used instead of loading anything from the environment. You are then responsible for updating timezone_data when the definition changes.

Instances

Instances details
Generic ScheduleSpec Source # 
Instance details

Defined in Temporal.Client.Schedule

Associated Types

type Rep ScheduleSpec 
Instance details

Defined in Temporal.Client.Schedule

Show ScheduleSpec Source # 
Instance details

Defined in Temporal.Client.Schedule

Eq ScheduleSpec Source # 
Instance details

Defined in Temporal.Client.Schedule

Ord ScheduleSpec Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep ScheduleSpec Source # 
Instance details

Defined in Temporal.Client.Schedule

data Schedule Source #

Instances

Instances details
Generic Schedule Source # 
Instance details

Defined in Temporal.Client.Schedule

Associated Types

type Rep Schedule 
Instance details

Defined in Temporal.Client.Schedule

Methods

from :: Schedule -> Rep Schedule x #

to :: Rep Schedule x -> Schedule #

Show Schedule Source # 
Instance details

Defined in Temporal.Client.Schedule

Eq Schedule Source # 
Instance details

Defined in Temporal.Client.Schedule

Ord Schedule Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep Schedule Source # 
Instance details

Defined in Temporal.Client.Schedule

data TriggerImmediatelyRequest Source #

Instances

Instances details
Generic TriggerImmediatelyRequest Source # 
Instance details

Defined in Temporal.Client.Schedule

Associated Types

type Rep TriggerImmediatelyRequest 
Instance details

Defined in Temporal.Client.Schedule

type Rep TriggerImmediatelyRequest = D1 ('MetaData "TriggerImmediatelyRequest" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (C1 ('MetaCons "TriggerImmediatelyRequest" 'PrefixI 'True) (S1 ('MetaSel ('Just "overlapPolicy") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 OverlapPolicy)))
Show TriggerImmediatelyRequest Source # 
Instance details

Defined in Temporal.Client.Schedule

Eq TriggerImmediatelyRequest Source # 
Instance details

Defined in Temporal.Client.Schedule

Ord TriggerImmediatelyRequest Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep TriggerImmediatelyRequest Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep TriggerImmediatelyRequest = D1 ('MetaData "TriggerImmediatelyRequest" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (C1 ('MetaCons "TriggerImmediatelyRequest" 'PrefixI 'True) (S1 ('MetaSel ('Just "overlapPolicy") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 OverlapPolicy)))

data BackfillRequest Source #

Constructors

BackfillRequest 

Fields

Instances

Instances details
Generic BackfillRequest Source # 
Instance details

Defined in Temporal.Client.Schedule

Associated Types

type Rep BackfillRequest 
Instance details

Defined in Temporal.Client.Schedule

type Rep BackfillRequest = D1 ('MetaData "BackfillRequest" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (C1 ('MetaCons "BackfillRequest" 'PrefixI 'True) (S1 ('MetaSel ('Just "startTime") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SystemTime) :*: (S1 ('MetaSel ('Just "endTime") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SystemTime) :*: S1 ('MetaSel ('Just "overlapPolicy") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 OverlapPolicy))))
Show BackfillRequest Source # 
Instance details

Defined in Temporal.Client.Schedule

Eq BackfillRequest Source # 
Instance details

Defined in Temporal.Client.Schedule

Ord BackfillRequest Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep BackfillRequest Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep BackfillRequest = D1 ('MetaData "BackfillRequest" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (C1 ('MetaCons "BackfillRequest" 'PrefixI 'True) (S1 ('MetaSel ('Just "startTime") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SystemTime) :*: (S1 ('MetaSel ('Just "endTime") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SystemTime) :*: S1 ('MetaSel ('Just "overlapPolicy") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 OverlapPolicy))))

data StructuredCalendarSpec Source #

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.

Constructors

StructuredCalendarSpec 

Fields

Instances

Instances details
Generic StructuredCalendarSpec Source # 
Instance details

Defined in Temporal.Client.Schedule

Show StructuredCalendarSpec Source # 
Instance details

Defined in Temporal.Client.Schedule

Eq StructuredCalendarSpec Source # 
Instance details

Defined in Temporal.Client.Schedule

Ord StructuredCalendarSpec Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep StructuredCalendarSpec Source # 
Instance details

Defined in Temporal.Client.Schedule

data CalendarSpec Source #

Constructors

CalendarSpec 

Fields

  • second :: !Text
     
  • minute :: !Text

    Expression to match minutes. Default: 0

  • hour :: !Text

    Expression to match hours. Default: 0

  • dayOfMonth :: !Text

    Expression to match days of the month. Default: *

  • month :: !Text

    Expression to match months. Default: *

  • year :: !Text

    Expression to match years. Default: *

  • dayOfWeek :: !Text

    Expression to match days of the week. Default: *

  • comment :: !Text

    Free-form comment describing the intention of this spec.

Instances

Instances details
Generic CalendarSpec Source # 
Instance details

Defined in Temporal.Client.Schedule

Show CalendarSpec Source # 
Instance details

Defined in Temporal.Client.Schedule

Eq CalendarSpec Source # 
Instance details

Defined in Temporal.Client.Schedule

Ord CalendarSpec Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep CalendarSpec Source # 
Instance details

Defined in Temporal.Client.Schedule

data IntervalSpec Source #

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.

Constructors

IntervalSpec 

Fields

Instances

Instances details
Generic IntervalSpec Source # 
Instance details

Defined in Temporal.Client.Schedule

Associated Types

type Rep IntervalSpec 
Instance details

Defined in Temporal.Client.Schedule

type Rep IntervalSpec = D1 ('MetaData "IntervalSpec" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (C1 ('MetaCons "IntervalSpec" 'PrefixI 'True) (S1 ('MetaSel ('Just "interval") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Duration) :*: S1 ('MetaSel ('Just "phase") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Duration))))
Show IntervalSpec Source # 
Instance details

Defined in Temporal.Client.Schedule

Eq IntervalSpec Source # 
Instance details

Defined in Temporal.Client.Schedule

Ord IntervalSpec Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep IntervalSpec Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep IntervalSpec = D1 ('MetaData "IntervalSpec" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (C1 ('MetaCons "IntervalSpec" 'PrefixI 'True) (S1 ('MetaSel ('Just "interval") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Duration) :*: S1 ('MetaSel ('Just "phase") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Duration))))

data WorkflowExecution Source #

Constructors

WorkflowExecution 

Fields

Instances

Instances details
Generic WorkflowExecution Source # 
Instance details

Defined in Temporal.Client.Schedule

Associated Types

type Rep WorkflowExecution 
Instance details

Defined in Temporal.Client.Schedule

type Rep WorkflowExecution = D1 ('MetaData "WorkflowExecution" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (C1 ('MetaCons "WorkflowExecution" 'PrefixI 'True) (S1 ('MetaSel ('Just "workflowId") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 WorkflowId) :*: S1 ('MetaSel ('Just "runId") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 RunId)))
Show WorkflowExecution Source # 
Instance details

Defined in Temporal.Client.Schedule

Eq WorkflowExecution Source # 
Instance details

Defined in Temporal.Client.Schedule

Ord WorkflowExecution Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep WorkflowExecution Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep WorkflowExecution = D1 ('MetaData "WorkflowExecution" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (C1 ('MetaCons "WorkflowExecution" 'PrefixI 'True) (S1 ('MetaSel ('Just "workflowId") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 WorkflowId) :*: S1 ('MetaSel ('Just "runId") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 RunId)))

data ScheduleInfo Source #

Constructors

ScheduleInfo 

Fields

Instances

Instances details
Generic ScheduleInfo Source # 
Instance details

Defined in Temporal.Client.Schedule

Associated Types

type Rep ScheduleInfo 
Instance details

Defined in Temporal.Client.Schedule

Show ScheduleInfo Source # 
Instance details

Defined in Temporal.Client.Schedule

Eq ScheduleInfo Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep ScheduleInfo Source # 
Instance details

Defined in Temporal.Client.Schedule

mkScheduleAction Source #

Arguments

:: forall wf (m :: Type -> Type). (MonadIO m, WorkflowRef wf) 
=> wf 
-> WorkflowId

Unlike other uses of WorkflowId, this will be used as a prefix for the actual workflow id, which will be unique.

-> StartWorkflowOptions

All fields of StartWorkflowOptions are valid except for the workflow id reuse policy and cron string.

The workflow id will generally have a timestamp appended for uniqueness.

-> WorkflowArgs wf :->: m ScheduleAction 

data SchedulePolicies Source #

Constructors

SchedulePolicies 

Fields

  • overlapPolicy :: !OverlapPolicy

    Policy for overlaps. Note that this can be changed after a schedule has taken some actions, and some changes might produce unintuitive results. In general, the later policy overrides the earlier policy.

  • catchupWindow :: !(Maybe 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 60 seconds, and can't be less than 10 seconds.

  • pauseOnFailure :: !Bool

    If true, and a workflow run fails or times out, turn on "paused". This applies after retry policies: the full chain of retries must fail to trigger a pause here.

Instances

Instances details
Generic SchedulePolicies Source # 
Instance details

Defined in Temporal.Client.Schedule

Associated Types

type Rep SchedulePolicies 
Instance details

Defined in Temporal.Client.Schedule

type Rep SchedulePolicies = D1 ('MetaData "SchedulePolicies" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (C1 ('MetaCons "SchedulePolicies" 'PrefixI 'True) (S1 ('MetaSel ('Just "overlapPolicy") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 OverlapPolicy) :*: (S1 ('MetaSel ('Just "catchupWindow") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Duration)) :*: S1 ('MetaSel ('Just "pauseOnFailure") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool))))
Show SchedulePolicies Source # 
Instance details

Defined in Temporal.Client.Schedule

Eq SchedulePolicies Source # 
Instance details

Defined in Temporal.Client.Schedule

Ord SchedulePolicies Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep SchedulePolicies Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep SchedulePolicies = D1 ('MetaData "SchedulePolicies" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (C1 ('MetaCons "SchedulePolicies" 'PrefixI 'True) (S1 ('MetaSel ('Just "overlapPolicy") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 OverlapPolicy) :*: (S1 ('MetaSel ('Just "catchupWindow") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Duration)) :*: S1 ('MetaSel ('Just "pauseOnFailure") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool))))

data ScheduleState Source #

Constructors

ScheduleState 

Fields

  • notes :: !Text

    Informative human-readable message with contextual notes, e.g. the reason a schedule is paused. The system may overwrite this message on certain conditions, e.g. when pause-on-failure happens.

  • paused :: !Bool

    If true, do not take any actions based on the schedule spec.

  • limitedActions :: !Bool

    If limited_actions is true, decrement remaining_actions after each action, and do not take any more scheduled actions if remaining_actions is zero. Actions may still be taken by explicit request (i.e. trigger immediately or backfill). Skipped actions (due to overlap policy) do not count against remaining actions.

  • remainingActions :: !Int64
     

Instances

Instances details
Generic ScheduleState Source # 
Instance details

Defined in Temporal.Client.Schedule

Associated Types

type Rep ScheduleState 
Instance details

Defined in Temporal.Client.Schedule

type Rep ScheduleState = D1 ('MetaData "ScheduleState" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (C1 ('MetaCons "ScheduleState" 'PrefixI 'True) ((S1 ('MetaSel ('Just "notes") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Just "paused") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just "limitedActions") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool) :*: S1 ('MetaSel ('Just "remainingActions") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int64))))
Show ScheduleState Source # 
Instance details

Defined in Temporal.Client.Schedule

Eq ScheduleState Source # 
Instance details

Defined in Temporal.Client.Schedule

Ord ScheduleState Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep ScheduleState Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep ScheduleState = D1 ('MetaData "ScheduleState" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (C1 ('MetaCons "ScheduleState" 'PrefixI 'True) ((S1 ('MetaSel ('Just "notes") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Just "paused") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just "limitedActions") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool) :*: S1 ('MetaSel ('Just "remainingActions") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int64))))

data OverlapPolicy Source #

Constructors

Unspecified 
Skip

Skip (default) means don't start anything. When the workflow completes, the next scheduled event after that time will be considered.

BufferOne

BufferOne means start the workflow again soon as the current one completes, but only buffer one start in this way. If another start is supposed to happen when the workflow is running, and one is already buffered, then only the first one will be started after the running workflow finishes.

BufferAll

BufferAll means buffer up any number of starts to all happen sequentially, immediately after the running workflow completes.

CancelOther

CancelOther means that if there is another workflow running, cancel it, and start the new one after the old one completes cancellation.

TerminateOther

TerminateOther means that if there is another workflow running, terminate it and start the new one immediately.

AllowAll

AllowAll means start any number of concurrent workflows. Note that with this policy, last completion result and last failure will not be available since workflows are not sequential.

OverlapPolicyUnrecognized 

Instances

Instances details
Generic OverlapPolicy Source # 
Instance details

Defined in Temporal.Client.Schedule

Associated Types

type Rep OverlapPolicy 
Instance details

Defined in Temporal.Client.Schedule

type Rep OverlapPolicy = D1 ('MetaData "OverlapPolicy" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (((C1 ('MetaCons "Unspecified" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Skip" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "BufferOne" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BufferAll" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "CancelOther" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TerminateOther" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "AllowAll" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OverlapPolicyUnrecognized" 'PrefixI 'False) (U1 :: Type -> Type))))
Show OverlapPolicy Source # 
Instance details

Defined in Temporal.Client.Schedule

Eq OverlapPolicy Source # 
Instance details

Defined in Temporal.Client.Schedule

Ord OverlapPolicy Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep OverlapPolicy Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep OverlapPolicy = D1 ('MetaData "OverlapPolicy" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (((C1 ('MetaCons "Unspecified" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Skip" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "BufferOne" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BufferAll" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "CancelOther" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TerminateOther" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "AllowAll" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OverlapPolicyUnrecognized" 'PrefixI 'False) (U1 :: Type -> Type))))

data Range Source #

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.

Constructors

Range 

Fields

Instances

Instances details
Generic Range Source # 
Instance details

Defined in Temporal.Client.Schedule

Associated Types

type Rep Range 
Instance details

Defined in Temporal.Client.Schedule

type Rep Range = D1 ('MetaData "Range" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (C1 ('MetaCons "Range" 'PrefixI 'True) (S1 ('MetaSel ('Just "start") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int32) :*: (S1 ('MetaSel ('Just "end") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int32) :*: S1 ('MetaSel ('Just "step") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int32))))

Methods

from :: Range -> Rep Range x #

to :: Rep Range x -> Range #

Show Range Source # 
Instance details

Defined in Temporal.Client.Schedule

Methods

showsPrec :: Int -> Range -> ShowS #

show :: Range -> String #

showList :: [Range] -> ShowS #

Eq Range Source # 
Instance details

Defined in Temporal.Client.Schedule

Methods

(==) :: Range -> Range -> Bool #

(/=) :: Range -> Range -> Bool #

Ord Range Source # 
Instance details

Defined in Temporal.Client.Schedule

Methods

compare :: Range -> Range -> Ordering #

(<) :: Range -> Range -> Bool #

(<=) :: Range -> Range -> Bool #

(>) :: Range -> Range -> Bool #

(>=) :: Range -> Range -> Bool #

max :: Range -> Range -> Range #

min :: Range -> Range -> Range #

type Rep Range Source # 
Instance details

Defined in Temporal.Client.Schedule

type Rep Range = D1 ('MetaData "Range" "Temporal.Client.Schedule" "temporal-sdk-0.0.1.0-inplace" 'False) (C1 ('MetaCons "Range" 'PrefixI 'True) (S1 ('MetaSel ('Just "start") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int32) :*: (S1 ('MetaSel ('Just "end") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int32) :*: S1 ('MetaSel ('Just "step") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int32))))