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