github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/cloudwatch/compositeAlarm.go (about)

     1  // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package cloudwatch
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"errors"
    11  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    12  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    13  )
    14  
    15  // Provides a CloudWatch Composite Alarm resource.
    16  //
    17  // > **NOTE:** An alarm (composite or metric) cannot be destroyed when there are other composite alarms depending on it. This can lead to a cyclical dependency on update, as the provider will unsuccessfully attempt to destroy alarms before updating the rule. Consider using `dependsOn`, references to alarm names, and two-stage updates.
    18  //
    19  // ## Example Usage
    20  //
    21  // <!--Start PulumiCodeChooser -->
    22  // ```go
    23  // package main
    24  //
    25  // import (
    26  //
    27  //	"fmt"
    28  //
    29  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch"
    30  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    31  //
    32  // )
    33  //
    34  //	func main() {
    35  //		pulumi.Run(func(ctx *pulumi.Context) error {
    36  //			_, err := cloudwatch.NewCompositeAlarm(ctx, "example", &cloudwatch.CompositeAlarmArgs{
    37  //				AlarmDescription: pulumi.String("This is a composite alarm!"),
    38  //				AlarmName:        pulumi.String("example-composite-alarm"),
    39  //				AlarmActions:     pulumi.Any(exampleAwsSnsTopic.Arn),
    40  //				OkActions:        pulumi.Any(exampleAwsSnsTopic.Arn),
    41  //				AlarmRule:        pulumi.String(fmt.Sprintf("ALARM(%v) OR\nALARM(%v)\n", alpha.AlarmName, bravo.AlarmName)),
    42  //				ActionsSuppressor: &cloudwatch.CompositeAlarmActionsSuppressorArgs{
    43  //					Alarm:           pulumi.String("suppressor-alarm"),
    44  //					ExtensionPeriod: pulumi.Int(10),
    45  //					WaitPeriod:      pulumi.Int(20),
    46  //				},
    47  //			})
    48  //			if err != nil {
    49  //				return err
    50  //			}
    51  //			return nil
    52  //		})
    53  //	}
    54  //
    55  // ```
    56  // <!--End PulumiCodeChooser -->
    57  //
    58  // ## Import
    59  //
    60  // Using `pulumi import`, import a CloudWatch Composite Alarm using the `alarm_name`. For example:
    61  //
    62  // ```sh
    63  // $ pulumi import aws:cloudwatch/compositeAlarm:CompositeAlarm test my-alarm
    64  // ```
    65  type CompositeAlarm struct {
    66  	pulumi.CustomResourceState
    67  
    68  	// Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`.
    69  	ActionsEnabled pulumi.BoolPtrOutput `pulumi:"actionsEnabled"`
    70  	// Actions will be suppressed if the suppressor alarm is in the ALARM state.
    71  	ActionsSuppressor CompositeAlarmActionsSuppressorPtrOutput `pulumi:"actionsSuppressor"`
    72  	// The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.
    73  	AlarmActions pulumi.StringArrayOutput `pulumi:"alarmActions"`
    74  	// The description for the composite alarm.
    75  	AlarmDescription pulumi.StringPtrOutput `pulumi:"alarmDescription"`
    76  	// The name for the composite alarm. This name must be unique within the region.
    77  	AlarmName pulumi.StringOutput `pulumi:"alarmName"`
    78  	// An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters.
    79  	AlarmRule pulumi.StringOutput `pulumi:"alarmRule"`
    80  	// The ARN of the composite alarm.
    81  	Arn pulumi.StringOutput `pulumi:"arn"`
    82  	// The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.
    83  	InsufficientDataActions pulumi.StringArrayOutput `pulumi:"insufficientDataActions"`
    84  	// The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.
    85  	OkActions pulumi.StringArrayOutput `pulumi:"okActions"`
    86  	// A map of tags to associate with the alarm. Up to 50 tags are allowed. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    87  	Tags pulumi.StringMapOutput `pulumi:"tags"`
    88  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
    89  	//
    90  	// Deprecated: Please use `tags` instead.
    91  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
    92  }
    93  
    94  // NewCompositeAlarm registers a new resource with the given unique name, arguments, and options.
    95  func NewCompositeAlarm(ctx *pulumi.Context,
    96  	name string, args *CompositeAlarmArgs, opts ...pulumi.ResourceOption) (*CompositeAlarm, error) {
    97  	if args == nil {
    98  		return nil, errors.New("missing one or more required arguments")
    99  	}
   100  
   101  	if args.AlarmName == nil {
   102  		return nil, errors.New("invalid value for required argument 'AlarmName'")
   103  	}
   104  	if args.AlarmRule == nil {
   105  		return nil, errors.New("invalid value for required argument 'AlarmRule'")
   106  	}
   107  	opts = internal.PkgResourceDefaultOpts(opts)
   108  	var resource CompositeAlarm
   109  	err := ctx.RegisterResource("aws:cloudwatch/compositeAlarm:CompositeAlarm", name, args, &resource, opts...)
   110  	if err != nil {
   111  		return nil, err
   112  	}
   113  	return &resource, nil
   114  }
   115  
   116  // GetCompositeAlarm gets an existing CompositeAlarm resource's state with the given name, ID, and optional
   117  // state properties that are used to uniquely qualify the lookup (nil if not required).
   118  func GetCompositeAlarm(ctx *pulumi.Context,
   119  	name string, id pulumi.IDInput, state *CompositeAlarmState, opts ...pulumi.ResourceOption) (*CompositeAlarm, error) {
   120  	var resource CompositeAlarm
   121  	err := ctx.ReadResource("aws:cloudwatch/compositeAlarm:CompositeAlarm", name, id, state, &resource, opts...)
   122  	if err != nil {
   123  		return nil, err
   124  	}
   125  	return &resource, nil
   126  }
   127  
   128  // Input properties used for looking up and filtering CompositeAlarm resources.
   129  type compositeAlarmState struct {
   130  	// Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`.
   131  	ActionsEnabled *bool `pulumi:"actionsEnabled"`
   132  	// Actions will be suppressed if the suppressor alarm is in the ALARM state.
   133  	ActionsSuppressor *CompositeAlarmActionsSuppressor `pulumi:"actionsSuppressor"`
   134  	// The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.
   135  	AlarmActions []string `pulumi:"alarmActions"`
   136  	// The description for the composite alarm.
   137  	AlarmDescription *string `pulumi:"alarmDescription"`
   138  	// The name for the composite alarm. This name must be unique within the region.
   139  	AlarmName *string `pulumi:"alarmName"`
   140  	// An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters.
   141  	AlarmRule *string `pulumi:"alarmRule"`
   142  	// The ARN of the composite alarm.
   143  	Arn *string `pulumi:"arn"`
   144  	// The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.
   145  	InsufficientDataActions []string `pulumi:"insufficientDataActions"`
   146  	// The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.
   147  	OkActions []string `pulumi:"okActions"`
   148  	// A map of tags to associate with the alarm. Up to 50 tags are allowed. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   149  	Tags map[string]string `pulumi:"tags"`
   150  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   151  	//
   152  	// Deprecated: Please use `tags` instead.
   153  	TagsAll map[string]string `pulumi:"tagsAll"`
   154  }
   155  
   156  type CompositeAlarmState struct {
   157  	// Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`.
   158  	ActionsEnabled pulumi.BoolPtrInput
   159  	// Actions will be suppressed if the suppressor alarm is in the ALARM state.
   160  	ActionsSuppressor CompositeAlarmActionsSuppressorPtrInput
   161  	// The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.
   162  	AlarmActions pulumi.StringArrayInput
   163  	// The description for the composite alarm.
   164  	AlarmDescription pulumi.StringPtrInput
   165  	// The name for the composite alarm. This name must be unique within the region.
   166  	AlarmName pulumi.StringPtrInput
   167  	// An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters.
   168  	AlarmRule pulumi.StringPtrInput
   169  	// The ARN of the composite alarm.
   170  	Arn pulumi.StringPtrInput
   171  	// The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.
   172  	InsufficientDataActions pulumi.StringArrayInput
   173  	// The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.
   174  	OkActions pulumi.StringArrayInput
   175  	// A map of tags to associate with the alarm. Up to 50 tags are allowed. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   176  	Tags pulumi.StringMapInput
   177  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   178  	//
   179  	// Deprecated: Please use `tags` instead.
   180  	TagsAll pulumi.StringMapInput
   181  }
   182  
   183  func (CompositeAlarmState) ElementType() reflect.Type {
   184  	return reflect.TypeOf((*compositeAlarmState)(nil)).Elem()
   185  }
   186  
   187  type compositeAlarmArgs struct {
   188  	// Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`.
   189  	ActionsEnabled *bool `pulumi:"actionsEnabled"`
   190  	// Actions will be suppressed if the suppressor alarm is in the ALARM state.
   191  	ActionsSuppressor *CompositeAlarmActionsSuppressor `pulumi:"actionsSuppressor"`
   192  	// The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.
   193  	AlarmActions []string `pulumi:"alarmActions"`
   194  	// The description for the composite alarm.
   195  	AlarmDescription *string `pulumi:"alarmDescription"`
   196  	// The name for the composite alarm. This name must be unique within the region.
   197  	AlarmName string `pulumi:"alarmName"`
   198  	// An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters.
   199  	AlarmRule string `pulumi:"alarmRule"`
   200  	// The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.
   201  	InsufficientDataActions []string `pulumi:"insufficientDataActions"`
   202  	// The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.
   203  	OkActions []string `pulumi:"okActions"`
   204  	// A map of tags to associate with the alarm. Up to 50 tags are allowed. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   205  	Tags map[string]string `pulumi:"tags"`
   206  }
   207  
   208  // The set of arguments for constructing a CompositeAlarm resource.
   209  type CompositeAlarmArgs struct {
   210  	// Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`.
   211  	ActionsEnabled pulumi.BoolPtrInput
   212  	// Actions will be suppressed if the suppressor alarm is in the ALARM state.
   213  	ActionsSuppressor CompositeAlarmActionsSuppressorPtrInput
   214  	// The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.
   215  	AlarmActions pulumi.StringArrayInput
   216  	// The description for the composite alarm.
   217  	AlarmDescription pulumi.StringPtrInput
   218  	// The name for the composite alarm. This name must be unique within the region.
   219  	AlarmName pulumi.StringInput
   220  	// An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters.
   221  	AlarmRule pulumi.StringInput
   222  	// The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.
   223  	InsufficientDataActions pulumi.StringArrayInput
   224  	// The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.
   225  	OkActions pulumi.StringArrayInput
   226  	// A map of tags to associate with the alarm. Up to 50 tags are allowed. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   227  	Tags pulumi.StringMapInput
   228  }
   229  
   230  func (CompositeAlarmArgs) ElementType() reflect.Type {
   231  	return reflect.TypeOf((*compositeAlarmArgs)(nil)).Elem()
   232  }
   233  
   234  type CompositeAlarmInput interface {
   235  	pulumi.Input
   236  
   237  	ToCompositeAlarmOutput() CompositeAlarmOutput
   238  	ToCompositeAlarmOutputWithContext(ctx context.Context) CompositeAlarmOutput
   239  }
   240  
   241  func (*CompositeAlarm) ElementType() reflect.Type {
   242  	return reflect.TypeOf((**CompositeAlarm)(nil)).Elem()
   243  }
   244  
   245  func (i *CompositeAlarm) ToCompositeAlarmOutput() CompositeAlarmOutput {
   246  	return i.ToCompositeAlarmOutputWithContext(context.Background())
   247  }
   248  
   249  func (i *CompositeAlarm) ToCompositeAlarmOutputWithContext(ctx context.Context) CompositeAlarmOutput {
   250  	return pulumi.ToOutputWithContext(ctx, i).(CompositeAlarmOutput)
   251  }
   252  
   253  // CompositeAlarmArrayInput is an input type that accepts CompositeAlarmArray and CompositeAlarmArrayOutput values.
   254  // You can construct a concrete instance of `CompositeAlarmArrayInput` via:
   255  //
   256  //	CompositeAlarmArray{ CompositeAlarmArgs{...} }
   257  type CompositeAlarmArrayInput interface {
   258  	pulumi.Input
   259  
   260  	ToCompositeAlarmArrayOutput() CompositeAlarmArrayOutput
   261  	ToCompositeAlarmArrayOutputWithContext(context.Context) CompositeAlarmArrayOutput
   262  }
   263  
   264  type CompositeAlarmArray []CompositeAlarmInput
   265  
   266  func (CompositeAlarmArray) ElementType() reflect.Type {
   267  	return reflect.TypeOf((*[]*CompositeAlarm)(nil)).Elem()
   268  }
   269  
   270  func (i CompositeAlarmArray) ToCompositeAlarmArrayOutput() CompositeAlarmArrayOutput {
   271  	return i.ToCompositeAlarmArrayOutputWithContext(context.Background())
   272  }
   273  
   274  func (i CompositeAlarmArray) ToCompositeAlarmArrayOutputWithContext(ctx context.Context) CompositeAlarmArrayOutput {
   275  	return pulumi.ToOutputWithContext(ctx, i).(CompositeAlarmArrayOutput)
   276  }
   277  
   278  // CompositeAlarmMapInput is an input type that accepts CompositeAlarmMap and CompositeAlarmMapOutput values.
   279  // You can construct a concrete instance of `CompositeAlarmMapInput` via:
   280  //
   281  //	CompositeAlarmMap{ "key": CompositeAlarmArgs{...} }
   282  type CompositeAlarmMapInput interface {
   283  	pulumi.Input
   284  
   285  	ToCompositeAlarmMapOutput() CompositeAlarmMapOutput
   286  	ToCompositeAlarmMapOutputWithContext(context.Context) CompositeAlarmMapOutput
   287  }
   288  
   289  type CompositeAlarmMap map[string]CompositeAlarmInput
   290  
   291  func (CompositeAlarmMap) ElementType() reflect.Type {
   292  	return reflect.TypeOf((*map[string]*CompositeAlarm)(nil)).Elem()
   293  }
   294  
   295  func (i CompositeAlarmMap) ToCompositeAlarmMapOutput() CompositeAlarmMapOutput {
   296  	return i.ToCompositeAlarmMapOutputWithContext(context.Background())
   297  }
   298  
   299  func (i CompositeAlarmMap) ToCompositeAlarmMapOutputWithContext(ctx context.Context) CompositeAlarmMapOutput {
   300  	return pulumi.ToOutputWithContext(ctx, i).(CompositeAlarmMapOutput)
   301  }
   302  
   303  type CompositeAlarmOutput struct{ *pulumi.OutputState }
   304  
   305  func (CompositeAlarmOutput) ElementType() reflect.Type {
   306  	return reflect.TypeOf((**CompositeAlarm)(nil)).Elem()
   307  }
   308  
   309  func (o CompositeAlarmOutput) ToCompositeAlarmOutput() CompositeAlarmOutput {
   310  	return o
   311  }
   312  
   313  func (o CompositeAlarmOutput) ToCompositeAlarmOutputWithContext(ctx context.Context) CompositeAlarmOutput {
   314  	return o
   315  }
   316  
   317  // Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`.
   318  func (o CompositeAlarmOutput) ActionsEnabled() pulumi.BoolPtrOutput {
   319  	return o.ApplyT(func(v *CompositeAlarm) pulumi.BoolPtrOutput { return v.ActionsEnabled }).(pulumi.BoolPtrOutput)
   320  }
   321  
   322  // Actions will be suppressed if the suppressor alarm is in the ALARM state.
   323  func (o CompositeAlarmOutput) ActionsSuppressor() CompositeAlarmActionsSuppressorPtrOutput {
   324  	return o.ApplyT(func(v *CompositeAlarm) CompositeAlarmActionsSuppressorPtrOutput { return v.ActionsSuppressor }).(CompositeAlarmActionsSuppressorPtrOutput)
   325  }
   326  
   327  // The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.
   328  func (o CompositeAlarmOutput) AlarmActions() pulumi.StringArrayOutput {
   329  	return o.ApplyT(func(v *CompositeAlarm) pulumi.StringArrayOutput { return v.AlarmActions }).(pulumi.StringArrayOutput)
   330  }
   331  
   332  // The description for the composite alarm.
   333  func (o CompositeAlarmOutput) AlarmDescription() pulumi.StringPtrOutput {
   334  	return o.ApplyT(func(v *CompositeAlarm) pulumi.StringPtrOutput { return v.AlarmDescription }).(pulumi.StringPtrOutput)
   335  }
   336  
   337  // The name for the composite alarm. This name must be unique within the region.
   338  func (o CompositeAlarmOutput) AlarmName() pulumi.StringOutput {
   339  	return o.ApplyT(func(v *CompositeAlarm) pulumi.StringOutput { return v.AlarmName }).(pulumi.StringOutput)
   340  }
   341  
   342  // An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters.
   343  func (o CompositeAlarmOutput) AlarmRule() pulumi.StringOutput {
   344  	return o.ApplyT(func(v *CompositeAlarm) pulumi.StringOutput { return v.AlarmRule }).(pulumi.StringOutput)
   345  }
   346  
   347  // The ARN of the composite alarm.
   348  func (o CompositeAlarmOutput) Arn() pulumi.StringOutput {
   349  	return o.ApplyT(func(v *CompositeAlarm) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   350  }
   351  
   352  // The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.
   353  func (o CompositeAlarmOutput) InsufficientDataActions() pulumi.StringArrayOutput {
   354  	return o.ApplyT(func(v *CompositeAlarm) pulumi.StringArrayOutput { return v.InsufficientDataActions }).(pulumi.StringArrayOutput)
   355  }
   356  
   357  // The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.
   358  func (o CompositeAlarmOutput) OkActions() pulumi.StringArrayOutput {
   359  	return o.ApplyT(func(v *CompositeAlarm) pulumi.StringArrayOutput { return v.OkActions }).(pulumi.StringArrayOutput)
   360  }
   361  
   362  // A map of tags to associate with the alarm. Up to 50 tags are allowed. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   363  func (o CompositeAlarmOutput) Tags() pulumi.StringMapOutput {
   364  	return o.ApplyT(func(v *CompositeAlarm) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   365  }
   366  
   367  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   368  //
   369  // Deprecated: Please use `tags` instead.
   370  func (o CompositeAlarmOutput) TagsAll() pulumi.StringMapOutput {
   371  	return o.ApplyT(func(v *CompositeAlarm) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   372  }
   373  
   374  type CompositeAlarmArrayOutput struct{ *pulumi.OutputState }
   375  
   376  func (CompositeAlarmArrayOutput) ElementType() reflect.Type {
   377  	return reflect.TypeOf((*[]*CompositeAlarm)(nil)).Elem()
   378  }
   379  
   380  func (o CompositeAlarmArrayOutput) ToCompositeAlarmArrayOutput() CompositeAlarmArrayOutput {
   381  	return o
   382  }
   383  
   384  func (o CompositeAlarmArrayOutput) ToCompositeAlarmArrayOutputWithContext(ctx context.Context) CompositeAlarmArrayOutput {
   385  	return o
   386  }
   387  
   388  func (o CompositeAlarmArrayOutput) Index(i pulumi.IntInput) CompositeAlarmOutput {
   389  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *CompositeAlarm {
   390  		return vs[0].([]*CompositeAlarm)[vs[1].(int)]
   391  	}).(CompositeAlarmOutput)
   392  }
   393  
   394  type CompositeAlarmMapOutput struct{ *pulumi.OutputState }
   395  
   396  func (CompositeAlarmMapOutput) ElementType() reflect.Type {
   397  	return reflect.TypeOf((*map[string]*CompositeAlarm)(nil)).Elem()
   398  }
   399  
   400  func (o CompositeAlarmMapOutput) ToCompositeAlarmMapOutput() CompositeAlarmMapOutput {
   401  	return o
   402  }
   403  
   404  func (o CompositeAlarmMapOutput) ToCompositeAlarmMapOutputWithContext(ctx context.Context) CompositeAlarmMapOutput {
   405  	return o
   406  }
   407  
   408  func (o CompositeAlarmMapOutput) MapIndex(k pulumi.StringInput) CompositeAlarmOutput {
   409  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *CompositeAlarm {
   410  		return vs[0].(map[string]*CompositeAlarm)[vs[1].(string)]
   411  	}).(CompositeAlarmOutput)
   412  }
   413  
   414  func init() {
   415  	pulumi.RegisterInputType(reflect.TypeOf((*CompositeAlarmInput)(nil)).Elem(), &CompositeAlarm{})
   416  	pulumi.RegisterInputType(reflect.TypeOf((*CompositeAlarmArrayInput)(nil)).Elem(), CompositeAlarmArray{})
   417  	pulumi.RegisterInputType(reflect.TypeOf((*CompositeAlarmMapInput)(nil)).Elem(), CompositeAlarmMap{})
   418  	pulumi.RegisterOutputType(CompositeAlarmOutput{})
   419  	pulumi.RegisterOutputType(CompositeAlarmArrayOutput{})
   420  	pulumi.RegisterOutputType(CompositeAlarmMapOutput{})
   421  }