All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.aws.ssm.kotlin.ContactsRotationArgs.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 6.57.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.aws.ssm.kotlin

import com.pulumi.aws.ssm.ContactsRotationArgs.builder
import com.pulumi.aws.ssm.kotlin.inputs.ContactsRotationRecurrenceArgs
import com.pulumi.aws.ssm.kotlin.inputs.ContactsRotationRecurrenceArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * ## Example Usage
 * ### Basic Usage
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws from "@pulumi/aws";
 * const example = new aws.ssm.ContactsRotation("example", {
 *     contactIds: [exampleAwsSsmcontactsContact.arn],
 *     name: "rotation",
 *     recurrence: {
 *         numberOfOnCalls: 1,
 *         recurrenceMultiplier: 1,
 *         dailySettings: [{
 *             hourOfDay: 9,
 *             minuteOfHour: 0,
 *         }],
 *     },
 *     timeZoneId: "Australia/Sydney",
 * }, {
 *     dependsOn: [exampleAwsSsmincidentsReplicationSet],
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_aws as aws
 * example = aws.ssm.ContactsRotation("example",
 *     contact_ids=[example_aws_ssmcontacts_contact["arn"]],
 *     name="rotation",
 *     recurrence={
 *         "number_of_on_calls": 1,
 *         "recurrence_multiplier": 1,
 *         "daily_settings": [{
 *             "hour_of_day": 9,
 *             "minute_of_hour": 0,
 *         }],
 *     },
 *     time_zone_id="Australia/Sydney",
 *     opts = pulumi.ResourceOptions(depends_on=[example_aws_ssmincidents_replication_set]))
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Aws = Pulumi.Aws;
 * return await Deployment.RunAsync(() =>
 * {
 *     var example = new Aws.Ssm.ContactsRotation("example", new()
 *     {
 *         ContactIds = new[]
 *         {
 *             exampleAwsSsmcontactsContact.Arn,
 *         },
 *         Name = "rotation",
 *         Recurrence = new Aws.Ssm.Inputs.ContactsRotationRecurrenceArgs
 *         {
 *             NumberOfOnCalls = 1,
 *             RecurrenceMultiplier = 1,
 *             DailySettings = new[]
 *             {
 *                 new Aws.Ssm.Inputs.ContactsRotationRecurrenceDailySettingArgs
 *                 {
 *                     HourOfDay = 9,
 *                     MinuteOfHour = 0,
 *                 },
 *             },
 *         },
 *         TimeZoneId = "Australia/Sydney",
 *     }, new CustomResourceOptions
 *     {
 *         DependsOn =
 *         {
 *             exampleAwsSsmincidentsReplicationSet,
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssm"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := ssm.NewContactsRotation(ctx, "example", &ssm.ContactsRotationArgs{
 * 			ContactIds: pulumi.StringArray{
 * 				exampleAwsSsmcontactsContact.Arn,
 * 			},
 * 			Name: pulumi.String("rotation"),
 * 			Recurrence: &ssm.ContactsRotationRecurrenceArgs{
 * 				NumberOfOnCalls:      pulumi.Int(1),
 * 				RecurrenceMultiplier: pulumi.Int(1),
 * 				DailySettings: ssm.ContactsRotationRecurrenceDailySettingArray{
 * 					&ssm.ContactsRotationRecurrenceDailySettingArgs{
 * 						HourOfDay:    pulumi.Int(9),
 * 						MinuteOfHour: pulumi.Int(0),
 * 					},
 * 				},
 * 			},
 * 			TimeZoneId: pulumi.String("Australia/Sydney"),
 * 		}, pulumi.DependsOn([]pulumi.Resource{
 * 			exampleAwsSsmincidentsReplicationSet,
 * 		}))
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.aws.ssm.ContactsRotation;
 * import com.pulumi.aws.ssm.ContactsRotationArgs;
 * import com.pulumi.aws.ssm.inputs.ContactsRotationRecurrenceArgs;
 * import com.pulumi.resources.CustomResourceOptions;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var example = new ContactsRotation("example", ContactsRotationArgs.builder()
 *             .contactIds(exampleAwsSsmcontactsContact.arn())
 *             .name("rotation")
 *             .recurrence(ContactsRotationRecurrenceArgs.builder()
 *                 .numberOfOnCalls(1)
 *                 .recurrenceMultiplier(1)
 *                 .dailySettings(ContactsRotationRecurrenceDailySettingArgs.builder()
 *                     .hourOfDay(9)
 *                     .minuteOfHour(0)
 *                     .build())
 *                 .build())
 *             .timeZoneId("Australia/Sydney")
 *             .build(), CustomResourceOptions.builder()
 *                 .dependsOn(exampleAwsSsmincidentsReplicationSet)
 *                 .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   example:
 *     type: aws:ssm:ContactsRotation
 *     properties:
 *       contactIds:
 *         - ${exampleAwsSsmcontactsContact.arn}
 *       name: rotation
 *       recurrence:
 *         numberOfOnCalls: 1
 *         recurrenceMultiplier: 1
 *         dailySettings:
 *           - hourOfDay: 9
 *             minuteOfHour: 0
 *       timeZoneId: Australia/Sydney
 *     options:
 *       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", {
 *     contactIds: [exampleAwsSsmcontactsContact.arn],
 *     name: "rotation",
 *     recurrence: {
 *         numberOfOnCalls: 1,
 *         recurrenceMultiplier: 1,
 *         weeklySettings: [
 *             {
 *                 dayOfWeek: "WED",
 *                 handOffTime: {
 *                     hourOfDay: 4,
 *                     minuteOfHour: 25,
 *                 },
 *             },
 *             {
 *                 dayOfWeek: "FRI",
 *                 handOffTime: {
 *                     hourOfDay: 15,
 *                     minuteOfHour: 57,
 *                 },
 *             },
 *         ],
 *         shiftCoverages: [{
 *             mapBlockKey: "MON",
 *             coverageTimes: [{
 *                 start: {
 *                     hourOfDay: 1,
 *                     minuteOfHour: 0,
 *                 },
 *                 end: {
 *                     hourOfDay: 23,
 *                     minuteOfHour: 0,
 *                 },
 *             }],
 *         }],
 *     },
 *     startTime: "2023-07-20T02:21:49+00:00",
 *     timeZoneId: "Australia/Sydney",
 *     tags: {
 *         key1: "tag1",
 *         key2: "tag2",
 *     },
 * }, {
 *     dependsOn: [exampleAwsSsmincidentsReplicationSet],
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_aws as aws
 * example = aws.ssm.ContactsRotation("example",
 *     contact_ids=[example_aws_ssmcontacts_contact["arn"]],
 *     name="rotation",
 *     recurrence={
 *         "number_of_on_calls": 1,
 *         "recurrence_multiplier": 1,
 *         "weekly_settings": [
 *             {
 *                 "day_of_week": "WED",
 *                 "hand_off_time": {
 *                     "hour_of_day": 4,
 *                     "minute_of_hour": 25,
 *                 },
 *             },
 *             {
 *                 "day_of_week": "FRI",
 *                 "hand_off_time": {
 *                     "hour_of_day": 15,
 *                     "minute_of_hour": 57,
 *                 },
 *             },
 *         ],
 *         "shift_coverages": [{
 *             "map_block_key": "MON",
 *             "coverage_times": [{
 *                 "start": {
 *                     "hour_of_day": 1,
 *                     "minute_of_hour": 0,
 *                 },
 *                 "end": {
 *                     "hour_of_day": 23,
 *                     "minute_of_hour": 0,
 *                 },
 *             }],
 *         }],
 *     },
 *     start_time="2023-07-20T02:21:49+00:00",
 *     time_zone_id="Australia/Sydney",
 *     tags={
 *         "key1": "tag1",
 *         "key2": "tag2",
 *     },
 *     opts = pulumi.ResourceOptions(depends_on=[example_aws_ssmincidents_replication_set]))
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Aws = Pulumi.Aws;
 * return await Deployment.RunAsync(() =>
 * {
 *     var example = new Aws.Ssm.ContactsRotation("example", new()
 *     {
 *         ContactIds = new[]
 *         {
 *             exampleAwsSsmcontactsContact.Arn,
 *         },
 *         Name = "rotation",
 *         Recurrence = new Aws.Ssm.Inputs.ContactsRotationRecurrenceArgs
 *         {
 *             NumberOfOnCalls = 1,
 *             RecurrenceMultiplier = 1,
 *             WeeklySettings = new[]
 *             {
 *                 new Aws.Ssm.Inputs.ContactsRotationRecurrenceWeeklySettingArgs
 *                 {
 *                     DayOfWeek = "WED",
 *                     HandOffTime = new Aws.Ssm.Inputs.ContactsRotationRecurrenceWeeklySettingHandOffTimeArgs
 *                     {
 *                         HourOfDay = 4,
 *                         MinuteOfHour = 25,
 *                     },
 *                 },
 *                 new Aws.Ssm.Inputs.ContactsRotationRecurrenceWeeklySettingArgs
 *                 {
 *                     DayOfWeek = "FRI",
 *                     HandOffTime = new Aws.Ssm.Inputs.ContactsRotationRecurrenceWeeklySettingHandOffTimeArgs
 *                     {
 *                         HourOfDay = 15,
 *                         MinuteOfHour = 57,
 *                     },
 *                 },
 *             },
 *             ShiftCoverages = new[]
 *             {
 *                 new Aws.Ssm.Inputs.ContactsRotationRecurrenceShiftCoverageArgs
 *                 {
 *                     MapBlockKey = "MON",
 *                     CoverageTimes = new[]
 *                     {
 *                         new Aws.Ssm.Inputs.ContactsRotationRecurrenceShiftCoverageCoverageTimeArgs
 *                         {
 *                             Start = new Aws.Ssm.Inputs.ContactsRotationRecurrenceShiftCoverageCoverageTimeStartArgs
 *                             {
 *                                 HourOfDay = 1,
 *                                 MinuteOfHour = 0,
 *                             },
 *                             End = new Aws.Ssm.Inputs.ContactsRotationRecurrenceShiftCoverageCoverageTimeEndArgs
 *                             {
 *                                 HourOfDay = 23,
 *                                 MinuteOfHour = 0,
 *                             },
 *                         },
 *                     },
 *                 },
 *             },
 *         },
 *         StartTime = "2023-07-20T02:21:49+00:00",
 *         TimeZoneId = "Australia/Sydney",
 *         Tags =
 *         {
 *             { "key1", "tag1" },
 *             { "key2", "tag2" },
 *         },
 *     }, new CustomResourceOptions
 *     {
 *         DependsOn =
 *         {
 *             exampleAwsSsmincidentsReplicationSet,
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssm"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := ssm.NewContactsRotation(ctx, "example", &ssm.ContactsRotationArgs{
 * 			ContactIds: pulumi.StringArray{
 * 				exampleAwsSsmcontactsContact.Arn,
 * 			},
 * 			Name: pulumi.String("rotation"),
 * 			Recurrence: &ssm.ContactsRotationRecurrenceArgs{
 * 				NumberOfOnCalls:      pulumi.Int(1),
 * 				RecurrenceMultiplier: pulumi.Int(1),
 * 				WeeklySettings: ssm.ContactsRotationRecurrenceWeeklySettingArray{
 * 					&ssm.ContactsRotationRecurrenceWeeklySettingArgs{
 * 						DayOfWeek: pulumi.String("WED"),
 * 						HandOffTime: &ssm.ContactsRotationRecurrenceWeeklySettingHandOffTimeArgs{
 * 							HourOfDay:    pulumi.Int(4),
 * 							MinuteOfHour: pulumi.Int(25),
 * 						},
 * 					},
 * 					&ssm.ContactsRotationRecurrenceWeeklySettingArgs{
 * 						DayOfWeek: pulumi.String("FRI"),
 * 						HandOffTime: &ssm.ContactsRotationRecurrenceWeeklySettingHandOffTimeArgs{
 * 							HourOfDay:    pulumi.Int(15),
 * 							MinuteOfHour: pulumi.Int(57),
 * 						},
 * 					},
 * 				},
 * 				ShiftCoverages: ssm.ContactsRotationRecurrenceShiftCoverageArray{
 * 					&ssm.ContactsRotationRecurrenceShiftCoverageArgs{
 * 						MapBlockKey: pulumi.String("MON"),
 * 						CoverageTimes: ssm.ContactsRotationRecurrenceShiftCoverageCoverageTimeArray{
 * 							&ssm.ContactsRotationRecurrenceShiftCoverageCoverageTimeArgs{
 * 								Start: &ssm.ContactsRotationRecurrenceShiftCoverageCoverageTimeStartArgs{
 * 									HourOfDay:    pulumi.Int(1),
 * 									MinuteOfHour: pulumi.Int(0),
 * 								},
 * 								End: &ssm.ContactsRotationRecurrenceShiftCoverageCoverageTimeEndArgs{
 * 									HourOfDay:    pulumi.Int(23),
 * 									MinuteOfHour: pulumi.Int(0),
 * 								},
 * 							},
 * 						},
 * 					},
 * 				},
 * 			},
 * 			StartTime:  pulumi.String("2023-07-20T02:21:49+00:00"),
 * 			TimeZoneId: pulumi.String("Australia/Sydney"),
 * 			Tags: pulumi.StringMap{
 * 				"key1": pulumi.String("tag1"),
 * 				"key2": pulumi.String("tag2"),
 * 			},
 * 		}, pulumi.DependsOn([]pulumi.Resource{
 * 			exampleAwsSsmincidentsReplicationSet,
 * 		}))
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.aws.ssm.ContactsRotation;
 * import com.pulumi.aws.ssm.ContactsRotationArgs;
 * import com.pulumi.aws.ssm.inputs.ContactsRotationRecurrenceArgs;
 * import com.pulumi.resources.CustomResourceOptions;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var example = new ContactsRotation("example", ContactsRotationArgs.builder()
 *             .contactIds(exampleAwsSsmcontactsContact.arn())
 *             .name("rotation")
 *             .recurrence(ContactsRotationRecurrenceArgs.builder()
 *                 .numberOfOnCalls(1)
 *                 .recurrenceMultiplier(1)
 *                 .weeklySettings(
 *                     ContactsRotationRecurrenceWeeklySettingArgs.builder()
 *                         .dayOfWeek("WED")
 *                         .handOffTime(ContactsRotationRecurrenceWeeklySettingHandOffTimeArgs.builder()
 *                             .hourOfDay(4)
 *                             .minuteOfHour(25)
 *                             .build())
 *                         .build(),
 *                     ContactsRotationRecurrenceWeeklySettingArgs.builder()
 *                         .dayOfWeek("FRI")
 *                         .handOffTime(ContactsRotationRecurrenceWeeklySettingHandOffTimeArgs.builder()
 *                             .hourOfDay(15)
 *                             .minuteOfHour(57)
 *                             .build())
 *                         .build())
 *                 .shiftCoverages(ContactsRotationRecurrenceShiftCoverageArgs.builder()
 *                     .mapBlockKey("MON")
 *                     .coverageTimes(ContactsRotationRecurrenceShiftCoverageCoverageTimeArgs.builder()
 *                         .start(ContactsRotationRecurrenceShiftCoverageCoverageTimeStartArgs.builder()
 *                             .hourOfDay(1)
 *                             .minuteOfHour(0)
 *                             .build())
 *                         .end(ContactsRotationRecurrenceShiftCoverageCoverageTimeEndArgs.builder()
 *                             .hourOfDay(23)
 *                             .minuteOfHour(0)
 *                             .build())
 *                         .build())
 *                     .build())
 *                 .build())
 *             .startTime("2023-07-20T02:21:49+00:00")
 *             .timeZoneId("Australia/Sydney")
 *             .tags(Map.ofEntries(
 *                 Map.entry("key1", "tag1"),
 *                 Map.entry("key2", "tag2")
 *             ))
 *             .build(), CustomResourceOptions.builder()
 *                 .dependsOn(exampleAwsSsmincidentsReplicationSet)
 *                 .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   example:
 *     type: aws:ssm:ContactsRotation
 *     properties:
 *       contactIds:
 *         - ${exampleAwsSsmcontactsContact.arn}
 *       name: rotation
 *       recurrence:
 *         numberOfOnCalls: 1
 *         recurrenceMultiplier: 1
 *         weeklySettings:
 *           - dayOfWeek: WED
 *             handOffTime:
 *               hourOfDay: 4
 *               minuteOfHour: 25
 *           - dayOfWeek: FRI
 *             handOffTime:
 *               hourOfDay: 15
 *               minuteOfHour: 57
 *         shiftCoverages:
 *           - mapBlockKey: MON
 *             coverageTimes:
 *               - start:
 *                   hourOfDay: 1
 *                   minuteOfHour: 0
 *                 end:
 *                   hourOfDay: 23
 *                   minuteOfHour: 0
 *       startTime: 2023-07-20T02:21:49+00:00
 *       timeZoneId: Australia/Sydney
 *       tags:
 *         key1: tag1
 *         key2: tag2
 *     options:
 *       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", {
 *     contactIds: [exampleAwsSsmcontactsContact.arn],
 *     name: "rotation",
 *     recurrence: {
 *         numberOfOnCalls: 1,
 *         recurrenceMultiplier: 1,
 *         monthlySettings: [
 *             {
 *                 dayOfMonth: 20,
 *                 handOffTime: {
 *                     hourOfDay: 8,
 *                     minuteOfHour: 0,
 *                 },
 *             },
 *             {
 *                 dayOfMonth: 13,
 *                 handOffTime: {
 *                     hourOfDay: 12,
 *                     minuteOfHour: 34,
 *                 },
 *             },
 *         ],
 *     },
 *     timeZoneId: "Australia/Sydney",
 * }, {
 *     dependsOn: [exampleAwsSsmincidentsReplicationSet],
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_aws as aws
 * example = aws.ssm.ContactsRotation("example",
 *     contact_ids=[example_aws_ssmcontacts_contact["arn"]],
 *     name="rotation",
 *     recurrence={
 *         "number_of_on_calls": 1,
 *         "recurrence_multiplier": 1,
 *         "monthly_settings": [
 *             {
 *                 "day_of_month": 20,
 *                 "hand_off_time": {
 *                     "hour_of_day": 8,
 *                     "minute_of_hour": 0,
 *                 },
 *             },
 *             {
 *                 "day_of_month": 13,
 *                 "hand_off_time": {
 *                     "hour_of_day": 12,
 *                     "minute_of_hour": 34,
 *                 },
 *             },
 *         ],
 *     },
 *     time_zone_id="Australia/Sydney",
 *     opts = pulumi.ResourceOptions(depends_on=[example_aws_ssmincidents_replication_set]))
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Aws = Pulumi.Aws;
 * return await Deployment.RunAsync(() =>
 * {
 *     var example = new Aws.Ssm.ContactsRotation("example", new()
 *     {
 *         ContactIds = new[]
 *         {
 *             exampleAwsSsmcontactsContact.Arn,
 *         },
 *         Name = "rotation",
 *         Recurrence = new Aws.Ssm.Inputs.ContactsRotationRecurrenceArgs
 *         {
 *             NumberOfOnCalls = 1,
 *             RecurrenceMultiplier = 1,
 *             MonthlySettings = new[]
 *             {
 *                 new Aws.Ssm.Inputs.ContactsRotationRecurrenceMonthlySettingArgs
 *                 {
 *                     DayOfMonth = 20,
 *                     HandOffTime = new Aws.Ssm.Inputs.ContactsRotationRecurrenceMonthlySettingHandOffTimeArgs
 *                     {
 *                         HourOfDay = 8,
 *                         MinuteOfHour = 0,
 *                     },
 *                 },
 *                 new Aws.Ssm.Inputs.ContactsRotationRecurrenceMonthlySettingArgs
 *                 {
 *                     DayOfMonth = 13,
 *                     HandOffTime = new Aws.Ssm.Inputs.ContactsRotationRecurrenceMonthlySettingHandOffTimeArgs
 *                     {
 *                         HourOfDay = 12,
 *                         MinuteOfHour = 34,
 *                     },
 *                 },
 *             },
 *         },
 *         TimeZoneId = "Australia/Sydney",
 *     }, new CustomResourceOptions
 *     {
 *         DependsOn =
 *         {
 *             exampleAwsSsmincidentsReplicationSet,
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssm"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := ssm.NewContactsRotation(ctx, "example", &ssm.ContactsRotationArgs{
 * 			ContactIds: pulumi.StringArray{
 * 				exampleAwsSsmcontactsContact.Arn,
 * 			},
 * 			Name: pulumi.String("rotation"),
 * 			Recurrence: &ssm.ContactsRotationRecurrenceArgs{
 * 				NumberOfOnCalls:      pulumi.Int(1),
 * 				RecurrenceMultiplier: pulumi.Int(1),
 * 				MonthlySettings: ssm.ContactsRotationRecurrenceMonthlySettingArray{
 * 					&ssm.ContactsRotationRecurrenceMonthlySettingArgs{
 * 						DayOfMonth: pulumi.Int(20),
 * 						HandOffTime: &ssm.ContactsRotationRecurrenceMonthlySettingHandOffTimeArgs{
 * 							HourOfDay:    pulumi.Int(8),
 * 							MinuteOfHour: pulumi.Int(0),
 * 						},
 * 					},
 * 					&ssm.ContactsRotationRecurrenceMonthlySettingArgs{
 * 						DayOfMonth: pulumi.Int(13),
 * 						HandOffTime: &ssm.ContactsRotationRecurrenceMonthlySettingHandOffTimeArgs{
 * 							HourOfDay:    pulumi.Int(12),
 * 							MinuteOfHour: pulumi.Int(34),
 * 						},
 * 					},
 * 				},
 * 			},
 * 			TimeZoneId: pulumi.String("Australia/Sydney"),
 * 		}, pulumi.DependsOn([]pulumi.Resource{
 * 			exampleAwsSsmincidentsReplicationSet,
 * 		}))
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.aws.ssm.ContactsRotation;
 * import com.pulumi.aws.ssm.ContactsRotationArgs;
 * import com.pulumi.aws.ssm.inputs.ContactsRotationRecurrenceArgs;
 * import com.pulumi.resources.CustomResourceOptions;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var example = new ContactsRotation("example", ContactsRotationArgs.builder()
 *             .contactIds(exampleAwsSsmcontactsContact.arn())
 *             .name("rotation")
 *             .recurrence(ContactsRotationRecurrenceArgs.builder()
 *                 .numberOfOnCalls(1)
 *                 .recurrenceMultiplier(1)
 *                 .monthlySettings(
 *                     ContactsRotationRecurrenceMonthlySettingArgs.builder()
 *                         .dayOfMonth(20)
 *                         .handOffTime(ContactsRotationRecurrenceMonthlySettingHandOffTimeArgs.builder()
 *                             .hourOfDay(8)
 *                             .minuteOfHour(0)
 *                             .build())
 *                         .build(),
 *                     ContactsRotationRecurrenceMonthlySettingArgs.builder()
 *                         .dayOfMonth(13)
 *                         .handOffTime(ContactsRotationRecurrenceMonthlySettingHandOffTimeArgs.builder()
 *                             .hourOfDay(12)
 *                             .minuteOfHour(34)
 *                             .build())
 *                         .build())
 *                 .build())
 *             .timeZoneId("Australia/Sydney")
 *             .build(), CustomResourceOptions.builder()
 *                 .dependsOn(exampleAwsSsmincidentsReplicationSet)
 *                 .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   example:
 *     type: aws:ssm:ContactsRotation
 *     properties:
 *       contactIds:
 *         - ${exampleAwsSsmcontactsContact.arn}
 *       name: rotation
 *       recurrence:
 *         numberOfOnCalls: 1
 *         recurrenceMultiplier: 1
 *         monthlySettings:
 *           - dayOfMonth: 20
 *             handOffTime:
 *               hourOfDay: 8
 *               minuteOfHour: 0
 *           - dayOfMonth: 13
 *             handOffTime:
 *               hourOfDay: 12
 *               minuteOfHour: 34
 *       timeZoneId: Australia/Sydney
 *     options:
 *       dependson:
 *         - ${exampleAwsSsmincidentsReplicationSet}
 * ```
 * 
 * ## Import
 * 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
 * ```
 * @property contactIds Amazon Resource Names (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.
 * @property name The name for the rotation.
 * @property recurrence Information about when an on-call rotation is in effect and how long the rotation period lasts. Exactly one of either `daily_settings`, `monthly_settings`, or `weekly_settings` must be populated. See Recurrence for more details.
 * The following arguments are optional:
 * @property startTime The date and time, in RFC 3339 format, that the rotation goes into effect.
 * @property tags A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
 * @property timeZoneId The time zone to base the rotation’s activity on in Internet Assigned Numbers Authority (IANA) format.
 */
public data class ContactsRotationArgs(
    public val contactIds: Output>? = null,
    public val name: Output? = null,
    public val recurrence: Output? = null,
    public val startTime: Output? = null,
    public val tags: Output>? = null,
    public val timeZoneId: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.aws.ssm.ContactsRotationArgs =
        com.pulumi.aws.ssm.ContactsRotationArgs.builder()
            .contactIds(contactIds?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .name(name?.applyValue({ args0 -> args0 }))
            .recurrence(recurrence?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .startTime(startTime?.applyValue({ args0 -> args0 }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
            .timeZoneId(timeZoneId?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [ContactsRotationArgs].
 */
@PulumiTagMarker
public class ContactsRotationArgsBuilder internal constructor() {
    private var contactIds: Output>? = null

    private var name: Output? = null

    private var recurrence: Output? = null

    private var startTime: Output? = null

    private var tags: Output>? = null

    private var timeZoneId: Output? = null

    /**
     * @param value Amazon Resource Names (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.
     */
    @JvmName("hnnucvoiwrahwdfv")
    public suspend fun contactIds(`value`: Output>) {
        this.contactIds = value
    }

    @JvmName("fljuguxhdkpgdrpq")
    public suspend fun contactIds(vararg values: Output) {
        this.contactIds = Output.all(values.asList())
    }

    /**
     * @param values Amazon Resource Names (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.
     */
    @JvmName("aboedaoumklwnhxu")
    public suspend fun contactIds(values: List>) {
        this.contactIds = Output.all(values)
    }

    /**
     * @param value The name for the rotation.
     */
    @JvmName("megogcaobcctynmg")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value Information about when an on-call rotation is in effect and how long the rotation period lasts. Exactly one of either `daily_settings`, `monthly_settings`, or `weekly_settings` must be populated. See Recurrence for more details.
     * The following arguments are optional:
     */
    @JvmName("djqbwgwhdntlrjkh")
    public suspend fun recurrence(`value`: Output) {
        this.recurrence = value
    }

    /**
     * @param value The date and time, in RFC 3339 format, that the rotation goes into effect.
     */
    @JvmName("dhkgbemnorbleblp")
    public suspend fun startTime(`value`: Output) {
        this.startTime = value
    }

    /**
     * @param value A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     */
    @JvmName("ltrnsghnhhyudvkd")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

    /**
     * @param value The time zone to base the rotation’s activity on in Internet Assigned Numbers Authority (IANA) format.
     */
    @JvmName("argdwqgysqcybicq")
    public suspend fun timeZoneId(`value`: Output) {
        this.timeZoneId = value
    }

    /**
     * @param value Amazon Resource Names (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.
     */
    @JvmName("qaeavbyicfyfxtyo")
    public suspend fun contactIds(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.contactIds = mapped
    }

    /**
     * @param values Amazon Resource Names (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.
     */
    @JvmName("ejdlwbkmhkkdljvn")
    public suspend fun contactIds(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.contactIds = mapped
    }

    /**
     * @param value The name for the rotation.
     */
    @JvmName("vmalswtaurmdcdmx")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value Information about when an on-call rotation is in effect and how long the rotation period lasts. Exactly one of either `daily_settings`, `monthly_settings`, or `weekly_settings` must be populated. See Recurrence for more details.
     * The following arguments are optional:
     */
    @JvmName("xbnaucxgnyyevvmh")
    public suspend fun recurrence(`value`: ContactsRotationRecurrenceArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.recurrence = mapped
    }

    /**
     * @param argument Information about when an on-call rotation is in effect and how long the rotation period lasts. Exactly one of either `daily_settings`, `monthly_settings`, or `weekly_settings` must be populated. See Recurrence for more details.
     * The following arguments are optional:
     */
    @JvmName("ldsxbwtkmnckhbjd")
    public suspend fun recurrence(argument: suspend ContactsRotationRecurrenceArgsBuilder.() -> Unit) {
        val toBeMapped = ContactsRotationRecurrenceArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.recurrence = mapped
    }

    /**
     * @param value The date and time, in RFC 3339 format, that the rotation goes into effect.
     */
    @JvmName("xyqeplumvdbqnxvq")
    public suspend fun startTime(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.startTime = mapped
    }

    /**
     * @param value A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     */
    @JvmName("mumgcachdiefsnpy")
    public suspend fun tags(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param values A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     */
    @JvmName("ughowxpbkvictavf")
    public fun tags(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value The time zone to base the rotation’s activity on in Internet Assigned Numbers Authority (IANA) format.
     */
    @JvmName("wlumjcpupehehfaw")
    public suspend fun timeZoneId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.timeZoneId = mapped
    }

    internal fun build(): ContactsRotationArgs = ContactsRotationArgs(
        contactIds = contactIds,
        name = name,
        recurrence = recurrence,
        startTime = startTime,
        tags = tags,
        timeZoneId = timeZoneId,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy