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