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