AWS.SSMContacts reference
AcceptPage
Section titled “AcceptPage”Source:
src/AWS/SSMContacts/AcceptPage.ts
Runtime binding for ssm-contacts:AcceptPage.
Acknowledge a page with the accept code Incident Manager delivered to
the contact’s channel — READ marks it seen, DELIVERED confirms
receipt. Acknowledging stops further escalation stages.
Provide the implementation with
Effect.provide(AWS.SSMContacts.AcceptPageHttp).
AcceptPage: Working with Pages
Section titled “AcceptPage: Working with Pages”const acceptPage = yield* AWS.SSMContacts.AcceptPage();
yield* acceptPage({ PageId: pageArn, AcceptType: "READ", AcceptCode: "425440",});ActivateContactChannel
Section titled “ActivateContactChannel”Source:
src/AWS/SSMContacts/ActivateContactChannel.ts
Runtime binding for ssm-contacts:ActivateContactChannel.
Activate the bound contact channel with the code its owner received,
so Incident Manager can page through it. The channel’s ARN is injected
as ContactChannelId.
Provide the implementation with
Effect.provide(AWS.SSMContacts.ActivateContactChannelHttp).
ActivateContactChannel: Activating Contact Channels
Section titled “ActivateContactChannel: Activating Contact Channels”const activateContactChannel = yield* AWS.SSMContacts.ActivateContactChannel(email);
yield* activateContactChannel({ ActivationCode: "466136" });Contact
Section titled “Contact”Source:
src/AWS/SSMContacts/Contact.ts
An Incident Manager contact — a person Incident Manager engages during an incident, an escalation plan that engages contacts in phases, or an on-call schedule backed by rotations.
Requires the account’s Incident Manager replication set
(SSMIncidents.ReplicationSet) to exist.
Contact: Creating Contacts
Section titled “Contact: Creating Contacts”Personal contact
const oncall = yield* SSMContacts.Contact("Oncall", { type: "PERSONAL", displayName: "Primary On-Call",});Contact with an inline engagement plan
const channel = yield* SSMContacts.ContactChannel("Email", { contactId: oncall.contactArn, type: "EMAIL", deliveryAddress: { SimpleAddress: "oncall@example.com" }, deferActivation: true,});const escalation = yield* SSMContacts.Contact("Escalation", { type: "ESCALATION", plan: { Stages: [ { DurationInMinutes: 5, Targets: [ { ContactTargetInfo: { ContactId: oncall.contactArn, IsEssential: true } }, ], }, ], },});ContactChannel
Section titled “ContactChannel”Source:
src/AWS/SSMContacts/ContactChannel.ts
An Incident Manager contact channel — the method (SMS, voice, or email) that Incident Manager uses to engage a contact during an incident.
ContactChannel: Creating Contact Channels
Section titled “ContactChannel: Creating Contact Channels”Email channel without activation
const email = yield* SSMContacts.ContactChannel("Email", { contactId: oncall.contactArn, type: "EMAIL", deliveryAddress: { SimpleAddress: "oncall@example.com" }, deferActivation: true,});SMS channel
const sms = yield* SSMContacts.ContactChannel("Sms", { contactId: oncall.contactArn, type: "SMS", deliveryAddress: { SimpleAddress: "+15551234567" },});CreateRotationOverride
Section titled “CreateRotationOverride”Source:
src/AWS/SSMContacts/CreateRotationOverride.ts
Runtime binding for ssm-contacts:CreateRotationOverride.
Temporarily override who is on call in the bound rotation — e.g. cover
a shift while the scheduled contact is unavailable. The rotation’s ARN
is injected as RotationId.
Provide the implementation with
Effect.provide(AWS.SSMContacts.CreateRotationOverrideHttp).
CreateRotationOverride: Managing On-Call Rotations
Section titled “CreateRotationOverride: Managing On-Call Rotations”const createRotationOverride = yield* AWS.SSMContacts.CreateRotationOverride(rotation);
const { RotationOverrideId } = yield* createRotationOverride({ NewContactIds: [standbyContactArn], StartTime: new Date(), EndTime: new Date(Date.now() + 8 * 60 * 60 * 1000),});DeactivateContactChannel
Section titled “DeactivateContactChannel”Source:
src/AWS/SSMContacts/DeactivateContactChannel.ts
Runtime binding for ssm-contacts:DeactivateContactChannel.
Deactivate the bound contact channel so Incident Manager stops paging
through it — e.g. while the owner is on leave. The channel’s ARN is
injected as ContactChannelId.
Provide the implementation with
Effect.provide(AWS.SSMContacts.DeactivateContactChannelHttp).
DeactivateContactChannel: Activating Contact Channels
Section titled “DeactivateContactChannel: Activating Contact Channels”const deactivateContactChannel = yield* AWS.SSMContacts.DeactivateContactChannel(email);
yield* deactivateContactChannel();DeleteRotationOverride
Section titled “DeleteRotationOverride”Source:
src/AWS/SSMContacts/DeleteRotationOverride.ts
Runtime binding for ssm-contacts:DeleteRotationOverride.
Delete a rotation override of the bound rotation, restoring the
regular schedule. The rotation’s ARN is injected as RotationId.
Provide the implementation with
Effect.provide(AWS.SSMContacts.DeleteRotationOverrideHttp).
DeleteRotationOverride: Managing On-Call Rotations
Section titled “DeleteRotationOverride: Managing On-Call Rotations”const deleteRotationOverride = yield* AWS.SSMContacts.DeleteRotationOverride(rotation);
yield* deleteRotationOverride({ RotationOverrideId: overrideId });DescribeEngagement
Section titled “DescribeEngagement”Source:
src/AWS/SSMContacts/DescribeEngagement.ts
Runtime binding for ssm-contacts:DescribeEngagement.
Read the details of an engagement — sender, subject, content, and the
incident it belongs to.
Provide the implementation with
Effect.provide(AWS.SSMContacts.DescribeEngagementHttp).
DescribeEngagement: Managing Engagements
Section titled “DescribeEngagement: Managing Engagements”const describeEngagement = yield* AWS.SSMContacts.DescribeEngagement();
const engagement = yield* describeEngagement({ EngagementId: engagementArn });// engagement.Subject, engagement.ContactArn, ...DescribePage
Section titled “DescribePage”Source:
src/AWS/SSMContacts/DescribePage.ts
Runtime binding for ssm-contacts:DescribePage.
Read the details of a page — the engagement it belongs to, its subject
and content, and delivery/read timestamps.
Provide the implementation with
Effect.provide(AWS.SSMContacts.DescribePageHttp).
DescribePage: Working with Pages
Section titled “DescribePage: Working with Pages”const describePage = yield* AWS.SSMContacts.DescribePage();
const page = yield* describePage({ PageId: pageArn });// page.SentTime, page.ReadTime, page.DeliveryTime, ...GetRotationOverride
Section titled “GetRotationOverride”Source:
src/AWS/SSMContacts/GetRotationOverride.ts
Runtime binding for ssm-contacts:GetRotationOverride.
Read a rotation override of the bound rotation — its replacement
contacts and time window. The rotation’s ARN is injected as
RotationId.
Provide the implementation with
Effect.provide(AWS.SSMContacts.GetRotationOverrideHttp).
GetRotationOverride: Managing On-Call Rotations
Section titled “GetRotationOverride: Managing On-Call Rotations”const getRotationOverride = yield* AWS.SSMContacts.GetRotationOverride(rotation);
const override = yield* getRotationOverride({ RotationOverrideId: overrideId,});ListEngagements
Section titled “ListEngagements”Source:
src/AWS/SSMContacts/ListEngagements.ts
Runtime binding for ssm-contacts:ListEngagements.
List all engagements that have happened in the account, optionally
filtered by incident or time range.
Provide the implementation with
Effect.provide(AWS.SSMContacts.ListEngagementsHttp).
ListEngagements: Managing Engagements
Section titled “ListEngagements: Managing Engagements”const listEngagements = yield* AWS.SSMContacts.ListEngagements();
const { Engagements } = yield* listEngagements();ListPageReceipts
Section titled “ListPageReceipts”Source:
src/AWS/SSMContacts/ListPageReceipts.ts
Runtime binding for ssm-contacts:ListPageReceipts.
List the delivery/read receipts of a page — one receipt per contact
channel the page was sent over.
Provide the implementation with
Effect.provide(AWS.SSMContacts.ListPageReceiptsHttp).
ListPageReceipts: Working with Pages
Section titled “ListPageReceipts: Working with Pages”const listPageReceipts = yield* AWS.SSMContacts.ListPageReceipts();
const { Receipts } = yield* listPageReceipts({ PageId: pageArn });// receipts with ReceiptType "READ" mean the page was acknowledgedListPageResolutions
Section titled “ListPageResolutions”Source:
src/AWS/SSMContacts/ListPageResolutions.ts
Runtime binding for ssm-contacts:ListPageResolutions.
List the resolution path of a page — the chain of escalation-plan and
on-call-schedule hops that led Incident Manager to the engaged contact.
Provide the implementation with
Effect.provide(AWS.SSMContacts.ListPageResolutionsHttp).
ListPageResolutions: Working with Pages
Section titled “ListPageResolutions: Working with Pages”const listPageResolutions = yield* AWS.SSMContacts.ListPageResolutions();
const { PageResolutions } = yield* listPageResolutions({ PageId: pageArn });ListPagesByContact
Section titled “ListPagesByContact”Source:
src/AWS/SSMContacts/ListPagesByContact.ts
Runtime binding for ssm-contacts:ListPagesByContact.
List the pages (individual engagement deliveries) sent to the bound
contact. The contact’s ARN is injected as ContactId.
Provide the implementation with
Effect.provide(AWS.SSMContacts.ListPagesByContactHttp).
ListPagesByContact: Working with Pages
Section titled “ListPagesByContact: Working with Pages”const listPagesByContact = yield* AWS.SSMContacts.ListPagesByContact(oncall);
const { Pages } = yield* listPagesByContact();ListPagesByEngagement
Section titled “ListPagesByEngagement”Source:
src/AWS/SSMContacts/ListPagesByEngagement.ts
Runtime binding for ssm-contacts:ListPagesByEngagement.
List the pages an engagement produced — one page per engaged contact
and escalation stage.
Provide the implementation with
Effect.provide(AWS.SSMContacts.ListPagesByEngagementHttp).
ListPagesByEngagement: Working with Pages
Section titled “ListPagesByEngagement: Working with Pages”const listPagesByEngagement = yield* AWS.SSMContacts.ListPagesByEngagement();
const { Pages } = yield* listPagesByEngagement({ EngagementId: engagementArn });ListPreviewRotationShifts
Section titled “ListPreviewRotationShifts”Source:
src/AWS/SSMContacts/ListPreviewRotationShifts.ts
Runtime binding for ssm-contacts:ListPreviewRotationShifts.
Preview the shifts a hypothetical rotation configuration would produce
before creating or updating a rotation. Takes members, a time zone,
and recurrence settings directly, so it is account-scoped.
Provide the implementation with
Effect.provide(AWS.SSMContacts.ListPreviewRotationShiftsHttp).
ListPreviewRotationShifts: Managing On-Call Rotations
Section titled “ListPreviewRotationShifts: Managing On-Call Rotations”const listPreviewRotationShifts = yield* AWS.SSMContacts.ListPreviewRotationShifts();
const { RotationShifts } = yield* listPreviewRotationShifts({ EndTime: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000), Members: ["alice", "bob"], TimeZoneId: "America/Los_Angeles", Recurrence: { NumberOfOnCalls: 1, RecurrenceMultiplier: 1, DailySettings: [{ HourOfDay: 9, MinuteOfHour: 0 }], },});ListRotationOverrides
Section titled “ListRotationOverrides”Source:
src/AWS/SSMContacts/ListRotationOverrides.ts
Runtime binding for ssm-contacts:ListRotationOverrides.
List the rotation overrides of the bound rotation in a time window.
The rotation’s ARN is injected as RotationId.
Provide the implementation with
Effect.provide(AWS.SSMContacts.ListRotationOverridesHttp).
ListRotationOverrides: Managing On-Call Rotations
Section titled “ListRotationOverrides: Managing On-Call Rotations”const listRotationOverrides = yield* AWS.SSMContacts.ListRotationOverrides(rotation);
const { RotationOverrides } = yield* listRotationOverrides({ StartTime: new Date(), EndTime: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000),});ListRotationShifts
Section titled “ListRotationShifts”Source:
src/AWS/SSMContacts/ListRotationShifts.ts
Runtime binding for ssm-contacts:ListRotationShifts.
List the bound rotation’s shifts in a time window — who is (or will
be) on call and when. The rotation’s ARN is injected as RotationId.
Provide the implementation with
Effect.provide(AWS.SSMContacts.ListRotationShiftsHttp).
ListRotationShifts: Managing On-Call Rotations
Section titled “ListRotationShifts: Managing On-Call Rotations”const listRotationShifts = yield* AWS.SSMContacts.ListRotationShifts(rotation);
const { RotationShifts } = yield* listRotationShifts({ EndTime: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000),});Source:
src/AWS/SSMContacts/Plan.ts
The engagement plan of an Incident Manager contact — the staged sequence
of contact channels (for PERSONAL contacts), contacts (for ESCALATION
plans), or rotations (for ONCALL_SCHEDULE contacts) that Incident
Manager engages during an incident.
Manage a contact’s plan either inline via the plan prop on
SSMContacts.Contact or standalone with this resource — not both.
Deleting this resource resets the contact’s plan to empty.
Plan: Managing Engagement Plans
Section titled “Plan: Managing Engagement Plans”const plan = yield* SSMContacts.Plan("OncallPlan", { contactId: oncall.contactArn, stages: [ { DurationInMinutes: 5, Targets: [ { ChannelTargetInfo: { ContactChannelId: email.contactChannelArn, RetryIntervalInMinutes: 1, }, }, ], }, ],});Rotation
Section titled “Rotation”Source:
src/AWS/SSMContacts/Rotation.ts
An Incident Manager on-call rotation — a recurring schedule that rotates
engagement duty between contacts. Attach rotations to an
ONCALL_SCHEDULE contact via its engagement plan’s RotationIds.
Rotation: Creating Rotations
Section titled “Rotation: Creating Rotations”const rotation = yield* SSMContacts.Rotation("Primary", { contactIds: [alice.contactArn, bob.contactArn], timeZoneId: "America/Los_Angeles", startTime: "2026-01-01T00:00:00Z", recurrence: { NumberOfOnCalls: 1, RecurrenceMultiplier: 1, DailySettings: [{ HourOfDay: 9, MinuteOfHour: 0 }], },});SendActivationCode
Section titled “SendActivationCode”Source:
src/AWS/SSMContacts/SendActivationCode.ts
Runtime binding for ssm-contacts:SendActivationCode.
Send (or re-send) the activation code to the bound contact channel’s
address. The channel owner passes the code to ActivateContactChannel
to confirm the channel. The channel’s ARN is injected as
ContactChannelId.
Provide the implementation with
Effect.provide(AWS.SSMContacts.SendActivationCodeHttp).
SendActivationCode: Activating Contact Channels
Section titled “SendActivationCode: Activating Contact Channels”const sendActivationCode = yield* AWS.SSMContacts.SendActivationCode(email);
// runtime — e.g. behind a "resend code" buttonyield* sendActivationCode();StartEngagement
Section titled “StartEngagement”Source:
src/AWS/SSMContacts/StartEngagement.ts
Runtime binding for ssm-contacts:StartEngagement.
Page the bound contact (or run its escalation plan) — Incident Manager
works through the contact’s engagement plan, sending the subject and
content over each stage’s channels until the page is acknowledged. The
contact’s ARN is injected as ContactId.
Provide the implementation with
Effect.provide(AWS.SSMContacts.StartEngagementHttp).
StartEngagement: Starting Engagements
Section titled “StartEngagement: Starting Engagements”// init — bind the operation to the contactconst startEngagement = yield* AWS.SSMContacts.StartEngagement(oncall);
// runtime — page the contact when an alert firesconst { EngagementArn } = yield* startEngagement({ Sender: "alert-bot", Subject: "Database CPU at 95%", Content: "Primary DB is saturated - please investigate.",});StopEngagement
Section titled “StopEngagement”Source:
src/AWS/SSMContacts/StopEngagement.ts
Runtime binding for ssm-contacts:StopEngagement.
Stop a running engagement, halting any further stages of the contact’s
engagement plan — e.g. once the incident is acknowledged or resolved.
Engagement ARNs are minted at runtime by StartEngagement, so this
binding is account-scoped.
Provide the implementation with
Effect.provide(AWS.SSMContacts.StopEngagementHttp).
StopEngagement: Managing Engagements
Section titled “StopEngagement: Managing Engagements”const stopEngagement = yield* AWS.SSMContacts.StopEngagement();
yield* stopEngagement({ EngagementId: engagementArn, Reason: "incident resolved",});