1import type * as ssm from "@distilled.cloud/aws/ssm-contacts";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Rotation } from "./Rotation.ts";
5
6/**
7 * Runtime binding for `ssm-contacts:ListRotationShifts`.
8 *
9 * List the bound rotation's shifts in a time window — who is (or will
10 * be) on call and when. The rotation's ARN is injected as `RotationId`.
11 * Provide the implementation with
12 * `Effect.provide(AWS.SSMContacts.ListRotationShiftsHttp)`.
13 * ### Managing On-Call Rotations
14 * **Example:** Who Is On Call This Week
15 * ```typescript
16 * const listRotationShifts = yield* AWS.SSMContacts.ListRotationShifts(rotation);
17 *
18 * const { RotationShifts } = yield* listRotationShifts({
19 * EndTime: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000),
20 * });
21 * ```
22 *
23 * @binding
24 */
25export interface ListRotationShifts extends Binding.Service<
26 ListRotationShifts,
27 "AWS.SSMContacts.ListRotationShifts",
28 (
29 rotation: Rotation,
30 ) => Effect.Effect<
31 (
32 request: Omit<ssm.ListRotationShiftsRequest, "RotationId">,
33 ) => Effect.Effect<
34 ssm.ListRotationShiftsResult,
35 ssm.ListRotationShiftsError
36 >
37 >
38> {}
39export const ListRotationShifts = Binding.Service<ListRotationShifts>(
40 "AWS.SSMContacts.ListRotationShifts",
41);