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