import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Provides a Terraform resource for managing a Contacts Rotation in AWS Systems Manager Incident Manager. * * > **NOTE:** A rotation implicitly depends on a replication set. If you configured your replication set in Terraform, we recommend you add it to the `dependsOn` argument for the Terraform Contact Resource. * * ## Example Usage * * ### Basic Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const example = new aws.ssm.ContactsRotation("example", { * recurrence: { * dailySettings: [{ * hourOfDay: 9, * minuteOfHour: 0, * }], * numberOfOnCalls: 1, * recurrenceMultiplier: 1, * }, * contactIds: [exampleAwsSsmcontactsContact.arn], * name: "rotation", * timeZoneId: "Australia/Sydney", * }, { * dependsOn: [exampleAwsSsmincidentsReplicationSet], * }); * ``` * * ### Usage with Weekly Settings and Shift Coverages Fields * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const example = new aws.ssm.ContactsRotation("example", { * recurrence: { * shiftCoverages: [{ * coverageTimes: [{ * start: { * hourOfDay: 1, * minuteOfHour: 0, * }, * end: { * hourOfDay: 23, * minuteOfHour: 0, * }, * }], * mapBlockKey: "MON", * }], * weeklySettings: [ * { * handOffTime: { * hourOfDay: 4, * minuteOfHour: 25, * }, * dayOfWeek: "WED", * }, * { * handOffTime: { * hourOfDay: 15, * minuteOfHour: 57, * }, * dayOfWeek: "FRI", * }, * ], * numberOfOnCalls: 1, * recurrenceMultiplier: 1, * }, * contactIds: [exampleAwsSsmcontactsContact.arn], * name: "rotation", * startTime: "2023-07-20T02:21:49+00:00", * timeZoneId: "Australia/Sydney", * tags: { * key1: "tag1", * key2: "tag2", * }, * }, { * dependsOn: [exampleAwsSsmincidentsReplicationSet], * }); * ``` * * ### Usage with Monthly Settings Fields * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const example = new aws.ssm.ContactsRotation("example", { * recurrence: { * monthlySettings: [ * { * handOffTime: { * hourOfDay: 8, * minuteOfHour: 0, * }, * dayOfMonth: 20, * }, * { * handOffTime: { * hourOfDay: 12, * minuteOfHour: 34, * }, * dayOfMonth: 13, * }, * ], * numberOfOnCalls: 1, * recurrenceMultiplier: 1, * }, * contactIds: [exampleAwsSsmcontactsContact.arn], * name: "rotation", * timeZoneId: "Australia/Sydney", * }, { * dependsOn: [exampleAwsSsmincidentsReplicationSet], * }); * ``` * * ## Import * * ### Identity Schema * * #### Required * * - `arn` (String) ARN of the SSM Contacts rotation. * * Using `pulumi import`, import CodeGuru Profiler Profiling Group using the `arn`. For example: * * ```sh * $ pulumi import aws:ssm/contactsRotation:ContactsRotation example arn:aws:ssm-contacts:us-east-1:012345678910:rotation/example * ``` */ export declare class ContactsRotation extends pulumi.CustomResource { /** * Get an existing ContactsRotation resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, state?: ContactsRotationState, opts?: pulumi.CustomResourceOptions): ContactsRotation; /** * Returns true if the given object is an instance of ContactsRotation. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is ContactsRotation; /** * ARN of the rotation. */ readonly arn: pulumi.Output; /** * ARNs of the contacts to add to the rotation. The order in which you list the contacts is their shift order in the rotation schedule. */ readonly contactIds: pulumi.Output; /** * The name for the rotation. */ readonly name: pulumi.Output; /** * Information about when an on-call rotation is in effect and how long the rotation period lasts. Exactly one of either `dailySettings`, `monthlySettings`, or `weeklySettings` must be populated. See Recurrence for more details. * * The following arguments are optional: */ readonly recurrence: pulumi.Output; /** * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. */ readonly region: pulumi.Output; /** * The date and time, in RFC 3339 format, that the rotation goes into effect. */ readonly startTime: pulumi.Output; /** * A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. */ readonly tags: pulumi.Output<{ [key: string]: string; } | undefined>; /** * A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. */ readonly tagsAll: pulumi.Output<{ [key: string]: string; }>; /** * The time zone to base the rotation’s activity on in Internet Assigned Numbers Authority (IANA) format. */ readonly timeZoneId: pulumi.Output; /** * Create a ContactsRotation resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: ContactsRotationArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering ContactsRotation resources. */ export interface ContactsRotationState { /** * ARN of the rotation. */ arn?: pulumi.Input; /** * ARNs of the contacts to add to the rotation. The order in which you list the contacts is their shift order in the rotation schedule. */ contactIds?: pulumi.Input[] | undefined>; /** * The name for the rotation. */ name?: pulumi.Input; /** * Information about when an on-call rotation is in effect and how long the rotation period lasts. Exactly one of either `dailySettings`, `monthlySettings`, or `weeklySettings` must be populated. See Recurrence for more details. * * The following arguments are optional: */ recurrence?: pulumi.Input; /** * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. */ region?: pulumi.Input; /** * The date and time, in RFC 3339 format, that the rotation goes into effect. */ startTime?: pulumi.Input; /** * A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. */ tagsAll?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * The time zone to base the rotation’s activity on in Internet Assigned Numbers Authority (IANA) format. */ timeZoneId?: pulumi.Input; } /** * The set of arguments for constructing a ContactsRotation resource. */ export interface ContactsRotationArgs { /** * ARNs of the contacts to add to the rotation. The order in which you list the contacts is their shift order in the rotation schedule. */ contactIds: pulumi.Input[]>; /** * The name for the rotation. */ name?: pulumi.Input; /** * Information about when an on-call rotation is in effect and how long the rotation period lasts. Exactly one of either `dailySettings`, `monthlySettings`, or `weeklySettings` must be populated. See Recurrence for more details. * * The following arguments are optional: */ recurrence: pulumi.Input; /** * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. */ region?: pulumi.Input; /** * The date and time, in RFC 3339 format, that the rotation goes into effect. */ startTime?: pulumi.Input; /** * A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * The time zone to base the rotation’s activity on in Internet Assigned Numbers Authority (IANA) format. */ timeZoneId: pulumi.Input; } //# sourceMappingURL=contactsRotation.d.ts.map