github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/opsworks/phpAppLayer.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 PHP 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.NewPhpAppLayer(ctx, "app", &opsworks.PhpAppLayerArgs{
    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  //
    45  // ## Import
    46  //
    47  // Using `pulumi import`, import OpsWorks PHP Application Layers using the `id`. For example:
    48  //
    49  // ```sh
    50  // $ pulumi import aws:opsworks/phpAppLayer:PhpAppLayer bar 00000000-0000-0000-0000-000000000000
    51  // ```
    52  type PhpAppLayer struct {
    53  	pulumi.CustomResourceState
    54  
    55  	// The Amazon Resource Name(ARN) of the layer.
    56  	Arn pulumi.StringOutput `pulumi:"arn"`
    57  	// Whether to automatically assign an elastic IP address to the layer's instances.
    58  	AutoAssignElasticIps pulumi.BoolPtrOutput `pulumi:"autoAssignElasticIps"`
    59  	// For stacks belonging to a VPC, whether to automatically assign a public IP address to each of the layer's instances.
    60  	AutoAssignPublicIps pulumi.BoolPtrOutput `pulumi:"autoAssignPublicIps"`
    61  	// Whether to enable auto-healing for the layer.
    62  	AutoHealing             pulumi.BoolPtrOutput                        `pulumi:"autoHealing"`
    63  	CloudwatchConfiguration PhpAppLayerCloudwatchConfigurationPtrOutput `pulumi:"cloudwatchConfiguration"`
    64  	CustomConfigureRecipes  pulumi.StringArrayOutput                    `pulumi:"customConfigureRecipes"`
    65  	CustomDeployRecipes     pulumi.StringArrayOutput                    `pulumi:"customDeployRecipes"`
    66  	// The ARN of an IAM profile that will be used for the layer's instances.
    67  	CustomInstanceProfileArn pulumi.StringPtrOutput `pulumi:"customInstanceProfileArn"`
    68  	// Custom JSON attributes to apply to the layer.
    69  	CustomJson pulumi.StringPtrOutput `pulumi:"customJson"`
    70  	// Ids for a set of security groups to apply to the layer's instances.
    71  	CustomSecurityGroupIds pulumi.StringArrayOutput `pulumi:"customSecurityGroupIds"`
    72  	CustomSetupRecipes     pulumi.StringArrayOutput `pulumi:"customSetupRecipes"`
    73  	CustomShutdownRecipes  pulumi.StringArrayOutput `pulumi:"customShutdownRecipes"`
    74  	CustomUndeployRecipes  pulumi.StringArrayOutput `pulumi:"customUndeployRecipes"`
    75  	// Whether to enable Elastic Load Balancing connection draining.
    76  	DrainElbOnShutdown pulumi.BoolPtrOutput `pulumi:"drainElbOnShutdown"`
    77  	// `ebsVolume` blocks, as described below, will each create an EBS volume and connect it to the layer's instances.
    78  	EbsVolumes PhpAppLayerEbsVolumeArrayOutput `pulumi:"ebsVolumes"`
    79  	// Name of an Elastic Load Balancer to attach to this layer
    80  	ElasticLoadBalancer pulumi.StringPtrOutput `pulumi:"elasticLoadBalancer"`
    81  	// Whether to install OS and package updates on each instance when it boots.
    82  	InstallUpdatesOnBoot pulumi.BoolPtrOutput `pulumi:"installUpdatesOnBoot"`
    83  	// The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.
    84  	InstanceShutdownTimeout pulumi.IntPtrOutput                   `pulumi:"instanceShutdownTimeout"`
    85  	LoadBasedAutoScaling    PhpAppLayerLoadBasedAutoScalingOutput `pulumi:"loadBasedAutoScaling"`
    86  	// A human-readable name for the layer.
    87  	Name pulumi.StringOutput `pulumi:"name"`
    88  	// ID of the stack the layer will belong to.
    89  	StackId pulumi.StringOutput `pulumi:"stackId"`
    90  	// Names of a set of system packages to install on the layer's instances.
    91  	SystemPackages pulumi.StringArrayOutput `pulumi:"systemPackages"`
    92  	// 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.
    93  	//
    94  	// The following extra optional arguments, all lists of Chef recipe names, allow
    95  	// custom Chef recipes to be applied to layer instances at the five different
    96  	// lifecycle events, if custom cookbooks are enabled on the layer's stack:
    97  	Tags pulumi.StringMapOutput `pulumi:"tags"`
    98  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
    99  	//
   100  	// Deprecated: Please use `tags` instead.
   101  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   102  	// Whether to use EBS-optimized instances.
   103  	UseEbsOptimizedInstances pulumi.BoolPtrOutput `pulumi:"useEbsOptimizedInstances"`
   104  }
   105  
   106  // NewPhpAppLayer registers a new resource with the given unique name, arguments, and options.
   107  func NewPhpAppLayer(ctx *pulumi.Context,
   108  	name string, args *PhpAppLayerArgs, opts ...pulumi.ResourceOption) (*PhpAppLayer, error) {
   109  	if args == nil {
   110  		return nil, errors.New("missing one or more required arguments")
   111  	}
   112  
   113  	if args.StackId == nil {
   114  		return nil, errors.New("invalid value for required argument 'StackId'")
   115  	}
   116  	opts = internal.PkgResourceDefaultOpts(opts)
   117  	var resource PhpAppLayer
   118  	err := ctx.RegisterResource("aws:opsworks/phpAppLayer:PhpAppLayer", name, args, &resource, opts...)
   119  	if err != nil {
   120  		return nil, err
   121  	}
   122  	return &resource, nil
   123  }
   124  
   125  // GetPhpAppLayer gets an existing PhpAppLayer resource's state with the given name, ID, and optional
   126  // state properties that are used to uniquely qualify the lookup (nil if not required).
   127  func GetPhpAppLayer(ctx *pulumi.Context,
   128  	name string, id pulumi.IDInput, state *PhpAppLayerState, opts ...pulumi.ResourceOption) (*PhpAppLayer, error) {
   129  	var resource PhpAppLayer
   130  	err := ctx.ReadResource("aws:opsworks/phpAppLayer:PhpAppLayer", name, id, state, &resource, opts...)
   131  	if err != nil {
   132  		return nil, err
   133  	}
   134  	return &resource, nil
   135  }
   136  
   137  // Input properties used for looking up and filtering PhpAppLayer resources.
   138  type phpAppLayerState struct {
   139  	// The Amazon Resource Name(ARN) of the layer.
   140  	Arn *string `pulumi:"arn"`
   141  	// Whether to automatically assign an elastic IP address to the layer's instances.
   142  	AutoAssignElasticIps *bool `pulumi:"autoAssignElasticIps"`
   143  	// For stacks belonging to a VPC, whether to automatically assign a public IP address to each of the layer's instances.
   144  	AutoAssignPublicIps *bool `pulumi:"autoAssignPublicIps"`
   145  	// Whether to enable auto-healing for the layer.
   146  	AutoHealing             *bool                               `pulumi:"autoHealing"`
   147  	CloudwatchConfiguration *PhpAppLayerCloudwatchConfiguration `pulumi:"cloudwatchConfiguration"`
   148  	CustomConfigureRecipes  []string                            `pulumi:"customConfigureRecipes"`
   149  	CustomDeployRecipes     []string                            `pulumi:"customDeployRecipes"`
   150  	// The ARN of an IAM profile that will be used for the layer's instances.
   151  	CustomInstanceProfileArn *string `pulumi:"customInstanceProfileArn"`
   152  	// Custom JSON attributes to apply to the layer.
   153  	CustomJson *string `pulumi:"customJson"`
   154  	// Ids for a set of security groups to apply to the layer's instances.
   155  	CustomSecurityGroupIds []string `pulumi:"customSecurityGroupIds"`
   156  	CustomSetupRecipes     []string `pulumi:"customSetupRecipes"`
   157  	CustomShutdownRecipes  []string `pulumi:"customShutdownRecipes"`
   158  	CustomUndeployRecipes  []string `pulumi:"customUndeployRecipes"`
   159  	// Whether to enable Elastic Load Balancing connection draining.
   160  	DrainElbOnShutdown *bool `pulumi:"drainElbOnShutdown"`
   161  	// `ebsVolume` blocks, as described below, will each create an EBS volume and connect it to the layer's instances.
   162  	EbsVolumes []PhpAppLayerEbsVolume `pulumi:"ebsVolumes"`
   163  	// Name of an Elastic Load Balancer to attach to this layer
   164  	ElasticLoadBalancer *string `pulumi:"elasticLoadBalancer"`
   165  	// Whether to install OS and package updates on each instance when it boots.
   166  	InstallUpdatesOnBoot *bool `pulumi:"installUpdatesOnBoot"`
   167  	// The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.
   168  	InstanceShutdownTimeout *int                             `pulumi:"instanceShutdownTimeout"`
   169  	LoadBasedAutoScaling    *PhpAppLayerLoadBasedAutoScaling `pulumi:"loadBasedAutoScaling"`
   170  	// A human-readable name for the layer.
   171  	Name *string `pulumi:"name"`
   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 PhpAppLayerState 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 PhpAppLayerCloudwatchConfigurationPtrInput
   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 PhpAppLayerEbsVolumeArrayInput
   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    PhpAppLayerLoadBasedAutoScalingPtrInput
   222  	// A human-readable name for the layer.
   223  	Name pulumi.StringPtrInput
   224  	// ID of the stack the layer will belong to.
   225  	StackId pulumi.StringPtrInput
   226  	// Names of a set of system packages to install on the layer's instances.
   227  	SystemPackages pulumi.StringArrayInput
   228  	// 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.
   229  	//
   230  	// The following extra optional arguments, all lists of Chef recipe names, allow
   231  	// custom Chef recipes to be applied to layer instances at the five different
   232  	// lifecycle events, if custom cookbooks are enabled on the layer's stack:
   233  	Tags pulumi.StringMapInput
   234  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   235  	//
   236  	// Deprecated: Please use `tags` instead.
   237  	TagsAll pulumi.StringMapInput
   238  	// Whether to use EBS-optimized instances.
   239  	UseEbsOptimizedInstances pulumi.BoolPtrInput
   240  }
   241  
   242  func (PhpAppLayerState) ElementType() reflect.Type {
   243  	return reflect.TypeOf((*phpAppLayerState)(nil)).Elem()
   244  }
   245  
   246  type phpAppLayerArgs struct {
   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 *PhpAppLayerCloudwatchConfiguration `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 []PhpAppLayerEbsVolume `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    *PhpAppLayerLoadBasedAutoScaling `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 PhpAppLayer resource.
   293  type PhpAppLayerArgs 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 PhpAppLayerCloudwatchConfigurationPtrInput
   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 PhpAppLayerEbsVolumeArrayInput
   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    PhpAppLayerLoadBasedAutoScalingPtrInput
   323  	// A human-readable name for the layer.
   324  	Name pulumi.StringPtrInput
   325  	// ID of the stack the layer will belong to.
   326  	StackId pulumi.StringInput
   327  	// Names of a set of system packages to install on the layer's instances.
   328  	SystemPackages pulumi.StringArrayInput
   329  	// 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.
   330  	//
   331  	// The following extra optional arguments, all lists of Chef recipe names, allow
   332  	// custom Chef recipes to be applied to layer instances at the five different
   333  	// lifecycle events, if custom cookbooks are enabled on the layer's stack:
   334  	Tags pulumi.StringMapInput
   335  	// Whether to use EBS-optimized instances.
   336  	UseEbsOptimizedInstances pulumi.BoolPtrInput
   337  }
   338  
   339  func (PhpAppLayerArgs) ElementType() reflect.Type {
   340  	return reflect.TypeOf((*phpAppLayerArgs)(nil)).Elem()
   341  }
   342  
   343  type PhpAppLayerInput interface {
   344  	pulumi.Input
   345  
   346  	ToPhpAppLayerOutput() PhpAppLayerOutput
   347  	ToPhpAppLayerOutputWithContext(ctx context.Context) PhpAppLayerOutput
   348  }
   349  
   350  func (*PhpAppLayer) ElementType() reflect.Type {
   351  	return reflect.TypeOf((**PhpAppLayer)(nil)).Elem()
   352  }
   353  
   354  func (i *PhpAppLayer) ToPhpAppLayerOutput() PhpAppLayerOutput {
   355  	return i.ToPhpAppLayerOutputWithContext(context.Background())
   356  }
   357  
   358  func (i *PhpAppLayer) ToPhpAppLayerOutputWithContext(ctx context.Context) PhpAppLayerOutput {
   359  	return pulumi.ToOutputWithContext(ctx, i).(PhpAppLayerOutput)
   360  }
   361  
   362  // PhpAppLayerArrayInput is an input type that accepts PhpAppLayerArray and PhpAppLayerArrayOutput values.
   363  // You can construct a concrete instance of `PhpAppLayerArrayInput` via:
   364  //
   365  //	PhpAppLayerArray{ PhpAppLayerArgs{...} }
   366  type PhpAppLayerArrayInput interface {
   367  	pulumi.Input
   368  
   369  	ToPhpAppLayerArrayOutput() PhpAppLayerArrayOutput
   370  	ToPhpAppLayerArrayOutputWithContext(context.Context) PhpAppLayerArrayOutput
   371  }
   372  
   373  type PhpAppLayerArray []PhpAppLayerInput
   374  
   375  func (PhpAppLayerArray) ElementType() reflect.Type {
   376  	return reflect.TypeOf((*[]*PhpAppLayer)(nil)).Elem()
   377  }
   378  
   379  func (i PhpAppLayerArray) ToPhpAppLayerArrayOutput() PhpAppLayerArrayOutput {
   380  	return i.ToPhpAppLayerArrayOutputWithContext(context.Background())
   381  }
   382  
   383  func (i PhpAppLayerArray) ToPhpAppLayerArrayOutputWithContext(ctx context.Context) PhpAppLayerArrayOutput {
   384  	return pulumi.ToOutputWithContext(ctx, i).(PhpAppLayerArrayOutput)
   385  }
   386  
   387  // PhpAppLayerMapInput is an input type that accepts PhpAppLayerMap and PhpAppLayerMapOutput values.
   388  // You can construct a concrete instance of `PhpAppLayerMapInput` via:
   389  //
   390  //	PhpAppLayerMap{ "key": PhpAppLayerArgs{...} }
   391  type PhpAppLayerMapInput interface {
   392  	pulumi.Input
   393  
   394  	ToPhpAppLayerMapOutput() PhpAppLayerMapOutput
   395  	ToPhpAppLayerMapOutputWithContext(context.Context) PhpAppLayerMapOutput
   396  }
   397  
   398  type PhpAppLayerMap map[string]PhpAppLayerInput
   399  
   400  func (PhpAppLayerMap) ElementType() reflect.Type {
   401  	return reflect.TypeOf((*map[string]*PhpAppLayer)(nil)).Elem()
   402  }
   403  
   404  func (i PhpAppLayerMap) ToPhpAppLayerMapOutput() PhpAppLayerMapOutput {
   405  	return i.ToPhpAppLayerMapOutputWithContext(context.Background())
   406  }
   407  
   408  func (i PhpAppLayerMap) ToPhpAppLayerMapOutputWithContext(ctx context.Context) PhpAppLayerMapOutput {
   409  	return pulumi.ToOutputWithContext(ctx, i).(PhpAppLayerMapOutput)
   410  }
   411  
   412  type PhpAppLayerOutput struct{ *pulumi.OutputState }
   413  
   414  func (PhpAppLayerOutput) ElementType() reflect.Type {
   415  	return reflect.TypeOf((**PhpAppLayer)(nil)).Elem()
   416  }
   417  
   418  func (o PhpAppLayerOutput) ToPhpAppLayerOutput() PhpAppLayerOutput {
   419  	return o
   420  }
   421  
   422  func (o PhpAppLayerOutput) ToPhpAppLayerOutputWithContext(ctx context.Context) PhpAppLayerOutput {
   423  	return o
   424  }
   425  
   426  // The Amazon Resource Name(ARN) of the layer.
   427  func (o PhpAppLayerOutput) Arn() pulumi.StringOutput {
   428  	return o.ApplyT(func(v *PhpAppLayer) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   429  }
   430  
   431  // Whether to automatically assign an elastic IP address to the layer's instances.
   432  func (o PhpAppLayerOutput) AutoAssignElasticIps() pulumi.BoolPtrOutput {
   433  	return o.ApplyT(func(v *PhpAppLayer) pulumi.BoolPtrOutput { return v.AutoAssignElasticIps }).(pulumi.BoolPtrOutput)
   434  }
   435  
   436  // For stacks belonging to a VPC, whether to automatically assign a public IP address to each of the layer's instances.
   437  func (o PhpAppLayerOutput) AutoAssignPublicIps() pulumi.BoolPtrOutput {
   438  	return o.ApplyT(func(v *PhpAppLayer) pulumi.BoolPtrOutput { return v.AutoAssignPublicIps }).(pulumi.BoolPtrOutput)
   439  }
   440  
   441  // Whether to enable auto-healing for the layer.
   442  func (o PhpAppLayerOutput) AutoHealing() pulumi.BoolPtrOutput {
   443  	return o.ApplyT(func(v *PhpAppLayer) pulumi.BoolPtrOutput { return v.AutoHealing }).(pulumi.BoolPtrOutput)
   444  }
   445  
   446  func (o PhpAppLayerOutput) CloudwatchConfiguration() PhpAppLayerCloudwatchConfigurationPtrOutput {
   447  	return o.ApplyT(func(v *PhpAppLayer) PhpAppLayerCloudwatchConfigurationPtrOutput { return v.CloudwatchConfiguration }).(PhpAppLayerCloudwatchConfigurationPtrOutput)
   448  }
   449  
   450  func (o PhpAppLayerOutput) CustomConfigureRecipes() pulumi.StringArrayOutput {
   451  	return o.ApplyT(func(v *PhpAppLayer) pulumi.StringArrayOutput { return v.CustomConfigureRecipes }).(pulumi.StringArrayOutput)
   452  }
   453  
   454  func (o PhpAppLayerOutput) CustomDeployRecipes() pulumi.StringArrayOutput {
   455  	return o.ApplyT(func(v *PhpAppLayer) pulumi.StringArrayOutput { return v.CustomDeployRecipes }).(pulumi.StringArrayOutput)
   456  }
   457  
   458  // The ARN of an IAM profile that will be used for the layer's instances.
   459  func (o PhpAppLayerOutput) CustomInstanceProfileArn() pulumi.StringPtrOutput {
   460  	return o.ApplyT(func(v *PhpAppLayer) pulumi.StringPtrOutput { return v.CustomInstanceProfileArn }).(pulumi.StringPtrOutput)
   461  }
   462  
   463  // Custom JSON attributes to apply to the layer.
   464  func (o PhpAppLayerOutput) CustomJson() pulumi.StringPtrOutput {
   465  	return o.ApplyT(func(v *PhpAppLayer) pulumi.StringPtrOutput { return v.CustomJson }).(pulumi.StringPtrOutput)
   466  }
   467  
   468  // Ids for a set of security groups to apply to the layer's instances.
   469  func (o PhpAppLayerOutput) CustomSecurityGroupIds() pulumi.StringArrayOutput {
   470  	return o.ApplyT(func(v *PhpAppLayer) pulumi.StringArrayOutput { return v.CustomSecurityGroupIds }).(pulumi.StringArrayOutput)
   471  }
   472  
   473  func (o PhpAppLayerOutput) CustomSetupRecipes() pulumi.StringArrayOutput {
   474  	return o.ApplyT(func(v *PhpAppLayer) pulumi.StringArrayOutput { return v.CustomSetupRecipes }).(pulumi.StringArrayOutput)
   475  }
   476  
   477  func (o PhpAppLayerOutput) CustomShutdownRecipes() pulumi.StringArrayOutput {
   478  	return o.ApplyT(func(v *PhpAppLayer) pulumi.StringArrayOutput { return v.CustomShutdownRecipes }).(pulumi.StringArrayOutput)
   479  }
   480  
   481  func (o PhpAppLayerOutput) CustomUndeployRecipes() pulumi.StringArrayOutput {
   482  	return o.ApplyT(func(v *PhpAppLayer) pulumi.StringArrayOutput { return v.CustomUndeployRecipes }).(pulumi.StringArrayOutput)
   483  }
   484  
   485  // Whether to enable Elastic Load Balancing connection draining.
   486  func (o PhpAppLayerOutput) DrainElbOnShutdown() pulumi.BoolPtrOutput {
   487  	return o.ApplyT(func(v *PhpAppLayer) pulumi.BoolPtrOutput { return v.DrainElbOnShutdown }).(pulumi.BoolPtrOutput)
   488  }
   489  
   490  // `ebsVolume` blocks, as described below, will each create an EBS volume and connect it to the layer's instances.
   491  func (o PhpAppLayerOutput) EbsVolumes() PhpAppLayerEbsVolumeArrayOutput {
   492  	return o.ApplyT(func(v *PhpAppLayer) PhpAppLayerEbsVolumeArrayOutput { return v.EbsVolumes }).(PhpAppLayerEbsVolumeArrayOutput)
   493  }
   494  
   495  // Name of an Elastic Load Balancer to attach to this layer
   496  func (o PhpAppLayerOutput) ElasticLoadBalancer() pulumi.StringPtrOutput {
   497  	return o.ApplyT(func(v *PhpAppLayer) pulumi.StringPtrOutput { return v.ElasticLoadBalancer }).(pulumi.StringPtrOutput)
   498  }
   499  
   500  // Whether to install OS and package updates on each instance when it boots.
   501  func (o PhpAppLayerOutput) InstallUpdatesOnBoot() pulumi.BoolPtrOutput {
   502  	return o.ApplyT(func(v *PhpAppLayer) pulumi.BoolPtrOutput { return v.InstallUpdatesOnBoot }).(pulumi.BoolPtrOutput)
   503  }
   504  
   505  // The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.
   506  func (o PhpAppLayerOutput) InstanceShutdownTimeout() pulumi.IntPtrOutput {
   507  	return o.ApplyT(func(v *PhpAppLayer) pulumi.IntPtrOutput { return v.InstanceShutdownTimeout }).(pulumi.IntPtrOutput)
   508  }
   509  
   510  func (o PhpAppLayerOutput) LoadBasedAutoScaling() PhpAppLayerLoadBasedAutoScalingOutput {
   511  	return o.ApplyT(func(v *PhpAppLayer) PhpAppLayerLoadBasedAutoScalingOutput { return v.LoadBasedAutoScaling }).(PhpAppLayerLoadBasedAutoScalingOutput)
   512  }
   513  
   514  // A human-readable name for the layer.
   515  func (o PhpAppLayerOutput) Name() pulumi.StringOutput {
   516  	return o.ApplyT(func(v *PhpAppLayer) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   517  }
   518  
   519  // ID of the stack the layer will belong to.
   520  func (o PhpAppLayerOutput) StackId() pulumi.StringOutput {
   521  	return o.ApplyT(func(v *PhpAppLayer) pulumi.StringOutput { return v.StackId }).(pulumi.StringOutput)
   522  }
   523  
   524  // Names of a set of system packages to install on the layer's instances.
   525  func (o PhpAppLayerOutput) SystemPackages() pulumi.StringArrayOutput {
   526  	return o.ApplyT(func(v *PhpAppLayer) pulumi.StringArrayOutput { return v.SystemPackages }).(pulumi.StringArrayOutput)
   527  }
   528  
   529  // 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.
   530  //
   531  // The following extra optional arguments, all lists of Chef recipe names, allow
   532  // custom Chef recipes to be applied to layer instances at the five different
   533  // lifecycle events, if custom cookbooks are enabled on the layer's stack:
   534  func (o PhpAppLayerOutput) Tags() pulumi.StringMapOutput {
   535  	return o.ApplyT(func(v *PhpAppLayer) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   536  }
   537  
   538  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   539  //
   540  // Deprecated: Please use `tags` instead.
   541  func (o PhpAppLayerOutput) TagsAll() pulumi.StringMapOutput {
   542  	return o.ApplyT(func(v *PhpAppLayer) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   543  }
   544  
   545  // Whether to use EBS-optimized instances.
   546  func (o PhpAppLayerOutput) UseEbsOptimizedInstances() pulumi.BoolPtrOutput {
   547  	return o.ApplyT(func(v *PhpAppLayer) pulumi.BoolPtrOutput { return v.UseEbsOptimizedInstances }).(pulumi.BoolPtrOutput)
   548  }
   549  
   550  type PhpAppLayerArrayOutput struct{ *pulumi.OutputState }
   551  
   552  func (PhpAppLayerArrayOutput) ElementType() reflect.Type {
   553  	return reflect.TypeOf((*[]*PhpAppLayer)(nil)).Elem()
   554  }
   555  
   556  func (o PhpAppLayerArrayOutput) ToPhpAppLayerArrayOutput() PhpAppLayerArrayOutput {
   557  	return o
   558  }
   559  
   560  func (o PhpAppLayerArrayOutput) ToPhpAppLayerArrayOutputWithContext(ctx context.Context) PhpAppLayerArrayOutput {
   561  	return o
   562  }
   563  
   564  func (o PhpAppLayerArrayOutput) Index(i pulumi.IntInput) PhpAppLayerOutput {
   565  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *PhpAppLayer {
   566  		return vs[0].([]*PhpAppLayer)[vs[1].(int)]
   567  	}).(PhpAppLayerOutput)
   568  }
   569  
   570  type PhpAppLayerMapOutput struct{ *pulumi.OutputState }
   571  
   572  func (PhpAppLayerMapOutput) ElementType() reflect.Type {
   573  	return reflect.TypeOf((*map[string]*PhpAppLayer)(nil)).Elem()
   574  }
   575  
   576  func (o PhpAppLayerMapOutput) ToPhpAppLayerMapOutput() PhpAppLayerMapOutput {
   577  	return o
   578  }
   579  
   580  func (o PhpAppLayerMapOutput) ToPhpAppLayerMapOutputWithContext(ctx context.Context) PhpAppLayerMapOutput {
   581  	return o
   582  }
   583  
   584  func (o PhpAppLayerMapOutput) MapIndex(k pulumi.StringInput) PhpAppLayerOutput {
   585  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *PhpAppLayer {
   586  		return vs[0].(map[string]*PhpAppLayer)[vs[1].(string)]
   587  	}).(PhpAppLayerOutput)
   588  }
   589  
   590  func init() {
   591  	pulumi.RegisterInputType(reflect.TypeOf((*PhpAppLayerInput)(nil)).Elem(), &PhpAppLayer{})
   592  	pulumi.RegisterInputType(reflect.TypeOf((*PhpAppLayerArrayInput)(nil)).Elem(), PhpAppLayerArray{})
   593  	pulumi.RegisterInputType(reflect.TypeOf((*PhpAppLayerMapInput)(nil)).Elem(), PhpAppLayerMap{})
   594  	pulumi.RegisterOutputType(PhpAppLayerOutput{})
   595  	pulumi.RegisterOutputType(PhpAppLayerArrayOutput{})
   596  	pulumi.RegisterOutputType(PhpAppLayerMapOutput{})
   597  }