The AWS::SSMContacts::Contact
resource specifies a contact or escalation
plan. Incident Manager contacts are a subset of actions and data types that you
can use for managing responder engagement and interaction.
Syntax
To declare this entity in your AWS CloudFormation template, use the following syntax:
JSON
{
"Type" : "AWS::SSMContacts::Contact",
"Properties" : {
"Alias" : String
,
"DisplayName" : String
,
"Plan" : [ Stage, ... ]
,
"Type" : String
}
}
YAML
Type: AWS::SSMContacts::Contact
Properties:
Alias: String
DisplayName: String
Plan:
- Stage
Type: String
Properties
Alias
-
The unique and identifiable alias of the contact or escalation plan.
Required: Yes
Type: String
Pattern:
^[a-z0-9_\-\.]*$
Minimum:
1
Maximum:
255
Update requires: Replacement
DisplayName
-
The full name of the contact or escalation plan.
Required: Yes
Type: String
Pattern:
^[a-zA-Z0-9_\-\s]*$
Minimum:
1
Maximum:
255
Update requires: No interruption
Plan
-
A list of stages. A contact has an engagement plan with stages that contact specified contact channels. An escalation plan uses stages that contact specified contacts.
Required: No
Type: Array of Stage
Update requires: No interruption
Type
-
The type of contact.
-
PERSONAL
: A single, individual contact. -
ESCALATION
: An escalation plan. -
ONCALL_SCHEDULE
: An on-call schedule.
Required: Yes
Type: String
Allowed values:
PERSONAL | ESCALATION | ONCALL_SCHEDULE
Update requires: Replacement
-
Return values
Ref
When you pass the logical ID of this resource to the intrinsic Ref
function, Ref
returns the ARN of the resource.
For more information about using the Ref
function, see Ref
.
Fn::GetAtt
The Fn::GetAtt
intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.
For more information about using the Fn::GetAtt
intrinsic function, see Fn::GetAtt
.
Arn
-
The Amazon Resource Name (ARN) of the
Contact
resource, such asarn:aws:ssm-contacts:us-west-2:123456789012:contact/contactalias
.
Examples
Create Incident Manager resources
The following example demonstrates the creation of not only contacts, but also a
contact channel, a contact plan, and on-call rotation schedules. We recommend
creating all Incident Manager
Contacts
resources using a single AWS CloudFormation
template.
JSON
{
"AWSTemplateFormatVersion": "2010-09-09",
"Resources": {
"MySSMContact": {
"Type": "AWS::SSMContacts::Contact",
"Properties": {
"Alias": "my-ssm-contact",
"DisplayName": "My_SSM_contact",
"Type": "PERSONAL"
}
},
"MyEscalationPlan": {
"Type": "AWS::SSMContacts::Contact",
"Properties": {
"Alias": "my-escalation-plan",
"DisplayName": "My_escalation_plan",
"Type": "ESCALATION"
}
},
"MyOncallScheduleContact": {
"Type": "AWS::SSMContacts::Contact",
"Properties": {
"Alias": "my-oncall-schedule",
"DisplayName": "My_on-call_schedule",
"Type": "ONCALL_SCHEDULE"
}
},
"MyContactChannelEmail": {
"Type": "AWS::SSMContacts::ContactChannel",
"Properties": {
"ContactId": {"Ref": "MySSMContact"},
"ChannelName": "MyEmailChannel",
"ChannelType": "EMAIL",
"ChannelAddress": "contact-email-channel@example.com"
}
},
"MySSMContactEngagementPlan": {
"Type": "AWS::SSMContacts::Plan",
"Properties": {
"ContactId": {"Ref": "MySSMContact"},
"Stages": [
{
"DurationInMinutes": 10,
"Targets": [
{
"ChannelTargetInfo": {
"ChannelId": {"Ref": "MyContactChannelEmail"},
"RetryIntervalInMinutes": 3
}
}
]
}
]
}
},
"MySSMContactEscalationPlan": {
"Type": "AWS::SSMContacts::Plan",
"Properties": {
"ContactId": {"Ref": "MyEscalationPlan"},
"Stages": [
{
"DurationInMinutes": 0,
"Targets": [
{
"ContactTargetInfo": {
"ContactId": {"Ref": "MySSMContact"},
"IsEssential": true
}
}
]
}
]
}
},
"MyDailyRotation": {
"Type": "AWS::SSMContacts::Rotation",
"Properties": {
"Name": "My_daily_rotation",
"ContactIds": [
{"Ref": "MySSMContact"}
],
"StartTime": "2025-03-03T20:20:39",
"TimeZoneId": "America/Los_Angeles",
"Recurrence": {
"NumberOfOnCalls": 1,
"RecurrenceMultiplier": 1,
"DailySettings": ["13:00"]
}
}
},
"MyWeeklyRotation": {
"Type": "AWS::SSMContacts::Rotation",
"Properties": {
"Name": "My_weekly_rotation",
"ContactIds": [
{"Ref": "MySSMContact"}
],
"StartTime": "2025-03-03T20:20:39",
"TimeZoneId": "America/Los_Angeles",
"Recurrence": {
"NumberOfOnCalls": 1,
"RecurrenceMultiplier": 1,
"WeeklySettings": [
{
"DayOfWeek": "MON",
"HandOffTime": "13:00"
}
]
}
}
},
"MyMonthlyRotation": {
"Type": "AWS::SSMContacts::Rotation",
"Properties": {
"Name": "My_monthly_rotation",
"ContactIds": [
{"Ref": "MySSMContact"}
],
"StartTime": "2025-03-03T20:20:39",
"TimeZoneId": "America/Los_Angeles",
"Recurrence": {
"ShiftCoverages": [
{
"DayOfWeek": "MON",
"CoverageTimes": [
{
"StartTime": "10:00",
"EndTime": "18:00"
}
]
}
],
"NumberOfOnCalls": 1,
"RecurrenceMultiplier": 1,
"MonthlySettings": [
{
"DayOfMonth": 10,
"HandOffTime": "13:00"
}
]
}
}
}
}
}
YAML
AWSTemplateFormatVersion: '2010-09-09'
Resources:
MySSMContact:
Type: 'AWS::SSMContacts::Contact'
Properties:
Alias: my-ssm-contact
DisplayName: My_SSM_contact
Type: PERSONAL
MyEscalationPlan:
Type: 'AWS::SSMContacts::Contact'
Properties:
Alias: my-escalation-plan
DisplayName: My_escalation_plan
Type: ESCALATION
MyOncallScheduleContact:
Type: 'AWS::SSMContacts::Contact'
Properties:
Alias: my-oncall-schedule
DisplayName: My_on-call_schedule
Type: ONCALL_SCHEDULE
MyContactChannelEmail:
Type: 'AWS::SSMContacts::ContactChannel'
Properties:
ContactId:
Ref: MySSMContact
ChannelName: MyEmailChannel
ChannelType: EMAIL
ChannelAddress: contact-email-channel@example.com
MySSMContactEngagementPlan:
Type: 'AWS::SSMContacts::Plan'
Properties:
ContactId:
Ref: MySSMContact
Stages:
- DurationInMinutes: 10
Targets:
- ChannelTargetInfo:
ChannelId:
Ref: MyContactChannelEmail
RetryIntervalInMinutes: 3
MySSMContactEscalationPlan:
Type: 'AWS::SSMContacts::Plan'
Properties:
ContactId:
Ref: MyEscalationPlan
Stages:
- DurationInMinutes: 0
Targets:
- ContactTargetInfo:
ContactId:
Ref: MySSMContact
IsEssential: true
MyDailyRotation:
Type: 'AWS::SSMContacts::Rotation'
Properties:
Name: My_daily_rotation
ContactIds:
- Ref: MySSMContact
StartTime: '2025-03-03T20:20:39'
TimeZoneId: America/Los_Angeles
Recurrence:
NumberOfOnCalls: 1
RecurrenceMultiplier: 1
DailySettings:
- '13:00'
MyWeeklyRotation:
Type: 'AWS::SSMContacts::Rotation'
Properties:
Name: My_weekly_rotation
ContactIds:
- Ref: MySSMContact
StartTime: '2025-03-03T20:20:39'
TimeZoneId: America/Los_Angeles
Recurrence:
NumberOfOnCalls: 1
RecurrenceMultiplier: 1
WeeklySettings:
- DayOfWeek: MON
HandOffTime: '13:00'
MyMonthlyRotation:
Type: 'AWS::SSMContacts::Rotation'
Properties:
Name: My_monthly_rotation
ContactIds:
- Ref: MySSMContact
StartTime: '2025-03-03T20:20:39'
TimeZoneId: America/Los_Angeles
Recurrence:
ShiftCoverages:
- DayOfWeek: MON
CoverageTimes:
- StartTime: '10:00'
EndTime: '18:00'
NumberOfOnCalls: 1
RecurrenceMultiplier: 1
MonthlySettings:
- DayOfMonth: 10
HandOffTime: '13:00'