Skip to content

Plan ​

The Plan resource lets you manage AWS SSMContacts Plans for incident management and response workflows.

Minimal Example ​

Create a basic SSMContacts Plan with required properties and one optional property.

ts
import AWS from "alchemy/aws/control";

const basicPlan = await AWS.SSMContacts.Plan("basicPlan", {
  ContactId: "arn:aws:ssm-contacts:us-east-1:123456789012:contact:example-contact",
  RotationIds: ["rotation-id-1"] // Optional rotation ID
});

Advanced Configuration ​

Configure a plan with stages to manage on-call rotations and escalation paths.

ts
import AWS from "alchemy/aws/control";

const advancedPlan = await AWS.SSMContacts.Plan("advancedPlan", {
  ContactId: "arn:aws:ssm-contacts:us-east-1:123456789012:contact:example-contact",
  RotationIds: ["rotation-id-1", "rotation-id-2"],
  Stages: [
    {
      Name: "Initial Notification",
      TargetContacts: ["arn:aws:ssm-contacts:us-east-1:123456789012:contact:example-contact"],
      DurationInMinutes: 30
    },
    {
      Name: "Escalation to Backup",
      TargetContacts: ["arn:aws:ssm-contacts:us-east-1:123456789012:contact:backup-contact"],
      DurationInMinutes: 15
    }
  ]
});

Custom Rotation Configuration ​

Define a plan with specific rotation configurations that can be reused across multiple incidents.

ts
import AWS from "alchemy/aws/control";

const customRotationPlan = await AWS.SSMContacts.Plan("customRotationPlan", {
  ContactId: "arn:aws:ssm-contacts:us-east-1:123456789012:contact:example-contact",
  RotationIds: ["rotation-id-1"],
  Stages: [
    {
      Name: "On-Call Rotation",
      TargetContacts: [
        "arn:aws:ssm-contacts:us-east-1:123456789012:contact:primary-contact",
        "arn:aws:ssm-contacts:us-east-1:123456789012:contact:secondary-contact"
      ],
      DurationInMinutes: 60
    }
  ]
});