Skip to content

AWS.SSMContacts reference

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).

const acceptPage = yield* AWS.SSMContacts.AcceptPage();
yield* acceptPage({
PageId: pageArn,
AcceptType: "READ",
AcceptCode: "425440",
});

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" });

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.

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 } },
],
},
],
},
});

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.

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" },
});

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),
});

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();

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 });

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).

const describeEngagement = yield* AWS.SSMContacts.DescribeEngagement();
const engagement = yield* describeEngagement({ EngagementId: engagementArn });
// engagement.Subject, engagement.ContactArn, ...

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).

const describePage = yield* AWS.SSMContacts.DescribePage();
const page = yield* describePage({ PageId: pageArn });
// page.SentTime, page.ReadTime, page.DeliveryTime, ...

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,
});

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).

const listEngagements = yield* AWS.SSMContacts.ListEngagements();
const { Engagements } = yield* listEngagements();

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).

const listPageReceipts = yield* AWS.SSMContacts.ListPageReceipts();
const { Receipts } = yield* listPageReceipts({ PageId: pageArn });
// receipts with ReceiptType "READ" mean the page was acknowledged

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).

const listPageResolutions = yield* AWS.SSMContacts.ListPageResolutions();
const { PageResolutions } = yield* listPageResolutions({ PageId: pageArn });

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).

const listPagesByContact = yield* AWS.SSMContacts.ListPagesByContact(oncall);
const { Pages } = yield* listPagesByContact();

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).

const listPagesByEngagement = yield* AWS.SSMContacts.ListPagesByEngagement();
const { Pages } = yield* listPagesByEngagement({ EngagementId: engagementArn });

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 }],
},
});

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),
});

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.

const plan = yield* SSMContacts.Plan("OncallPlan", {
contactId: oncall.contactArn,
stages: [
{
DurationInMinutes: 5,
Targets: [
{
ChannelTargetInfo: {
ContactChannelId: email.contactChannelArn,
RetryIntervalInMinutes: 1,
},
},
],
},
],
});

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.

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 }],
},
});

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" button
yield* sendActivationCode();

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).

// init — bind the operation to the contact
const startEngagement = yield* AWS.SSMContacts.StartEngagement(oncall);
// runtime — page the contact when an alert fires
const { EngagementArn } = yield* startEngagement({
Sender: "alert-bot",
Subject: "Database CPU at 95%",
Content: "Primary DB is saturated - please investigate.",
});

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).

const stopEngagement = yield* AWS.SSMContacts.StopEngagement();
yield* stopEngagement({
EngagementId: engagementArn,
Reason: "incident resolved",
});