github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/opsworks/gangliaLayer.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 opsworks
     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 an OpsWorks Ganglia layer resource.
    16  //
    17  // ## Example Usage
    18  //
    19  // <!--Start PulumiCodeChooser -->
    20  // ```go
    21  // package main
    22  //
    23  // import (
    24  //
    25  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/opsworks"
    26  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    27  //
    28  // )
    29  //
    30  //	func main() {
    31  //		pulumi.Run(func(ctx *pulumi.Context) error {
    32  //			_, err := opsworks.NewGangliaLayer(ctx, "monitor", &opsworks.GangliaLayerArgs{
    33  //				StackId:  pulumi.Any(main.Id),
    34  //				Password: pulumi.String("foobarbaz"),
    35  //			})
    36  //			if err != nil {
    37  //				return err
    38  //			}
    39  //			return nil
    40  //		})
    41  //	}
    42  //
    43  // ```
    44  // <!--End PulumiCodeChooser -->
    45  type GangliaLayer struct {
    46  	pulumi.CustomResourceState
    47  
    48  	// The Amazon Resource Name(ARN) of the layer.
    49  	Arn pulumi.StringOutput `pulumi:"arn"`
    50  	// Whether to automatically assign an elastic IP address to the layer's instances.
    51  	AutoAssignElasticIps pulumi.BoolPtrOutput `pulumi:"autoAssignElasticIps"`
    52  	// For stacks belonging to a VPC, whether to automatically assign a public IP address to each of the layer's instances.
    53  	AutoAssignPublicIps pulumi.BoolPtrOutput `pulumi:"autoAssignPublicIps"`
    54  	// Whether to enable auto-healing for the layer.
    55  	AutoHealing             pulumi.BoolPtrOutput                         `pulumi:"autoHealing"`
    56  	CloudwatchConfiguration GangliaLayerCloudwatchConfigurationPtrOutput `pulumi:"cloudwatchConfiguration"`
    57  	CustomConfigureRecipes  pulumi.StringArrayOutput                     `pulumi:"customConfigureRecipes"`
    58  	CustomDeployRecipes     pulumi.StringArrayOutput                     `pulumi:"customDeployRecipes"`
    59  	// The ARN of an IAM profile that will be used for the layer's instances.
    60  	CustomInstanceProfileArn pulumi.StringPtrOutput `pulumi:"customInstanceProfileArn"`
    61  	// Custom JSON attributes to apply to the layer.
    62  	CustomJson pulumi.StringPtrOutput `pulumi:"customJson"`
    63  	// Ids for a set of security groups to apply to the layer's instances.
    64  	CustomSecurityGroupIds pulumi.StringArrayOutput `pulumi:"customSecurityGroupIds"`
    65  	CustomSetupRecipes     pulumi.StringArrayOutput `pulumi:"customSetupRecipes"`
    66  	CustomShutdownRecipes  pulumi.StringArrayOutput `pulumi:"customShutdownRecipes"`
    67  	CustomUndeployRecipes  pulumi.StringArrayOutput `pulumi:"customUndeployRecipes"`
    68  	// Whether to enable Elastic Load Balancing connection draining.
    69  	DrainElbOnShutdown pulumi.BoolPtrOutput `pulumi:"drainElbOnShutdown"`
    70  	// `ebsVolume` blocks, as described below, will each create an EBS volume and connect it to the layer's instances.
    71  	EbsVolumes GangliaLayerEbsVolumeArrayOutput `pulumi:"ebsVolumes"`
    72  	// Name of an Elastic Load Balancer to attach to this layer
    73  	ElasticLoadBalancer pulumi.StringPtrOutput `pulumi:"elasticLoadBalancer"`
    74  	// Whether to install OS and package updates on each instance when it boots.
    75  	InstallUpdatesOnBoot pulumi.BoolPtrOutput `pulumi:"installUpdatesOnBoot"`
    76  	// The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.
    77  	InstanceShutdownTimeout pulumi.IntPtrOutput                    `pulumi:"instanceShutdownTimeout"`
    78  	LoadBasedAutoScaling    GangliaLayerLoadBasedAutoScalingOutput `pulumi:"loadBasedAutoScaling"`
    79  	// A human-readable name for the layer.
    80  	Name pulumi.StringOutput `pulumi:"name"`
    81  	// The password to use for Ganglia.
    82  	Password pulumi.StringOutput `pulumi:"password"`
    83  	// ID of the stack the layer will belong to.
    84  	StackId pulumi.StringOutput `pulumi:"stackId"`
    85  	// Names of a set of system packages to install on the layer's instances.
    86  	SystemPackages pulumi.StringArrayOutput `pulumi:"systemPackages"`
    87  	// 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.
    88  	//
    89  	// The following extra optional arguments, all lists of Chef recipe names, allow
    90  	// custom Chef recipes to be applied to layer instances at the five different
    91  	// lifecycle events, if custom cookbooks are enabled on the layer's stack:
    92  	Tags pulumi.StringMapOutput `pulumi:"tags"`
    93  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
    94  	//
    95  	// Deprecated: Please use `tags` instead.
    96  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
    97  	// The URL path to use for Ganglia. Defaults to "/ganglia".
    98  	Url pulumi.StringPtrOutput `pulumi:"url"`
    99  	// Whether to use EBS-optimized instances.
   100  	UseEbsOptimizedInstances pulumi.BoolPtrOutput `pulumi:"useEbsOptimizedInstances"`
   101  	// The username to use for Ganglia. Defaults to "opsworks".
   102  	Username pulumi.StringPtrOutput `pulumi:"username"`
   103  }
   104  
   105  // NewGangliaLayer registers a new resource with the given unique name, arguments, and options.
   106  func NewGangliaLayer(ctx *pulumi.Context,
   107  	name string, args *GangliaLayerArgs, opts ...pulumi.ResourceOption) (*GangliaLayer, error) {
   108  	if args == nil {
   109  		return nil, errors.New("missing one or more required arguments")
   110  	}
   111  
   112  	if args.Password == nil {
   113  		return nil, errors.New("invalid value for required argument 'Password'")
   114  	}
   115  	if args.StackId == nil {
   116  		return nil, errors.New("invalid value for required argument 'StackId'")
   117  	}
   118  	opts = internal.PkgResourceDefaultOpts(opts)
   119  	var resource GangliaLayer
   120  	err := ctx.RegisterResource("aws:opsworks/gangliaLayer:GangliaLayer", name, args, &resource, opts...)
   121  	if err != nil {
   122  		return nil, err
   123  	}
   124  	return &resource, nil
   125  }
   126  
   127  // GetGangliaLayer gets an existing GangliaLayer resource's state with the given name, ID, and optional
   128  // state properties that are used to uniquely qualify the lookup (nil if not required).
   129  func GetGangliaLayer(ctx *pulumi.Context,
   130  	name string, id pulumi.IDInput, state *GangliaLayerState, opts ...pulumi.ResourceOption) (*GangliaLayer, error) {
   131  	var resource GangliaLayer
   132  	err := ctx.ReadResource("aws:opsworks/gangliaLayer:GangliaLayer", name, id, state, &resource, opts...)
   133  	if err != nil {
   134  		return nil, err
   135  	}
   136  	return &resource, nil
   137  }
   138  
   139  // Input properties used for looking up and filtering GangliaLayer resources.
   140  type gangliaLayerState struct {
   141  	// The Amazon Resource Name(ARN) of the layer.
   142  	Arn *string `pulumi:"arn"`
   143  	// Whether to automatically assign an elastic IP address to the layer's instances.
   144  	AutoAssignElasticIps *bool `pulumi:"autoAssignElasticIps"`
   145  	// For stacks belonging to a VPC, whether to automatically assign a public IP address to each of the layer's instances.
   146  	AutoAssignPublicIps *bool `pulumi:"autoAssignPublicIps"`
   147  	// Whether to enable auto-healing for the layer.
   148  	AutoHealing             *bool                                `pulumi:"autoHealing"`
   149  	CloudwatchConfiguration *GangliaLayerCloudwatchConfiguration `pulumi:"cloudwatchConfiguration"`
   150  	CustomConfigureRecipes  []string                             `pulumi:"customConfigureRecipes"`
   151  	CustomDeployRecipes     []string                             `pulumi:"customDeployRecipes"`
   152  	// The ARN of an IAM profile that will be used for the layer's instances.
   153  	CustomInstanceProfileArn *string `pulumi:"customInstanceProfileArn"`
   154  	// Custom JSON attributes to apply to the layer.
   155  	CustomJson *string `pulumi:"customJson"`
   156  	// Ids for a set of security groups to apply to the layer's instances.
   157  	CustomSecurityGroupIds []string `pulumi:"customSecurityGroupIds"`
   158  	CustomSetupRecipes     []string `pulumi:"customSetupRecipes"`
   159  	CustomShutdownRecipes  []string `pulumi:"customShutdownRecipes"`
   160  	CustomUndeployRecipes  []string `pulumi:"customUndeployRecipes"`
   161  	// Whether to enable Elastic Load Balancing connection draining.
   162  	DrainElbOnShutdown *bool `pulumi:"drainElbOnShutdown"`
   163  	// `ebsVolume` blocks, as described below, will each create an EBS volume and connect it to the layer's instances.
   164  	EbsVolumes []GangliaLayerEbsVolume `pulumi:"ebsVolumes"`
   165  	// Name of an Elastic Load Balancer to attach to this layer
   166  	ElasticLoadBalancer *string `pulumi:"elasticLoadBalancer"`
   167  	// Whether to install OS and package updates on each instance when it boots.
   168  	InstallUpdatesOnBoot *bool `pulumi:"installUpdatesOnBoot"`
   169  	// The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.
   170  	InstanceShutdownTimeout *int                              `pulumi:"instanceShutdownTimeout"`
   171  	LoadBasedAutoScaling    *GangliaLayerLoadBasedAutoScaling `pulumi:"loadBasedAutoScaling"`
   172  	// A human-readable name for the layer.
   173  	Name *string `pulumi:"name"`
   174  	// The password to use for Ganglia.
   175  	Password *string `pulumi:"password"`
   176  	// ID of the stack the layer will belong to.
   177  	StackId *string `pulumi:"stackId"`
   178  	// Names of a set of system packages to install on the layer's instances.
   179  	SystemPackages []string `pulumi:"systemPackages"`
   180  	// 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.
   181  	//
   182  	// The following extra optional arguments, all lists of Chef recipe names, allow
   183  	// custom Chef recipes to be applied to layer instances at the five different
   184  	// lifecycle events, if custom cookbooks are enabled on the layer's stack:
   185  	Tags map[string]string `pulumi:"tags"`
   186  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   187  	//
   188  	// Deprecated: Please use `tags` instead.
   189  	TagsAll map[string]string `pulumi:"tagsAll"`
   190  	// The URL path to use for Ganglia. Defaults to "/ganglia".
   191  	Url *string `pulumi:"url"`
   192  	// Whether to use EBS-optimized instances.
   193  	UseEbsOptimizedInstances *bool `pulumi:"useEbsOptimizedInstances"`
   194  	// The username to use for Ganglia. Defaults to "opsworks".
   195  	Username *string `pulumi:"username"`
   196  }
   197  
   198  type GangliaLayerState struct {
   199  	// The Amazon Resource Name(ARN) of the layer.
   200  	Arn pulumi.StringPtrInput
   201  	// Whether to automatically assign an elastic IP address to the layer's instances.
   202  	AutoAssignElasticIps pulumi.BoolPtrInput
   203  	// For stacks belonging to a VPC, whether to automatically assign a public IP address to each of the layer's instances.
   204  	AutoAssignPublicIps pulumi.BoolPtrInput
   205  	// Whether to enable auto-healing for the layer.
   206  	AutoHealing             pulumi.BoolPtrInput
   207  	CloudwatchConfiguration GangliaLayerCloudwatchConfigurationPtrInput
   208  	CustomConfigureRecipes  pulumi.StringArrayInput
   209  	CustomDeployRecipes     pulumi.StringArrayInput
   210  	// The ARN of an IAM profile that will be used for the layer's instances.
   211  	CustomInstanceProfileArn pulumi.StringPtrInput
   212  	// Custom JSON attributes to apply to the layer.
   213  	CustomJson pulumi.StringPtrInput
   214  	// Ids for a set of security groups to apply to the layer's instances.
   215  	CustomSecurityGroupIds pulumi.StringArrayInput
   216  	CustomSetupRecipes     pulumi.StringArrayInput
   217  	CustomShutdownRecipes  pulumi.StringArrayInput
   218  	CustomUndeployRecipes  pulumi.StringArrayInput
   219  	// Whether to enable Elastic Load Balancing connection draining.
   220  	DrainElbOnShutdown pulumi.BoolPtrInput
   221  	// `ebsVolume` blocks, as described below, will each create an EBS volume and connect it to the layer's instances.
   222  	EbsVolumes GangliaLayerEbsVolumeArrayInput
   223  	// Name of an Elastic Load Balancer to attach to this layer
   224  	ElasticLoadBalancer pulumi.StringPtrInput
   225  	// Whether to install OS and package updates on each instance when it boots.
   226  	InstallUpdatesOnBoot pulumi.BoolPtrInput
   227  	// The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.
   228  	InstanceShutdownTimeout pulumi.IntPtrInput
   229  	LoadBasedAutoScaling    GangliaLayerLoadBasedAutoScalingPtrInput
   230  	// A human-readable name for the layer.
   231  	Name pulumi.StringPtrInput
   232  	// The password to use for Ganglia.
   233  	Password pulumi.StringPtrInput
   234  	// ID of the stack the layer will belong to.
   235  	StackId pulumi.StringPtrInput
   236  	// Names of a set of system packages to install on the layer's instances.
   237  	SystemPackages pulumi.StringArrayInput
   238  	// 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.
   239  	//
   240  	// The following extra optional arguments, all lists of Chef recipe names, allow
   241  	// custom Chef recipes to be applied to layer instances at the five different
   242  	// lifecycle events, if custom cookbooks are enabled on the layer's stack:
   243  	Tags pulumi.StringMapInput
   244  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   245  	//
   246  	// Deprecated: Please use `tags` instead.
   247  	TagsAll pulumi.StringMapInput
   248  	// The URL path to use for Ganglia. Defaults to "/ganglia".
   249  	Url pulumi.StringPtrInput
   250  	// Whether to use EBS-optimized instances.
   251  	UseEbsOptimizedInstances pulumi.BoolPtrInput
   252  	// The username to use for Ganglia. Defaults to "opsworks".
   253  	Username pulumi.StringPtrInput
   254  }
   255  
   256  func (GangliaLayerState) ElementType() reflect.Type {
   257  	return reflect.TypeOf((*gangliaLayerState)(nil)).Elem()
   258  }
   259  
   260  type gangliaLayerArgs struct {
   261  	// Whether to automatically assign an elastic IP address to the layer's instances.
   262  	AutoAssignElasticIps *bool `pulumi:"autoAssignElasticIps"`
   263  	// For stacks belonging to a VPC, whether to automatically assign a public IP address to each of the layer's instances.
   264  	AutoAssignPublicIps *bool `pulumi:"autoAssignPublicIps"`
   265  	// Whether to enable auto-healing for the layer.
   266  	AutoHealing             *bool                                `pulumi:"autoHealing"`
   267  	CloudwatchConfiguration *GangliaLayerCloudwatchConfiguration `pulumi:"cloudwatchConfiguration"`
   268  	CustomConfigureRecipes  []string                             `pulumi:"customConfigureRecipes"`
   269  	CustomDeployRecipes     []string                             `pulumi:"customDeployRecipes"`
   270  	// The ARN of an IAM profile that will be used for the layer's instances.
   271  	CustomInstanceProfileArn *string `pulumi:"customInstanceProfileArn"`
   272  	// Custom JSON attributes to apply to the layer.
   273  	CustomJson *string `pulumi:"customJson"`
   274  	// Ids for a set of security groups to apply to the layer's instances.
   275  	CustomSecurityGroupIds []string `pulumi:"customSecurityGroupIds"`
   276  	CustomSetupRecipes     []string `pulumi:"customSetupRecipes"`
   277  	CustomShutdownRecipes  []string `pulumi:"customShutdownRecipes"`
   278  	CustomUndeployRecipes  []string `pulumi:"customUndeployRecipes"`
   279  	// Whether to enable Elastic Load Balancing connection draining.
   280  	DrainElbOnShutdown *bool `pulumi:"drainElbOnShutdown"`
   281  	// `ebsVolume` blocks, as described below, will each create an EBS volume and connect it to the layer's instances.
   282  	EbsVolumes []GangliaLayerEbsVolume `pulumi:"ebsVolumes"`
   283  	// Name of an Elastic Load Balancer to attach to this layer
   284  	ElasticLoadBalancer *string `pulumi:"elasticLoadBalancer"`
   285  	// Whether to install OS and package updates on each instance when it boots.
   286  	InstallUpdatesOnBoot *bool `pulumi:"installUpdatesOnBoot"`
   287  	// The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.
   288  	InstanceShutdownTimeout *int                              `pulumi:"instanceShutdownTimeout"`
   289  	LoadBasedAutoScaling    *GangliaLayerLoadBasedAutoScaling `pulumi:"loadBasedAutoScaling"`
   290  	// A human-readable name for the layer.
   291  	Name *string `pulumi:"name"`
   292  	// The password to use for Ganglia.
   293  	Password string `pulumi:"password"`
   294  	// ID of the stack the layer will belong to.
   295  	StackId string `pulumi:"stackId"`
   296  	// Names of a set of system packages to install on the layer's instances.
   297  	SystemPackages []string `pulumi:"systemPackages"`
   298  	// 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.
   299  	//
   300  	// The following extra optional arguments, all lists of Chef recipe names, allow
   301  	// custom Chef recipes to be applied to layer instances at the five different
   302  	// lifecycle events, if custom cookbooks are enabled on the layer's stack:
   303  	Tags map[string]string `pulumi:"tags"`
   304  	// The URL path to use for Ganglia. Defaults to "/ganglia".
   305  	Url *string `pulumi:"url"`
   306  	// Whether to use EBS-optimized instances.
   307  	UseEbsOptimizedInstances *bool `pulumi:"useEbsOptimizedInstances"`
   308  	// The username to use for Ganglia. Defaults to "opsworks".
   309  	Username *string `pulumi:"username"`
   310  }
   311  
   312  // The set of arguments for constructing a GangliaLayer resource.
   313  type GangliaLayerArgs struct {
   314  	// Whether to automatically assign an elastic IP address to the layer's instances.
   315  	AutoAssignElasticIps pulumi.BoolPtrInput
   316  	// For stacks belonging to a VPC, whether to automatically assign a public IP address to each of the layer's instances.
   317  	AutoAssignPublicIps pulumi.BoolPtrInput
   318  	// Whether to enable auto-healing for the layer.
   319  	AutoHealing             pulumi.BoolPtrInput
   320  	CloudwatchConfiguration GangliaLayerCloudwatchConfigurationPtrInput
   321  	CustomConfigureRecipes  pulumi.StringArrayInput
   322  	CustomDeployRecipes     pulumi.StringArrayInput
   323  	// The ARN of an IAM profile that will be used for the layer's instances.
   324  	CustomInstanceProfileArn pulumi.StringPtrInput
   325  	// Custom JSON attributes to apply to the layer.
   326  	CustomJson pulumi.StringPtrInput
   327  	// Ids for a set of security groups to apply to the layer's instances.
   328  	CustomSecurityGroupIds pulumi.StringArrayInput
   329  	CustomSetupRecipes     pulumi.StringArrayInput
   330  	CustomShutdownRecipes  pulumi.StringArrayInput
   331  	CustomUndeployRecipes  pulumi.StringArrayInput
   332  	// Whether to enable Elastic Load Balancing connection draining.
   333  	DrainElbOnShutdown pulumi.BoolPtrInput
   334  	// `ebsVolume` blocks, as described below, will each create an EBS volume and connect it to the layer's instances.
   335  	EbsVolumes GangliaLayerEbsVolumeArrayInput
   336  	// Name of an Elastic Load Balancer to attach to this layer
   337  	ElasticLoadBalancer pulumi.StringPtrInput
   338  	// Whether to install OS and package updates on each instance when it boots.
   339  	InstallUpdatesOnBoot pulumi.BoolPtrInput
   340  	// The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.
   341  	InstanceShutdownTimeout pulumi.IntPtrInput
   342  	LoadBasedAutoScaling    GangliaLayerLoadBasedAutoScalingPtrInput
   343  	// A human-readable name for the layer.
   344  	Name pulumi.StringPtrInput
   345  	// The password to use for Ganglia.
   346  	Password pulumi.StringInput
   347  	// ID of the stack the layer will belong to.
   348  	StackId pulumi.StringInput
   349  	// Names of a set of system packages to install on the layer's instances.
   350  	SystemPackages pulumi.StringArrayInput
   351  	// 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.
   352  	//
   353  	// The following extra optional arguments, all lists of Chef recipe names, allow
   354  	// custom Chef recipes to be applied to layer instances at the five different
   355  	// lifecycle events, if custom cookbooks are enabled on the layer's stack:
   356  	Tags pulumi.StringMapInput
   357  	// The URL path to use for Ganglia. Defaults to "/ganglia".
   358  	Url pulumi.StringPtrInput
   359  	// Whether to use EBS-optimized instances.
   360  	UseEbsOptimizedInstances pulumi.BoolPtrInput
   361  	// The username to use for Ganglia. Defaults to "opsworks".
   362  	Username pulumi.StringPtrInput
   363  }
   364  
   365  func (GangliaLayerArgs) ElementType() reflect.Type {
   366  	return reflect.TypeOf((*gangliaLayerArgs)(nil)).Elem()
   367  }
   368  
   369  type GangliaLayerInput interface {
   370  	pulumi.Input
   371  
   372  	ToGangliaLayerOutput() GangliaLayerOutput
   373  	ToGangliaLayerOutputWithContext(ctx context.Context) GangliaLayerOutput
   374  }
   375  
   376  func (*GangliaLayer) ElementType() reflect.Type {
   377  	return reflect.TypeOf((**GangliaLayer)(nil)).Elem()
   378  }
   379  
   380  func (i *GangliaLayer) ToGangliaLayerOutput() GangliaLayerOutput {
   381  	return i.ToGangliaLayerOutputWithContext(context.Background())
   382  }
   383  
   384  func (i *GangliaLayer) ToGangliaLayerOutputWithContext(ctx context.Context) GangliaLayerOutput {
   385  	return pulumi.ToOutputWithContext(ctx, i).(GangliaLayerOutput)
   386  }
   387  
   388  // GangliaLayerArrayInput is an input type that accepts GangliaLayerArray and GangliaLayerArrayOutput values.
   389  // You can construct a concrete instance of `GangliaLayerArrayInput` via:
   390  //
   391  //	GangliaLayerArray{ GangliaLayerArgs{...} }
   392  type GangliaLayerArrayInput interface {
   393  	pulumi.Input
   394  
   395  	ToGangliaLayerArrayOutput() GangliaLayerArrayOutput
   396  	ToGangliaLayerArrayOutputWithContext(context.Context) GangliaLayerArrayOutput
   397  }
   398  
   399  type GangliaLayerArray []GangliaLayerInput
   400  
   401  func (GangliaLayerArray) ElementType() reflect.Type {
   402  	return reflect.TypeOf((*[]*GangliaLayer)(nil)).Elem()
   403  }
   404  
   405  func (i GangliaLayerArray) ToGangliaLayerArrayOutput() GangliaLayerArrayOutput {
   406  	return i.ToGangliaLayerArrayOutputWithContext(context.Background())
   407  }
   408  
   409  func (i GangliaLayerArray) ToGangliaLayerArrayOutputWithContext(ctx context.Context) GangliaLayerArrayOutput {
   410  	return pulumi.ToOutputWithContext(ctx, i).(GangliaLayerArrayOutput)
   411  }
   412  
   413  // GangliaLayerMapInput is an input type that accepts GangliaLayerMap and GangliaLayerMapOutput values.
   414  // You can construct a concrete instance of `GangliaLayerMapInput` via:
   415  //
   416  //	GangliaLayerMap{ "key": GangliaLayerArgs{...} }
   417  type GangliaLayerMapInput interface {
   418  	pulumi.Input
   419  
   420  	ToGangliaLayerMapOutput() GangliaLayerMapOutput
   421  	ToGangliaLayerMapOutputWithContext(context.Context) GangliaLayerMapOutput
   422  }
   423  
   424  type GangliaLayerMap map[string]GangliaLayerInput
   425  
   426  func (GangliaLayerMap) ElementType() reflect.Type {
   427  	return reflect.TypeOf((*map[string]*GangliaLayer)(nil)).Elem()
   428  }
   429  
   430  func (i GangliaLayerMap) ToGangliaLayerMapOutput() GangliaLayerMapOutput {
   431  	return i.ToGangliaLayerMapOutputWithContext(context.Background())
   432  }
   433  
   434  func (i GangliaLayerMap) ToGangliaLayerMapOutputWithContext(ctx context.Context) GangliaLayerMapOutput {
   435  	return pulumi.ToOutputWithContext(ctx, i).(GangliaLayerMapOutput)
   436  }
   437  
   438  type GangliaLayerOutput struct{ *pulumi.OutputState }
   439  
   440  func (GangliaLayerOutput) ElementType() reflect.Type {
   441  	return reflect.TypeOf((**GangliaLayer)(nil)).Elem()
   442  }
   443  
   444  func (o GangliaLayerOutput) ToGangliaLayerOutput() GangliaLayerOutput {
   445  	return o
   446  }
   447  
   448  func (o GangliaLayerOutput) ToGangliaLayerOutputWithContext(ctx context.Context) GangliaLayerOutput {
   449  	return o
   450  }
   451  
   452  // The Amazon Resource Name(ARN) of the layer.
   453  func (o GangliaLayerOutput) Arn() pulumi.StringOutput {
   454  	return o.ApplyT(func(v *GangliaLayer) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   455  }
   456  
   457  // Whether to automatically assign an elastic IP address to the layer's instances.
   458  func (o GangliaLayerOutput) AutoAssignElasticIps() pulumi.BoolPtrOutput {
   459  	return o.ApplyT(func(v *GangliaLayer) pulumi.BoolPtrOutput { return v.AutoAssignElasticIps }).(pulumi.BoolPtrOutput)
   460  }
   461  
   462  // For stacks belonging to a VPC, whether to automatically assign a public IP address to each of the layer's instances.
   463  func (o GangliaLayerOutput) AutoAssignPublicIps() pulumi.BoolPtrOutput {
   464  	return o.ApplyT(func(v *GangliaLayer) pulumi.BoolPtrOutput { return v.AutoAssignPublicIps }).(pulumi.BoolPtrOutput)
   465  }
   466  
   467  // Whether to enable auto-healing for the layer.
   468  func (o GangliaLayerOutput) AutoHealing() pulumi.BoolPtrOutput {
   469  	return o.ApplyT(func(v *GangliaLayer) pulumi.BoolPtrOutput { return v.AutoHealing }).(pulumi.BoolPtrOutput)
   470  }
   471  
   472  func (o GangliaLayerOutput) CloudwatchConfiguration() GangliaLayerCloudwatchConfigurationPtrOutput {
   473  	return o.ApplyT(func(v *GangliaLayer) GangliaLayerCloudwatchConfigurationPtrOutput { return v.CloudwatchConfiguration }).(GangliaLayerCloudwatchConfigurationPtrOutput)
   474  }
   475  
   476  func (o GangliaLayerOutput) CustomConfigureRecipes() pulumi.StringArrayOutput {
   477  	return o.ApplyT(func(v *GangliaLayer) pulumi.StringArrayOutput { return v.CustomConfigureRecipes }).(pulumi.StringArrayOutput)
   478  }
   479  
   480  func (o GangliaLayerOutput) CustomDeployRecipes() pulumi.StringArrayOutput {
   481  	return o.ApplyT(func(v *GangliaLayer) pulumi.StringArrayOutput { return v.CustomDeployRecipes }).(pulumi.StringArrayOutput)
   482  }
   483  
   484  // The ARN of an IAM profile that will be used for the layer's instances.
   485  func (o GangliaLayerOutput) CustomInstanceProfileArn() pulumi.StringPtrOutput {
   486  	return o.ApplyT(func(v *GangliaLayer) pulumi.StringPtrOutput { return v.CustomInstanceProfileArn }).(pulumi.StringPtrOutput)
   487  }
   488  
   489  // Custom JSON attributes to apply to the layer.
   490  func (o GangliaLayerOutput) CustomJson() pulumi.StringPtrOutput {
   491  	return o.ApplyT(func(v *GangliaLayer) pulumi.StringPtrOutput { return v.CustomJson }).(pulumi.StringPtrOutput)
   492  }
   493  
   494  // Ids for a set of security groups to apply to the layer's instances.
   495  func (o GangliaLayerOutput) CustomSecurityGroupIds() pulumi.StringArrayOutput {
   496  	return o.ApplyT(func(v *GangliaLayer) pulumi.StringArrayOutput { return v.CustomSecurityGroupIds }).(pulumi.StringArrayOutput)
   497  }
   498  
   499  func (o GangliaLayerOutput) CustomSetupRecipes() pulumi.StringArrayOutput {
   500  	return o.ApplyT(func(v *GangliaLayer) pulumi.StringArrayOutput { return v.CustomSetupRecipes }).(pulumi.StringArrayOutput)
   501  }
   502  
   503  func (o GangliaLayerOutput) CustomShutdownRecipes() pulumi.StringArrayOutput {
   504  	return o.ApplyT(func(v *GangliaLayer) pulumi.StringArrayOutput { return v.CustomShutdownRecipes }).(pulumi.StringArrayOutput)
   505  }
   506  
   507  func (o GangliaLayerOutput) CustomUndeployRecipes() pulumi.StringArrayOutput {
   508  	return o.ApplyT(func(v *GangliaLayer) pulumi.StringArrayOutput { return v.CustomUndeployRecipes }).(pulumi.StringArrayOutput)
   509  }
   510  
   511  // Whether to enable Elastic Load Balancing connection draining.
   512  func (o GangliaLayerOutput) DrainElbOnShutdown() pulumi.BoolPtrOutput {
   513  	return o.ApplyT(func(v *GangliaLayer) pulumi.BoolPtrOutput { return v.DrainElbOnShutdown }).(pulumi.BoolPtrOutput)
   514  }
   515  
   516  // `ebsVolume` blocks, as described below, will each create an EBS volume and connect it to the layer's instances.
   517  func (o GangliaLayerOutput) EbsVolumes() GangliaLayerEbsVolumeArrayOutput {
   518  	return o.ApplyT(func(v *GangliaLayer) GangliaLayerEbsVolumeArrayOutput { return v.EbsVolumes }).(GangliaLayerEbsVolumeArrayOutput)
   519  }
   520  
   521  // Name of an Elastic Load Balancer to attach to this layer
   522  func (o GangliaLayerOutput) ElasticLoadBalancer() pulumi.StringPtrOutput {
   523  	return o.ApplyT(func(v *GangliaLayer) pulumi.StringPtrOutput { return v.ElasticLoadBalancer }).(pulumi.StringPtrOutput)
   524  }
   525  
   526  // Whether to install OS and package updates on each instance when it boots.
   527  func (o GangliaLayerOutput) InstallUpdatesOnBoot() pulumi.BoolPtrOutput {
   528  	return o.ApplyT(func(v *GangliaLayer) pulumi.BoolPtrOutput { return v.InstallUpdatesOnBoot }).(pulumi.BoolPtrOutput)
   529  }
   530  
   531  // The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.
   532  func (o GangliaLayerOutput) InstanceShutdownTimeout() pulumi.IntPtrOutput {
   533  	return o.ApplyT(func(v *GangliaLayer) pulumi.IntPtrOutput { return v.InstanceShutdownTimeout }).(pulumi.IntPtrOutput)
   534  }
   535  
   536  func (o GangliaLayerOutput) LoadBasedAutoScaling() GangliaLayerLoadBasedAutoScalingOutput {
   537  	return o.ApplyT(func(v *GangliaLayer) GangliaLayerLoadBasedAutoScalingOutput { return v.LoadBasedAutoScaling }).(GangliaLayerLoadBasedAutoScalingOutput)
   538  }
   539  
   540  // A human-readable name for the layer.
   541  func (o GangliaLayerOutput) Name() pulumi.StringOutput {
   542  	return o.ApplyT(func(v *GangliaLayer) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   543  }
   544  
   545  // The password to use for Ganglia.
   546  func (o GangliaLayerOutput) Password() pulumi.StringOutput {
   547  	return o.ApplyT(func(v *GangliaLayer) pulumi.StringOutput { return v.Password }).(pulumi.StringOutput)
   548  }
   549  
   550  // ID of the stack the layer will belong to.
   551  func (o GangliaLayerOutput) StackId() pulumi.StringOutput {
   552  	return o.ApplyT(func(v *GangliaLayer) pulumi.StringOutput { return v.StackId }).(pulumi.StringOutput)
   553  }
   554  
   555  // Names of a set of system packages to install on the layer's instances.
   556  func (o GangliaLayerOutput) SystemPackages() pulumi.StringArrayOutput {
   557  	return o.ApplyT(func(v *GangliaLayer) pulumi.StringArrayOutput { return v.SystemPackages }).(pulumi.StringArrayOutput)
   558  }
   559  
   560  // 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.
   561  //
   562  // The following extra optional arguments, all lists of Chef recipe names, allow
   563  // custom Chef recipes to be applied to layer instances at the five different
   564  // lifecycle events, if custom cookbooks are enabled on the layer's stack:
   565  func (o GangliaLayerOutput) Tags() pulumi.StringMapOutput {
   566  	return o.ApplyT(func(v *GangliaLayer) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   567  }
   568  
   569  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   570  //
   571  // Deprecated: Please use `tags` instead.
   572  func (o GangliaLayerOutput) TagsAll() pulumi.StringMapOutput {
   573  	return o.ApplyT(func(v *GangliaLayer) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   574  }
   575  
   576  // The URL path to use for Ganglia. Defaults to "/ganglia".
   577  func (o GangliaLayerOutput) Url() pulumi.StringPtrOutput {
   578  	return o.ApplyT(func(v *GangliaLayer) pulumi.StringPtrOutput { return v.Url }).(pulumi.StringPtrOutput)
   579  }
   580  
   581  // Whether to use EBS-optimized instances.
   582  func (o GangliaLayerOutput) UseEbsOptimizedInstances() pulumi.BoolPtrOutput {
   583  	return o.ApplyT(func(v *GangliaLayer) pulumi.BoolPtrOutput { return v.UseEbsOptimizedInstances }).(pulumi.BoolPtrOutput)
   584  }
   585  
   586  // The username to use for Ganglia. Defaults to "opsworks".
   587  func (o GangliaLayerOutput) Username() pulumi.StringPtrOutput {
   588  	return o.ApplyT(func(v *GangliaLayer) pulumi.StringPtrOutput { return v.Username }).(pulumi.StringPtrOutput)
   589  }
   590  
   591  type GangliaLayerArrayOutput struct{ *pulumi.OutputState }
   592  
   593  func (GangliaLayerArrayOutput) ElementType() reflect.Type {
   594  	return reflect.TypeOf((*[]*GangliaLayer)(nil)).Elem()
   595  }
   596  
   597  func (o GangliaLayerArrayOutput) ToGangliaLayerArrayOutput() GangliaLayerArrayOutput {
   598  	return o
   599  }
   600  
   601  func (o GangliaLayerArrayOutput) ToGangliaLayerArrayOutputWithContext(ctx context.Context) GangliaLayerArrayOutput {
   602  	return o
   603  }
   604  
   605  func (o GangliaLayerArrayOutput) Index(i pulumi.IntInput) GangliaLayerOutput {
   606  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *GangliaLayer {
   607  		return vs[0].([]*GangliaLayer)[vs[1].(int)]
   608  	}).(GangliaLayerOutput)
   609  }
   610  
   611  type GangliaLayerMapOutput struct{ *pulumi.OutputState }
   612  
   613  func (GangliaLayerMapOutput) ElementType() reflect.Type {
   614  	return reflect.TypeOf((*map[string]*GangliaLayer)(nil)).Elem()
   615  }
   616  
   617  func (o GangliaLayerMapOutput) ToGangliaLayerMapOutput() GangliaLayerMapOutput {
   618  	return o
   619  }
   620  
   621  func (o GangliaLayerMapOutput) ToGangliaLayerMapOutputWithContext(ctx context.Context) GangliaLayerMapOutput {
   622  	return o
   623  }
   624  
   625  func (o GangliaLayerMapOutput) MapIndex(k pulumi.StringInput) GangliaLayerOutput {
   626  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *GangliaLayer {
   627  		return vs[0].(map[string]*GangliaLayer)[vs[1].(string)]
   628  	}).(GangliaLayerOutput)
   629  }
   630  
   631  func init() {
   632  	pulumi.RegisterInputType(reflect.TypeOf((*GangliaLayerInput)(nil)).Elem(), &GangliaLayer{})
   633  	pulumi.RegisterInputType(reflect.TypeOf((*GangliaLayerArrayInput)(nil)).Elem(), GangliaLayerArray{})
   634  	pulumi.RegisterInputType(reflect.TypeOf((*GangliaLayerMapInput)(nil)).Elem(), GangliaLayerMap{})
   635  	pulumi.RegisterOutputType(GangliaLayerOutput{})
   636  	pulumi.RegisterOutputType(GangliaLayerArrayOutput{})
   637  	pulumi.RegisterOutputType(GangliaLayerMapOutput{})
   638  }