github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/opsworks/memcachedLayer.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 memcached 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.NewMemcachedLayer(ctx, "cache", &opsworks.MemcachedLayerArgs{
    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 MemcachedLayer struct {
    45  	pulumi.CustomResourceState
    46  
    47  	// Amount of memory to allocate for the cache on each instance, in megabytes. Defaults to 512MB.
    48  	AllocatedMemory pulumi.IntPtrOutput `pulumi:"allocatedMemory"`
    49  	// The Amazon Resource Name(ARN) of the layer.
    50  	Arn pulumi.StringOutput `pulumi:"arn"`
    51  	// Whether to automatically assign an elastic IP address to the layer's instances.
    52  	AutoAssignElasticIps pulumi.BoolPtrOutput `pulumi:"autoAssignElasticIps"`
    53  	// For stacks belonging to a VPC, whether to automatically assign a public IP address to each of the layer's instances.
    54  	AutoAssignPublicIps pulumi.BoolPtrOutput `pulumi:"autoAssignPublicIps"`
    55  	// Whether to enable auto-healing for the layer.
    56  	AutoHealing             pulumi.BoolPtrOutput                           `pulumi:"autoHealing"`
    57  	CloudwatchConfiguration MemcachedLayerCloudwatchConfigurationPtrOutput `pulumi:"cloudwatchConfiguration"`
    58  	CustomConfigureRecipes  pulumi.StringArrayOutput                       `pulumi:"customConfigureRecipes"`
    59  	CustomDeployRecipes     pulumi.StringArrayOutput                       `pulumi:"customDeployRecipes"`
    60  	// The ARN of an IAM profile that will be used for the layer's instances.
    61  	CustomInstanceProfileArn pulumi.StringPtrOutput `pulumi:"customInstanceProfileArn"`
    62  	// Custom JSON attributes to apply to the layer.
    63  	CustomJson pulumi.StringPtrOutput `pulumi:"customJson"`
    64  	// Ids for a set of security groups to apply to the layer's instances.
    65  	CustomSecurityGroupIds pulumi.StringArrayOutput `pulumi:"customSecurityGroupIds"`
    66  	CustomSetupRecipes     pulumi.StringArrayOutput `pulumi:"customSetupRecipes"`
    67  	CustomShutdownRecipes  pulumi.StringArrayOutput `pulumi:"customShutdownRecipes"`
    68  	CustomUndeployRecipes  pulumi.StringArrayOutput `pulumi:"customUndeployRecipes"`
    69  	// Whether to enable Elastic Load Balancing connection draining.
    70  	DrainElbOnShutdown pulumi.BoolPtrOutput `pulumi:"drainElbOnShutdown"`
    71  	// `ebsVolume` blocks, as described below, will each create an EBS volume and connect it to the layer's instances.
    72  	EbsVolumes MemcachedLayerEbsVolumeArrayOutput `pulumi:"ebsVolumes"`
    73  	// Name of an Elastic Load Balancer to attach to this layer
    74  	ElasticLoadBalancer pulumi.StringPtrOutput `pulumi:"elasticLoadBalancer"`
    75  	// Whether to install OS and package updates on each instance when it boots.
    76  	InstallUpdatesOnBoot pulumi.BoolPtrOutput `pulumi:"installUpdatesOnBoot"`
    77  	// The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.
    78  	InstanceShutdownTimeout pulumi.IntPtrOutput                      `pulumi:"instanceShutdownTimeout"`
    79  	LoadBasedAutoScaling    MemcachedLayerLoadBasedAutoScalingOutput `pulumi:"loadBasedAutoScaling"`
    80  	// A human-readable name for the layer.
    81  	Name pulumi.StringOutput `pulumi:"name"`
    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  // NewMemcachedLayer registers a new resource with the given unique name, arguments, and options.
   101  func NewMemcachedLayer(ctx *pulumi.Context,
   102  	name string, args *MemcachedLayerArgs, opts ...pulumi.ResourceOption) (*MemcachedLayer, 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 MemcachedLayer
   112  	err := ctx.RegisterResource("aws:opsworks/memcachedLayer:MemcachedLayer", name, args, &resource, opts...)
   113  	if err != nil {
   114  		return nil, err
   115  	}
   116  	return &resource, nil
   117  }
   118  
   119  // GetMemcachedLayer gets an existing MemcachedLayer 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 GetMemcachedLayer(ctx *pulumi.Context,
   122  	name string, id pulumi.IDInput, state *MemcachedLayerState, opts ...pulumi.ResourceOption) (*MemcachedLayer, error) {
   123  	var resource MemcachedLayer
   124  	err := ctx.ReadResource("aws:opsworks/memcachedLayer:MemcachedLayer", 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 MemcachedLayer resources.
   132  type memcachedLayerState struct {
   133  	// Amount of memory to allocate for the cache on each instance, in megabytes. Defaults to 512MB.
   134  	AllocatedMemory *int `pulumi:"allocatedMemory"`
   135  	// The Amazon Resource Name(ARN) of the layer.
   136  	Arn *string `pulumi:"arn"`
   137  	// Whether to automatically assign an elastic IP address to the layer's instances.
   138  	AutoAssignElasticIps *bool `pulumi:"autoAssignElasticIps"`
   139  	// For stacks belonging to a VPC, whether to automatically assign a public IP address to each of the layer's instances.
   140  	AutoAssignPublicIps *bool `pulumi:"autoAssignPublicIps"`
   141  	// Whether to enable auto-healing for the layer.
   142  	AutoHealing             *bool                                  `pulumi:"autoHealing"`
   143  	CloudwatchConfiguration *MemcachedLayerCloudwatchConfiguration `pulumi:"cloudwatchConfiguration"`
   144  	CustomConfigureRecipes  []string                               `pulumi:"customConfigureRecipes"`
   145  	CustomDeployRecipes     []string                               `pulumi:"customDeployRecipes"`
   146  	// The ARN of an IAM profile that will be used for the layer's instances.
   147  	CustomInstanceProfileArn *string `pulumi:"customInstanceProfileArn"`
   148  	// Custom JSON attributes to apply to the layer.
   149  	CustomJson *string `pulumi:"customJson"`
   150  	// Ids for a set of security groups to apply to the layer's instances.
   151  	CustomSecurityGroupIds []string `pulumi:"customSecurityGroupIds"`
   152  	CustomSetupRecipes     []string `pulumi:"customSetupRecipes"`
   153  	CustomShutdownRecipes  []string `pulumi:"customShutdownRecipes"`
   154  	CustomUndeployRecipes  []string `pulumi:"customUndeployRecipes"`
   155  	// Whether to enable Elastic Load Balancing connection draining.
   156  	DrainElbOnShutdown *bool `pulumi:"drainElbOnShutdown"`
   157  	// `ebsVolume` blocks, as described below, will each create an EBS volume and connect it to the layer's instances.
   158  	EbsVolumes []MemcachedLayerEbsVolume `pulumi:"ebsVolumes"`
   159  	// Name of an Elastic Load Balancer to attach to this layer
   160  	ElasticLoadBalancer *string `pulumi:"elasticLoadBalancer"`
   161  	// Whether to install OS and package updates on each instance when it boots.
   162  	InstallUpdatesOnBoot *bool `pulumi:"installUpdatesOnBoot"`
   163  	// The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.
   164  	InstanceShutdownTimeout *int                                `pulumi:"instanceShutdownTimeout"`
   165  	LoadBasedAutoScaling    *MemcachedLayerLoadBasedAutoScaling `pulumi:"loadBasedAutoScaling"`
   166  	// A human-readable name for the layer.
   167  	Name *string `pulumi:"name"`
   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 MemcachedLayerState struct {
   187  	// Amount of memory to allocate for the cache on each instance, in megabytes. Defaults to 512MB.
   188  	AllocatedMemory pulumi.IntPtrInput
   189  	// The Amazon Resource Name(ARN) of the layer.
   190  	Arn pulumi.StringPtrInput
   191  	// Whether to automatically assign an elastic IP address to the layer's instances.
   192  	AutoAssignElasticIps pulumi.BoolPtrInput
   193  	// For stacks belonging to a VPC, whether to automatically assign a public IP address to each of the layer's instances.
   194  	AutoAssignPublicIps pulumi.BoolPtrInput
   195  	// Whether to enable auto-healing for the layer.
   196  	AutoHealing             pulumi.BoolPtrInput
   197  	CloudwatchConfiguration MemcachedLayerCloudwatchConfigurationPtrInput
   198  	CustomConfigureRecipes  pulumi.StringArrayInput
   199  	CustomDeployRecipes     pulumi.StringArrayInput
   200  	// The ARN of an IAM profile that will be used for the layer's instances.
   201  	CustomInstanceProfileArn pulumi.StringPtrInput
   202  	// Custom JSON attributes to apply to the layer.
   203  	CustomJson pulumi.StringPtrInput
   204  	// Ids for a set of security groups to apply to the layer's instances.
   205  	CustomSecurityGroupIds pulumi.StringArrayInput
   206  	CustomSetupRecipes     pulumi.StringArrayInput
   207  	CustomShutdownRecipes  pulumi.StringArrayInput
   208  	CustomUndeployRecipes  pulumi.StringArrayInput
   209  	// Whether to enable Elastic Load Balancing connection draining.
   210  	DrainElbOnShutdown pulumi.BoolPtrInput
   211  	// `ebsVolume` blocks, as described below, will each create an EBS volume and connect it to the layer's instances.
   212  	EbsVolumes MemcachedLayerEbsVolumeArrayInput
   213  	// Name of an Elastic Load Balancer to attach to this layer
   214  	ElasticLoadBalancer pulumi.StringPtrInput
   215  	// Whether to install OS and package updates on each instance when it boots.
   216  	InstallUpdatesOnBoot pulumi.BoolPtrInput
   217  	// The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.
   218  	InstanceShutdownTimeout pulumi.IntPtrInput
   219  	LoadBasedAutoScaling    MemcachedLayerLoadBasedAutoScalingPtrInput
   220  	// A human-readable name for the layer.
   221  	Name 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 (MemcachedLayerState) ElementType() reflect.Type {
   241  	return reflect.TypeOf((*memcachedLayerState)(nil)).Elem()
   242  }
   243  
   244  type memcachedLayerArgs struct {
   245  	// Amount of memory to allocate for the cache on each instance, in megabytes. Defaults to 512MB.
   246  	AllocatedMemory *int `pulumi:"allocatedMemory"`
   247  	// Whether to automatically assign an elastic IP address to the layer's instances.
   248  	AutoAssignElasticIps *bool `pulumi:"autoAssignElasticIps"`
   249  	// For stacks belonging to a VPC, whether to automatically assign a public IP address to each of the layer's instances.
   250  	AutoAssignPublicIps *bool `pulumi:"autoAssignPublicIps"`
   251  	// Whether to enable auto-healing for the layer.
   252  	AutoHealing             *bool                                  `pulumi:"autoHealing"`
   253  	CloudwatchConfiguration *MemcachedLayerCloudwatchConfiguration `pulumi:"cloudwatchConfiguration"`
   254  	CustomConfigureRecipes  []string                               `pulumi:"customConfigureRecipes"`
   255  	CustomDeployRecipes     []string                               `pulumi:"customDeployRecipes"`
   256  	// The ARN of an IAM profile that will be used for the layer's instances.
   257  	CustomInstanceProfileArn *string `pulumi:"customInstanceProfileArn"`
   258  	// Custom JSON attributes to apply to the layer.
   259  	CustomJson *string `pulumi:"customJson"`
   260  	// Ids for a set of security groups to apply to the layer's instances.
   261  	CustomSecurityGroupIds []string `pulumi:"customSecurityGroupIds"`
   262  	CustomSetupRecipes     []string `pulumi:"customSetupRecipes"`
   263  	CustomShutdownRecipes  []string `pulumi:"customShutdownRecipes"`
   264  	CustomUndeployRecipes  []string `pulumi:"customUndeployRecipes"`
   265  	// Whether to enable Elastic Load Balancing connection draining.
   266  	DrainElbOnShutdown *bool `pulumi:"drainElbOnShutdown"`
   267  	// `ebsVolume` blocks, as described below, will each create an EBS volume and connect it to the layer's instances.
   268  	EbsVolumes []MemcachedLayerEbsVolume `pulumi:"ebsVolumes"`
   269  	// Name of an Elastic Load Balancer to attach to this layer
   270  	ElasticLoadBalancer *string `pulumi:"elasticLoadBalancer"`
   271  	// Whether to install OS and package updates on each instance when it boots.
   272  	InstallUpdatesOnBoot *bool `pulumi:"installUpdatesOnBoot"`
   273  	// The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.
   274  	InstanceShutdownTimeout *int                                `pulumi:"instanceShutdownTimeout"`
   275  	LoadBasedAutoScaling    *MemcachedLayerLoadBasedAutoScaling `pulumi:"loadBasedAutoScaling"`
   276  	// A human-readable name for the layer.
   277  	Name *string `pulumi:"name"`
   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 MemcachedLayer resource.
   293  type MemcachedLayerArgs struct {
   294  	// Amount of memory to allocate for the cache on each instance, in megabytes. Defaults to 512MB.
   295  	AllocatedMemory pulumi.IntPtrInput
   296  	// Whether to automatically assign an elastic IP address to the layer's instances.
   297  	AutoAssignElasticIps pulumi.BoolPtrInput
   298  	// For stacks belonging to a VPC, whether to automatically assign a public IP address to each of the layer's instances.
   299  	AutoAssignPublicIps pulumi.BoolPtrInput
   300  	// Whether to enable auto-healing for the layer.
   301  	AutoHealing             pulumi.BoolPtrInput
   302  	CloudwatchConfiguration MemcachedLayerCloudwatchConfigurationPtrInput
   303  	CustomConfigureRecipes  pulumi.StringArrayInput
   304  	CustomDeployRecipes     pulumi.StringArrayInput
   305  	// The ARN of an IAM profile that will be used for the layer's instances.
   306  	CustomInstanceProfileArn pulumi.StringPtrInput
   307  	// Custom JSON attributes to apply to the layer.
   308  	CustomJson pulumi.StringPtrInput
   309  	// Ids for a set of security groups to apply to the layer's instances.
   310  	CustomSecurityGroupIds pulumi.StringArrayInput
   311  	CustomSetupRecipes     pulumi.StringArrayInput
   312  	CustomShutdownRecipes  pulumi.StringArrayInput
   313  	CustomUndeployRecipes  pulumi.StringArrayInput
   314  	// Whether to enable Elastic Load Balancing connection draining.
   315  	DrainElbOnShutdown pulumi.BoolPtrInput
   316  	// `ebsVolume` blocks, as described below, will each create an EBS volume and connect it to the layer's instances.
   317  	EbsVolumes MemcachedLayerEbsVolumeArrayInput
   318  	// Name of an Elastic Load Balancer to attach to this layer
   319  	ElasticLoadBalancer pulumi.StringPtrInput
   320  	// Whether to install OS and package updates on each instance when it boots.
   321  	InstallUpdatesOnBoot pulumi.BoolPtrInput
   322  	// The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.
   323  	InstanceShutdownTimeout pulumi.IntPtrInput
   324  	LoadBasedAutoScaling    MemcachedLayerLoadBasedAutoScalingPtrInput
   325  	// A human-readable name for the layer.
   326  	Name 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 (MemcachedLayerArgs) ElementType() reflect.Type {
   342  	return reflect.TypeOf((*memcachedLayerArgs)(nil)).Elem()
   343  }
   344  
   345  type MemcachedLayerInput interface {
   346  	pulumi.Input
   347  
   348  	ToMemcachedLayerOutput() MemcachedLayerOutput
   349  	ToMemcachedLayerOutputWithContext(ctx context.Context) MemcachedLayerOutput
   350  }
   351  
   352  func (*MemcachedLayer) ElementType() reflect.Type {
   353  	return reflect.TypeOf((**MemcachedLayer)(nil)).Elem()
   354  }
   355  
   356  func (i *MemcachedLayer) ToMemcachedLayerOutput() MemcachedLayerOutput {
   357  	return i.ToMemcachedLayerOutputWithContext(context.Background())
   358  }
   359  
   360  func (i *MemcachedLayer) ToMemcachedLayerOutputWithContext(ctx context.Context) MemcachedLayerOutput {
   361  	return pulumi.ToOutputWithContext(ctx, i).(MemcachedLayerOutput)
   362  }
   363  
   364  // MemcachedLayerArrayInput is an input type that accepts MemcachedLayerArray and MemcachedLayerArrayOutput values.
   365  // You can construct a concrete instance of `MemcachedLayerArrayInput` via:
   366  //
   367  //	MemcachedLayerArray{ MemcachedLayerArgs{...} }
   368  type MemcachedLayerArrayInput interface {
   369  	pulumi.Input
   370  
   371  	ToMemcachedLayerArrayOutput() MemcachedLayerArrayOutput
   372  	ToMemcachedLayerArrayOutputWithContext(context.Context) MemcachedLayerArrayOutput
   373  }
   374  
   375  type MemcachedLayerArray []MemcachedLayerInput
   376  
   377  func (MemcachedLayerArray) ElementType() reflect.Type {
   378  	return reflect.TypeOf((*[]*MemcachedLayer)(nil)).Elem()
   379  }
   380  
   381  func (i MemcachedLayerArray) ToMemcachedLayerArrayOutput() MemcachedLayerArrayOutput {
   382  	return i.ToMemcachedLayerArrayOutputWithContext(context.Background())
   383  }
   384  
   385  func (i MemcachedLayerArray) ToMemcachedLayerArrayOutputWithContext(ctx context.Context) MemcachedLayerArrayOutput {
   386  	return pulumi.ToOutputWithContext(ctx, i).(MemcachedLayerArrayOutput)
   387  }
   388  
   389  // MemcachedLayerMapInput is an input type that accepts MemcachedLayerMap and MemcachedLayerMapOutput values.
   390  // You can construct a concrete instance of `MemcachedLayerMapInput` via:
   391  //
   392  //	MemcachedLayerMap{ "key": MemcachedLayerArgs{...} }
   393  type MemcachedLayerMapInput interface {
   394  	pulumi.Input
   395  
   396  	ToMemcachedLayerMapOutput() MemcachedLayerMapOutput
   397  	ToMemcachedLayerMapOutputWithContext(context.Context) MemcachedLayerMapOutput
   398  }
   399  
   400  type MemcachedLayerMap map[string]MemcachedLayerInput
   401  
   402  func (MemcachedLayerMap) ElementType() reflect.Type {
   403  	return reflect.TypeOf((*map[string]*MemcachedLayer)(nil)).Elem()
   404  }
   405  
   406  func (i MemcachedLayerMap) ToMemcachedLayerMapOutput() MemcachedLayerMapOutput {
   407  	return i.ToMemcachedLayerMapOutputWithContext(context.Background())
   408  }
   409  
   410  func (i MemcachedLayerMap) ToMemcachedLayerMapOutputWithContext(ctx context.Context) MemcachedLayerMapOutput {
   411  	return pulumi.ToOutputWithContext(ctx, i).(MemcachedLayerMapOutput)
   412  }
   413  
   414  type MemcachedLayerOutput struct{ *pulumi.OutputState }
   415  
   416  func (MemcachedLayerOutput) ElementType() reflect.Type {
   417  	return reflect.TypeOf((**MemcachedLayer)(nil)).Elem()
   418  }
   419  
   420  func (o MemcachedLayerOutput) ToMemcachedLayerOutput() MemcachedLayerOutput {
   421  	return o
   422  }
   423  
   424  func (o MemcachedLayerOutput) ToMemcachedLayerOutputWithContext(ctx context.Context) MemcachedLayerOutput {
   425  	return o
   426  }
   427  
   428  // Amount of memory to allocate for the cache on each instance, in megabytes. Defaults to 512MB.
   429  func (o MemcachedLayerOutput) AllocatedMemory() pulumi.IntPtrOutput {
   430  	return o.ApplyT(func(v *MemcachedLayer) pulumi.IntPtrOutput { return v.AllocatedMemory }).(pulumi.IntPtrOutput)
   431  }
   432  
   433  // The Amazon Resource Name(ARN) of the layer.
   434  func (o MemcachedLayerOutput) Arn() pulumi.StringOutput {
   435  	return o.ApplyT(func(v *MemcachedLayer) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   436  }
   437  
   438  // Whether to automatically assign an elastic IP address to the layer's instances.
   439  func (o MemcachedLayerOutput) AutoAssignElasticIps() pulumi.BoolPtrOutput {
   440  	return o.ApplyT(func(v *MemcachedLayer) pulumi.BoolPtrOutput { return v.AutoAssignElasticIps }).(pulumi.BoolPtrOutput)
   441  }
   442  
   443  // For stacks belonging to a VPC, whether to automatically assign a public IP address to each of the layer's instances.
   444  func (o MemcachedLayerOutput) AutoAssignPublicIps() pulumi.BoolPtrOutput {
   445  	return o.ApplyT(func(v *MemcachedLayer) pulumi.BoolPtrOutput { return v.AutoAssignPublicIps }).(pulumi.BoolPtrOutput)
   446  }
   447  
   448  // Whether to enable auto-healing for the layer.
   449  func (o MemcachedLayerOutput) AutoHealing() pulumi.BoolPtrOutput {
   450  	return o.ApplyT(func(v *MemcachedLayer) pulumi.BoolPtrOutput { return v.AutoHealing }).(pulumi.BoolPtrOutput)
   451  }
   452  
   453  func (o MemcachedLayerOutput) CloudwatchConfiguration() MemcachedLayerCloudwatchConfigurationPtrOutput {
   454  	return o.ApplyT(func(v *MemcachedLayer) MemcachedLayerCloudwatchConfigurationPtrOutput {
   455  		return v.CloudwatchConfiguration
   456  	}).(MemcachedLayerCloudwatchConfigurationPtrOutput)
   457  }
   458  
   459  func (o MemcachedLayerOutput) CustomConfigureRecipes() pulumi.StringArrayOutput {
   460  	return o.ApplyT(func(v *MemcachedLayer) pulumi.StringArrayOutput { return v.CustomConfigureRecipes }).(pulumi.StringArrayOutput)
   461  }
   462  
   463  func (o MemcachedLayerOutput) CustomDeployRecipes() pulumi.StringArrayOutput {
   464  	return o.ApplyT(func(v *MemcachedLayer) pulumi.StringArrayOutput { return v.CustomDeployRecipes }).(pulumi.StringArrayOutput)
   465  }
   466  
   467  // The ARN of an IAM profile that will be used for the layer's instances.
   468  func (o MemcachedLayerOutput) CustomInstanceProfileArn() pulumi.StringPtrOutput {
   469  	return o.ApplyT(func(v *MemcachedLayer) pulumi.StringPtrOutput { return v.CustomInstanceProfileArn }).(pulumi.StringPtrOutput)
   470  }
   471  
   472  // Custom JSON attributes to apply to the layer.
   473  func (o MemcachedLayerOutput) CustomJson() pulumi.StringPtrOutput {
   474  	return o.ApplyT(func(v *MemcachedLayer) pulumi.StringPtrOutput { return v.CustomJson }).(pulumi.StringPtrOutput)
   475  }
   476  
   477  // Ids for a set of security groups to apply to the layer's instances.
   478  func (o MemcachedLayerOutput) CustomSecurityGroupIds() pulumi.StringArrayOutput {
   479  	return o.ApplyT(func(v *MemcachedLayer) pulumi.StringArrayOutput { return v.CustomSecurityGroupIds }).(pulumi.StringArrayOutput)
   480  }
   481  
   482  func (o MemcachedLayerOutput) CustomSetupRecipes() pulumi.StringArrayOutput {
   483  	return o.ApplyT(func(v *MemcachedLayer) pulumi.StringArrayOutput { return v.CustomSetupRecipes }).(pulumi.StringArrayOutput)
   484  }
   485  
   486  func (o MemcachedLayerOutput) CustomShutdownRecipes() pulumi.StringArrayOutput {
   487  	return o.ApplyT(func(v *MemcachedLayer) pulumi.StringArrayOutput { return v.CustomShutdownRecipes }).(pulumi.StringArrayOutput)
   488  }
   489  
   490  func (o MemcachedLayerOutput) CustomUndeployRecipes() pulumi.StringArrayOutput {
   491  	return o.ApplyT(func(v *MemcachedLayer) pulumi.StringArrayOutput { return v.CustomUndeployRecipes }).(pulumi.StringArrayOutput)
   492  }
   493  
   494  // Whether to enable Elastic Load Balancing connection draining.
   495  func (o MemcachedLayerOutput) DrainElbOnShutdown() pulumi.BoolPtrOutput {
   496  	return o.ApplyT(func(v *MemcachedLayer) pulumi.BoolPtrOutput { return v.DrainElbOnShutdown }).(pulumi.BoolPtrOutput)
   497  }
   498  
   499  // `ebsVolume` blocks, as described below, will each create an EBS volume and connect it to the layer's instances.
   500  func (o MemcachedLayerOutput) EbsVolumes() MemcachedLayerEbsVolumeArrayOutput {
   501  	return o.ApplyT(func(v *MemcachedLayer) MemcachedLayerEbsVolumeArrayOutput { return v.EbsVolumes }).(MemcachedLayerEbsVolumeArrayOutput)
   502  }
   503  
   504  // Name of an Elastic Load Balancer to attach to this layer
   505  func (o MemcachedLayerOutput) ElasticLoadBalancer() pulumi.StringPtrOutput {
   506  	return o.ApplyT(func(v *MemcachedLayer) pulumi.StringPtrOutput { return v.ElasticLoadBalancer }).(pulumi.StringPtrOutput)
   507  }
   508  
   509  // Whether to install OS and package updates on each instance when it boots.
   510  func (o MemcachedLayerOutput) InstallUpdatesOnBoot() pulumi.BoolPtrOutput {
   511  	return o.ApplyT(func(v *MemcachedLayer) pulumi.BoolPtrOutput { return v.InstallUpdatesOnBoot }).(pulumi.BoolPtrOutput)
   512  }
   513  
   514  // The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.
   515  func (o MemcachedLayerOutput) InstanceShutdownTimeout() pulumi.IntPtrOutput {
   516  	return o.ApplyT(func(v *MemcachedLayer) pulumi.IntPtrOutput { return v.InstanceShutdownTimeout }).(pulumi.IntPtrOutput)
   517  }
   518  
   519  func (o MemcachedLayerOutput) LoadBasedAutoScaling() MemcachedLayerLoadBasedAutoScalingOutput {
   520  	return o.ApplyT(func(v *MemcachedLayer) MemcachedLayerLoadBasedAutoScalingOutput { return v.LoadBasedAutoScaling }).(MemcachedLayerLoadBasedAutoScalingOutput)
   521  }
   522  
   523  // A human-readable name for the layer.
   524  func (o MemcachedLayerOutput) Name() pulumi.StringOutput {
   525  	return o.ApplyT(func(v *MemcachedLayer) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   526  }
   527  
   528  // ID of the stack the layer will belong to.
   529  func (o MemcachedLayerOutput) StackId() pulumi.StringOutput {
   530  	return o.ApplyT(func(v *MemcachedLayer) 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 MemcachedLayerOutput) SystemPackages() pulumi.StringArrayOutput {
   535  	return o.ApplyT(func(v *MemcachedLayer) 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 MemcachedLayerOutput) Tags() pulumi.StringMapOutput {
   544  	return o.ApplyT(func(v *MemcachedLayer) 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 MemcachedLayerOutput) TagsAll() pulumi.StringMapOutput {
   551  	return o.ApplyT(func(v *MemcachedLayer) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   552  }
   553  
   554  // Whether to use EBS-optimized instances.
   555  func (o MemcachedLayerOutput) UseEbsOptimizedInstances() pulumi.BoolPtrOutput {
   556  	return o.ApplyT(func(v *MemcachedLayer) pulumi.BoolPtrOutput { return v.UseEbsOptimizedInstances }).(pulumi.BoolPtrOutput)
   557  }
   558  
   559  type MemcachedLayerArrayOutput struct{ *pulumi.OutputState }
   560  
   561  func (MemcachedLayerArrayOutput) ElementType() reflect.Type {
   562  	return reflect.TypeOf((*[]*MemcachedLayer)(nil)).Elem()
   563  }
   564  
   565  func (o MemcachedLayerArrayOutput) ToMemcachedLayerArrayOutput() MemcachedLayerArrayOutput {
   566  	return o
   567  }
   568  
   569  func (o MemcachedLayerArrayOutput) ToMemcachedLayerArrayOutputWithContext(ctx context.Context) MemcachedLayerArrayOutput {
   570  	return o
   571  }
   572  
   573  func (o MemcachedLayerArrayOutput) Index(i pulumi.IntInput) MemcachedLayerOutput {
   574  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MemcachedLayer {
   575  		return vs[0].([]*MemcachedLayer)[vs[1].(int)]
   576  	}).(MemcachedLayerOutput)
   577  }
   578  
   579  type MemcachedLayerMapOutput struct{ *pulumi.OutputState }
   580  
   581  func (MemcachedLayerMapOutput) ElementType() reflect.Type {
   582  	return reflect.TypeOf((*map[string]*MemcachedLayer)(nil)).Elem()
   583  }
   584  
   585  func (o MemcachedLayerMapOutput) ToMemcachedLayerMapOutput() MemcachedLayerMapOutput {
   586  	return o
   587  }
   588  
   589  func (o MemcachedLayerMapOutput) ToMemcachedLayerMapOutputWithContext(ctx context.Context) MemcachedLayerMapOutput {
   590  	return o
   591  }
   592  
   593  func (o MemcachedLayerMapOutput) MapIndex(k pulumi.StringInput) MemcachedLayerOutput {
   594  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MemcachedLayer {
   595  		return vs[0].(map[string]*MemcachedLayer)[vs[1].(string)]
   596  	}).(MemcachedLayerOutput)
   597  }
   598  
   599  func init() {
   600  	pulumi.RegisterInputType(reflect.TypeOf((*MemcachedLayerInput)(nil)).Elem(), &MemcachedLayer{})
   601  	pulumi.RegisterInputType(reflect.TypeOf((*MemcachedLayerArrayInput)(nil)).Elem(), MemcachedLayerArray{})
   602  	pulumi.RegisterInputType(reflect.TypeOf((*MemcachedLayerMapInput)(nil)).Elem(), MemcachedLayerMap{})
   603  	pulumi.RegisterOutputType(MemcachedLayerOutput{})
   604  	pulumi.RegisterOutputType(MemcachedLayerArrayOutput{})
   605  	pulumi.RegisterOutputType(MemcachedLayerMapOutput{})
   606  }