github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/elasticbeanstalk/environment.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 elasticbeanstalk
     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 Elastic Beanstalk Environment Resource. Elastic Beanstalk allows
    16  // you to deploy and manage applications in the AWS cloud without worrying about
    17  // the infrastructure that runs those applications.
    18  //
    19  // Environments are often things such as `development`, `integration`, or
    20  // `production`.
    21  //
    22  // ## Example Usage
    23  //
    24  // <!--Start PulumiCodeChooser -->
    25  // ```go
    26  // package main
    27  //
    28  // import (
    29  //
    30  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticbeanstalk"
    31  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    32  //
    33  // )
    34  //
    35  //	func main() {
    36  //		pulumi.Run(func(ctx *pulumi.Context) error {
    37  //			tftest, err := elasticbeanstalk.NewApplication(ctx, "tftest", &elasticbeanstalk.ApplicationArgs{
    38  //				Name:        pulumi.String("tf-test-name"),
    39  //				Description: pulumi.String("tf-test-desc"),
    40  //			})
    41  //			if err != nil {
    42  //				return err
    43  //			}
    44  //			_, err = elasticbeanstalk.NewEnvironment(ctx, "tfenvtest", &elasticbeanstalk.EnvironmentArgs{
    45  //				Name:              pulumi.String("tf-test-name"),
    46  //				Application:       tftest.Name,
    47  //				SolutionStackName: pulumi.String("64bit Amazon Linux 2015.03 v2.0.3 running Go 1.4"),
    48  //			})
    49  //			if err != nil {
    50  //				return err
    51  //			}
    52  //			return nil
    53  //		})
    54  //	}
    55  //
    56  // ```
    57  // <!--End PulumiCodeChooser -->
    58  //
    59  // ## Option Settings
    60  //
    61  // Some options can be stack-specific, check [AWS Docs](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options-general.html)
    62  // for supported options and examples.
    63  //
    64  // The `setting` and `allSettings` mappings support the following format:
    65  //
    66  // * `namespace` - unique namespace identifying the option's associated AWS resource
    67  // * `name` - name of the configuration option
    68  // * `value` - value for the configuration option
    69  // * `resource` - (Optional) resource name for [scheduled action](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options-general.html#command-options-general-autoscalingscheduledaction)
    70  //
    71  // ### Example With Options
    72  //
    73  // <!--Start PulumiCodeChooser -->
    74  // ```go
    75  // package main
    76  //
    77  // import (
    78  //
    79  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticbeanstalk"
    80  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    81  //
    82  // )
    83  //
    84  //	func main() {
    85  //		pulumi.Run(func(ctx *pulumi.Context) error {
    86  //			tftest, err := elasticbeanstalk.NewApplication(ctx, "tftest", &elasticbeanstalk.ApplicationArgs{
    87  //				Name:        pulumi.String("tf-test-name"),
    88  //				Description: pulumi.String("tf-test-desc"),
    89  //			})
    90  //			if err != nil {
    91  //				return err
    92  //			}
    93  //			_, err = elasticbeanstalk.NewEnvironment(ctx, "tfenvtest", &elasticbeanstalk.EnvironmentArgs{
    94  //				Name:              pulumi.String("tf-test-name"),
    95  //				Application:       tftest.Name,
    96  //				SolutionStackName: pulumi.String("64bit Amazon Linux 2015.03 v2.0.3 running Go 1.4"),
    97  //				Settings: elasticbeanstalk.EnvironmentSettingArray{
    98  //					&elasticbeanstalk.EnvironmentSettingArgs{
    99  //						Namespace: pulumi.String("aws:ec2:vpc"),
   100  //						Name:      pulumi.String("VPCId"),
   101  //						Value:     pulumi.String("vpc-xxxxxxxx"),
   102  //					},
   103  //					&elasticbeanstalk.EnvironmentSettingArgs{
   104  //						Namespace: pulumi.String("aws:ec2:vpc"),
   105  //						Name:      pulumi.String("Subnets"),
   106  //						Value:     pulumi.String("subnet-xxxxxxxx"),
   107  //					},
   108  //				},
   109  //			})
   110  //			if err != nil {
   111  //				return err
   112  //			}
   113  //			return nil
   114  //		})
   115  //	}
   116  //
   117  // ```
   118  // <!--End PulumiCodeChooser -->
   119  //
   120  // ## Import
   121  //
   122  // Using `pulumi import`, import Elastic Beanstalk Environments using the `id`. For example:
   123  //
   124  // ```sh
   125  // $ pulumi import aws:elasticbeanstalk/environment:Environment prodenv e-rpqsewtp2j
   126  // ```
   127  type Environment struct {
   128  	pulumi.CustomResourceState
   129  
   130  	// List of all option settings configured in this Environment. These
   131  	// are a combination of default settings and their overrides from `setting` in
   132  	// the configuration.
   133  	AllSettings EnvironmentAllSettingArrayOutput `pulumi:"allSettings"`
   134  	// Name of the application that contains the version
   135  	// to be deployed
   136  	Application pulumi.StringOutput `pulumi:"application"`
   137  	Arn         pulumi.StringOutput `pulumi:"arn"`
   138  	// The autoscaling groups used by this Environment.
   139  	AutoscalingGroups pulumi.StringArrayOutput `pulumi:"autoscalingGroups"`
   140  	// Fully qualified DNS name for this Environment.
   141  	Cname pulumi.StringOutput `pulumi:"cname"`
   142  	// Prefix to use for the fully qualified DNS name of
   143  	// the Environment.
   144  	CnamePrefix pulumi.StringOutput `pulumi:"cnamePrefix"`
   145  	// Short description of the Environment
   146  	Description pulumi.StringPtrOutput `pulumi:"description"`
   147  	// The URL to the Load Balancer for this Environment
   148  	EndpointUrl pulumi.StringOutput `pulumi:"endpointUrl"`
   149  	// Instances used by this Environment.
   150  	Instances pulumi.StringArrayOutput `pulumi:"instances"`
   151  	// Launch configurations in use by this Environment.
   152  	LaunchConfigurations pulumi.StringArrayOutput `pulumi:"launchConfigurations"`
   153  	// Elastic load balancers in use by this Environment.
   154  	LoadBalancers pulumi.StringArrayOutput `pulumi:"loadBalancers"`
   155  	// A unique name for this Environment. This name is used
   156  	// in the application URL
   157  	Name pulumi.StringOutput `pulumi:"name"`
   158  	// The [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of the Elastic Beanstalk [Platform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-platformarn)
   159  	// to use in deployment
   160  	PlatformArn pulumi.StringOutput `pulumi:"platformArn"`
   161  	// The time between polling the AWS API to
   162  	// check if changes have been applied. Use this to adjust the rate of API calls
   163  	// for any `create` or `update` action. Minimum `10s`, maximum `180s`. Omit this to
   164  	// use the default behavior, which is an exponential backoff
   165  	PollInterval pulumi.StringPtrOutput `pulumi:"pollInterval"`
   166  	// SQS queues in use by this Environment.
   167  	Queues pulumi.StringArrayOutput `pulumi:"queues"`
   168  	// Option settings to configure the new Environment. These
   169  	// override specific values that are set as defaults. The format is detailed
   170  	// below in Option Settings
   171  	Settings EnvironmentSettingArrayOutput `pulumi:"settings"`
   172  	// A solution stack to base your environment
   173  	// off of. Example stacks can be found in the [Amazon API documentation](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html)
   174  	SolutionStackName pulumi.StringOutput `pulumi:"solutionStackName"`
   175  	// A set of tags to apply to the Environment. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   176  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   177  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   178  	//
   179  	// Deprecated: Please use `tags` instead.
   180  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   181  	// The name of the Elastic Beanstalk Configuration
   182  	// template to use in deployment
   183  	TemplateName pulumi.StringPtrOutput `pulumi:"templateName"`
   184  	// Elastic Beanstalk Environment tier. Valid values are `Worker`
   185  	// or `WebServer`. If tier is left blank `WebServer` will be used.
   186  	Tier pulumi.StringPtrOutput `pulumi:"tier"`
   187  	// Autoscaling triggers in use by this Environment.
   188  	Triggers pulumi.StringArrayOutput `pulumi:"triggers"`
   189  	// The name of the Elastic Beanstalk Application Version
   190  	// to use in deployment.
   191  	Version pulumi.StringOutput `pulumi:"version"`
   192  	// The maximum
   193  	// [duration](https://golang.org/pkg/time/#ParseDuration) that this provider should
   194  	// wait for an Elastic Beanstalk Environment to be in a ready state before timing
   195  	// out.
   196  	WaitForReadyTimeout pulumi.StringPtrOutput `pulumi:"waitForReadyTimeout"`
   197  }
   198  
   199  // NewEnvironment registers a new resource with the given unique name, arguments, and options.
   200  func NewEnvironment(ctx *pulumi.Context,
   201  	name string, args *EnvironmentArgs, opts ...pulumi.ResourceOption) (*Environment, error) {
   202  	if args == nil {
   203  		return nil, errors.New("missing one or more required arguments")
   204  	}
   205  
   206  	if args.Application == nil {
   207  		return nil, errors.New("invalid value for required argument 'Application'")
   208  	}
   209  	opts = internal.PkgResourceDefaultOpts(opts)
   210  	var resource Environment
   211  	err := ctx.RegisterResource("aws:elasticbeanstalk/environment:Environment", name, args, &resource, opts...)
   212  	if err != nil {
   213  		return nil, err
   214  	}
   215  	return &resource, nil
   216  }
   217  
   218  // GetEnvironment gets an existing Environment resource's state with the given name, ID, and optional
   219  // state properties that are used to uniquely qualify the lookup (nil if not required).
   220  func GetEnvironment(ctx *pulumi.Context,
   221  	name string, id pulumi.IDInput, state *EnvironmentState, opts ...pulumi.ResourceOption) (*Environment, error) {
   222  	var resource Environment
   223  	err := ctx.ReadResource("aws:elasticbeanstalk/environment:Environment", name, id, state, &resource, opts...)
   224  	if err != nil {
   225  		return nil, err
   226  	}
   227  	return &resource, nil
   228  }
   229  
   230  // Input properties used for looking up and filtering Environment resources.
   231  type environmentState struct {
   232  	// List of all option settings configured in this Environment. These
   233  	// are a combination of default settings and their overrides from `setting` in
   234  	// the configuration.
   235  	AllSettings []EnvironmentAllSetting `pulumi:"allSettings"`
   236  	// Name of the application that contains the version
   237  	// to be deployed
   238  	Application interface{} `pulumi:"application"`
   239  	Arn         *string     `pulumi:"arn"`
   240  	// The autoscaling groups used by this Environment.
   241  	AutoscalingGroups []string `pulumi:"autoscalingGroups"`
   242  	// Fully qualified DNS name for this Environment.
   243  	Cname *string `pulumi:"cname"`
   244  	// Prefix to use for the fully qualified DNS name of
   245  	// the Environment.
   246  	CnamePrefix *string `pulumi:"cnamePrefix"`
   247  	// Short description of the Environment
   248  	Description *string `pulumi:"description"`
   249  	// The URL to the Load Balancer for this Environment
   250  	EndpointUrl *string `pulumi:"endpointUrl"`
   251  	// Instances used by this Environment.
   252  	Instances []string `pulumi:"instances"`
   253  	// Launch configurations in use by this Environment.
   254  	LaunchConfigurations []string `pulumi:"launchConfigurations"`
   255  	// Elastic load balancers in use by this Environment.
   256  	LoadBalancers []string `pulumi:"loadBalancers"`
   257  	// A unique name for this Environment. This name is used
   258  	// in the application URL
   259  	Name *string `pulumi:"name"`
   260  	// The [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of the Elastic Beanstalk [Platform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-platformarn)
   261  	// to use in deployment
   262  	PlatformArn *string `pulumi:"platformArn"`
   263  	// The time between polling the AWS API to
   264  	// check if changes have been applied. Use this to adjust the rate of API calls
   265  	// for any `create` or `update` action. Minimum `10s`, maximum `180s`. Omit this to
   266  	// use the default behavior, which is an exponential backoff
   267  	PollInterval *string `pulumi:"pollInterval"`
   268  	// SQS queues in use by this Environment.
   269  	Queues []string `pulumi:"queues"`
   270  	// Option settings to configure the new Environment. These
   271  	// override specific values that are set as defaults. The format is detailed
   272  	// below in Option Settings
   273  	Settings []EnvironmentSetting `pulumi:"settings"`
   274  	// A solution stack to base your environment
   275  	// off of. Example stacks can be found in the [Amazon API documentation](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html)
   276  	SolutionStackName *string `pulumi:"solutionStackName"`
   277  	// A set of tags to apply to the Environment. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   278  	Tags map[string]string `pulumi:"tags"`
   279  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   280  	//
   281  	// Deprecated: Please use `tags` instead.
   282  	TagsAll map[string]string `pulumi:"tagsAll"`
   283  	// The name of the Elastic Beanstalk Configuration
   284  	// template to use in deployment
   285  	TemplateName *string `pulumi:"templateName"`
   286  	// Elastic Beanstalk Environment tier. Valid values are `Worker`
   287  	// or `WebServer`. If tier is left blank `WebServer` will be used.
   288  	Tier *string `pulumi:"tier"`
   289  	// Autoscaling triggers in use by this Environment.
   290  	Triggers []string `pulumi:"triggers"`
   291  	// The name of the Elastic Beanstalk Application Version
   292  	// to use in deployment.
   293  	Version *string `pulumi:"version"`
   294  	// The maximum
   295  	// [duration](https://golang.org/pkg/time/#ParseDuration) that this provider should
   296  	// wait for an Elastic Beanstalk Environment to be in a ready state before timing
   297  	// out.
   298  	WaitForReadyTimeout *string `pulumi:"waitForReadyTimeout"`
   299  }
   300  
   301  type EnvironmentState struct {
   302  	// List of all option settings configured in this Environment. These
   303  	// are a combination of default settings and their overrides from `setting` in
   304  	// the configuration.
   305  	AllSettings EnvironmentAllSettingArrayInput
   306  	// Name of the application that contains the version
   307  	// to be deployed
   308  	Application pulumi.Input
   309  	Arn         pulumi.StringPtrInput
   310  	// The autoscaling groups used by this Environment.
   311  	AutoscalingGroups pulumi.StringArrayInput
   312  	// Fully qualified DNS name for this Environment.
   313  	Cname pulumi.StringPtrInput
   314  	// Prefix to use for the fully qualified DNS name of
   315  	// the Environment.
   316  	CnamePrefix pulumi.StringPtrInput
   317  	// Short description of the Environment
   318  	Description pulumi.StringPtrInput
   319  	// The URL to the Load Balancer for this Environment
   320  	EndpointUrl pulumi.StringPtrInput
   321  	// Instances used by this Environment.
   322  	Instances pulumi.StringArrayInput
   323  	// Launch configurations in use by this Environment.
   324  	LaunchConfigurations pulumi.StringArrayInput
   325  	// Elastic load balancers in use by this Environment.
   326  	LoadBalancers pulumi.StringArrayInput
   327  	// A unique name for this Environment. This name is used
   328  	// in the application URL
   329  	Name pulumi.StringPtrInput
   330  	// The [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of the Elastic Beanstalk [Platform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-platformarn)
   331  	// to use in deployment
   332  	PlatformArn pulumi.StringPtrInput
   333  	// The time between polling the AWS API to
   334  	// check if changes have been applied. Use this to adjust the rate of API calls
   335  	// for any `create` or `update` action. Minimum `10s`, maximum `180s`. Omit this to
   336  	// use the default behavior, which is an exponential backoff
   337  	PollInterval pulumi.StringPtrInput
   338  	// SQS queues in use by this Environment.
   339  	Queues pulumi.StringArrayInput
   340  	// Option settings to configure the new Environment. These
   341  	// override specific values that are set as defaults. The format is detailed
   342  	// below in Option Settings
   343  	Settings EnvironmentSettingArrayInput
   344  	// A solution stack to base your environment
   345  	// off of. Example stacks can be found in the [Amazon API documentation](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html)
   346  	SolutionStackName pulumi.StringPtrInput
   347  	// A set of tags to apply to the Environment. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   348  	Tags pulumi.StringMapInput
   349  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   350  	//
   351  	// Deprecated: Please use `tags` instead.
   352  	TagsAll pulumi.StringMapInput
   353  	// The name of the Elastic Beanstalk Configuration
   354  	// template to use in deployment
   355  	TemplateName pulumi.StringPtrInput
   356  	// Elastic Beanstalk Environment tier. Valid values are `Worker`
   357  	// or `WebServer`. If tier is left blank `WebServer` will be used.
   358  	Tier pulumi.StringPtrInput
   359  	// Autoscaling triggers in use by this Environment.
   360  	Triggers pulumi.StringArrayInput
   361  	// The name of the Elastic Beanstalk Application Version
   362  	// to use in deployment.
   363  	Version pulumi.StringPtrInput
   364  	// The maximum
   365  	// [duration](https://golang.org/pkg/time/#ParseDuration) that this provider should
   366  	// wait for an Elastic Beanstalk Environment to be in a ready state before timing
   367  	// out.
   368  	WaitForReadyTimeout pulumi.StringPtrInput
   369  }
   370  
   371  func (EnvironmentState) ElementType() reflect.Type {
   372  	return reflect.TypeOf((*environmentState)(nil)).Elem()
   373  }
   374  
   375  type environmentArgs struct {
   376  	// Name of the application that contains the version
   377  	// to be deployed
   378  	Application interface{} `pulumi:"application"`
   379  	// Prefix to use for the fully qualified DNS name of
   380  	// the Environment.
   381  	CnamePrefix *string `pulumi:"cnamePrefix"`
   382  	// Short description of the Environment
   383  	Description *string `pulumi:"description"`
   384  	// A unique name for this Environment. This name is used
   385  	// in the application URL
   386  	Name *string `pulumi:"name"`
   387  	// The [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of the Elastic Beanstalk [Platform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-platformarn)
   388  	// to use in deployment
   389  	PlatformArn *string `pulumi:"platformArn"`
   390  	// The time between polling the AWS API to
   391  	// check if changes have been applied. Use this to adjust the rate of API calls
   392  	// for any `create` or `update` action. Minimum `10s`, maximum `180s`. Omit this to
   393  	// use the default behavior, which is an exponential backoff
   394  	PollInterval *string `pulumi:"pollInterval"`
   395  	// Option settings to configure the new Environment. These
   396  	// override specific values that are set as defaults. The format is detailed
   397  	// below in Option Settings
   398  	Settings []EnvironmentSetting `pulumi:"settings"`
   399  	// A solution stack to base your environment
   400  	// off of. Example stacks can be found in the [Amazon API documentation](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html)
   401  	SolutionStackName *string `pulumi:"solutionStackName"`
   402  	// A set of tags to apply to the Environment. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   403  	Tags map[string]string `pulumi:"tags"`
   404  	// The name of the Elastic Beanstalk Configuration
   405  	// template to use in deployment
   406  	TemplateName *string `pulumi:"templateName"`
   407  	// Elastic Beanstalk Environment tier. Valid values are `Worker`
   408  	// or `WebServer`. If tier is left blank `WebServer` will be used.
   409  	Tier *string `pulumi:"tier"`
   410  	// The name of the Elastic Beanstalk Application Version
   411  	// to use in deployment.
   412  	Version *string `pulumi:"version"`
   413  	// The maximum
   414  	// [duration](https://golang.org/pkg/time/#ParseDuration) that this provider should
   415  	// wait for an Elastic Beanstalk Environment to be in a ready state before timing
   416  	// out.
   417  	WaitForReadyTimeout *string `pulumi:"waitForReadyTimeout"`
   418  }
   419  
   420  // The set of arguments for constructing a Environment resource.
   421  type EnvironmentArgs struct {
   422  	// Name of the application that contains the version
   423  	// to be deployed
   424  	Application pulumi.Input
   425  	// Prefix to use for the fully qualified DNS name of
   426  	// the Environment.
   427  	CnamePrefix pulumi.StringPtrInput
   428  	// Short description of the Environment
   429  	Description pulumi.StringPtrInput
   430  	// A unique name for this Environment. This name is used
   431  	// in the application URL
   432  	Name pulumi.StringPtrInput
   433  	// The [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of the Elastic Beanstalk [Platform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-platformarn)
   434  	// to use in deployment
   435  	PlatformArn pulumi.StringPtrInput
   436  	// The time between polling the AWS API to
   437  	// check if changes have been applied. Use this to adjust the rate of API calls
   438  	// for any `create` or `update` action. Minimum `10s`, maximum `180s`. Omit this to
   439  	// use the default behavior, which is an exponential backoff
   440  	PollInterval pulumi.StringPtrInput
   441  	// Option settings to configure the new Environment. These
   442  	// override specific values that are set as defaults. The format is detailed
   443  	// below in Option Settings
   444  	Settings EnvironmentSettingArrayInput
   445  	// A solution stack to base your environment
   446  	// off of. Example stacks can be found in the [Amazon API documentation](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html)
   447  	SolutionStackName pulumi.StringPtrInput
   448  	// A set of tags to apply to the Environment. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   449  	Tags pulumi.StringMapInput
   450  	// The name of the Elastic Beanstalk Configuration
   451  	// template to use in deployment
   452  	TemplateName pulumi.StringPtrInput
   453  	// Elastic Beanstalk Environment tier. Valid values are `Worker`
   454  	// or `WebServer`. If tier is left blank `WebServer` will be used.
   455  	Tier pulumi.StringPtrInput
   456  	// The name of the Elastic Beanstalk Application Version
   457  	// to use in deployment.
   458  	Version pulumi.StringPtrInput
   459  	// The maximum
   460  	// [duration](https://golang.org/pkg/time/#ParseDuration) that this provider should
   461  	// wait for an Elastic Beanstalk Environment to be in a ready state before timing
   462  	// out.
   463  	WaitForReadyTimeout pulumi.StringPtrInput
   464  }
   465  
   466  func (EnvironmentArgs) ElementType() reflect.Type {
   467  	return reflect.TypeOf((*environmentArgs)(nil)).Elem()
   468  }
   469  
   470  type EnvironmentInput interface {
   471  	pulumi.Input
   472  
   473  	ToEnvironmentOutput() EnvironmentOutput
   474  	ToEnvironmentOutputWithContext(ctx context.Context) EnvironmentOutput
   475  }
   476  
   477  func (*Environment) ElementType() reflect.Type {
   478  	return reflect.TypeOf((**Environment)(nil)).Elem()
   479  }
   480  
   481  func (i *Environment) ToEnvironmentOutput() EnvironmentOutput {
   482  	return i.ToEnvironmentOutputWithContext(context.Background())
   483  }
   484  
   485  func (i *Environment) ToEnvironmentOutputWithContext(ctx context.Context) EnvironmentOutput {
   486  	return pulumi.ToOutputWithContext(ctx, i).(EnvironmentOutput)
   487  }
   488  
   489  // EnvironmentArrayInput is an input type that accepts EnvironmentArray and EnvironmentArrayOutput values.
   490  // You can construct a concrete instance of `EnvironmentArrayInput` via:
   491  //
   492  //	EnvironmentArray{ EnvironmentArgs{...} }
   493  type EnvironmentArrayInput interface {
   494  	pulumi.Input
   495  
   496  	ToEnvironmentArrayOutput() EnvironmentArrayOutput
   497  	ToEnvironmentArrayOutputWithContext(context.Context) EnvironmentArrayOutput
   498  }
   499  
   500  type EnvironmentArray []EnvironmentInput
   501  
   502  func (EnvironmentArray) ElementType() reflect.Type {
   503  	return reflect.TypeOf((*[]*Environment)(nil)).Elem()
   504  }
   505  
   506  func (i EnvironmentArray) ToEnvironmentArrayOutput() EnvironmentArrayOutput {
   507  	return i.ToEnvironmentArrayOutputWithContext(context.Background())
   508  }
   509  
   510  func (i EnvironmentArray) ToEnvironmentArrayOutputWithContext(ctx context.Context) EnvironmentArrayOutput {
   511  	return pulumi.ToOutputWithContext(ctx, i).(EnvironmentArrayOutput)
   512  }
   513  
   514  // EnvironmentMapInput is an input type that accepts EnvironmentMap and EnvironmentMapOutput values.
   515  // You can construct a concrete instance of `EnvironmentMapInput` via:
   516  //
   517  //	EnvironmentMap{ "key": EnvironmentArgs{...} }
   518  type EnvironmentMapInput interface {
   519  	pulumi.Input
   520  
   521  	ToEnvironmentMapOutput() EnvironmentMapOutput
   522  	ToEnvironmentMapOutputWithContext(context.Context) EnvironmentMapOutput
   523  }
   524  
   525  type EnvironmentMap map[string]EnvironmentInput
   526  
   527  func (EnvironmentMap) ElementType() reflect.Type {
   528  	return reflect.TypeOf((*map[string]*Environment)(nil)).Elem()
   529  }
   530  
   531  func (i EnvironmentMap) ToEnvironmentMapOutput() EnvironmentMapOutput {
   532  	return i.ToEnvironmentMapOutputWithContext(context.Background())
   533  }
   534  
   535  func (i EnvironmentMap) ToEnvironmentMapOutputWithContext(ctx context.Context) EnvironmentMapOutput {
   536  	return pulumi.ToOutputWithContext(ctx, i).(EnvironmentMapOutput)
   537  }
   538  
   539  type EnvironmentOutput struct{ *pulumi.OutputState }
   540  
   541  func (EnvironmentOutput) ElementType() reflect.Type {
   542  	return reflect.TypeOf((**Environment)(nil)).Elem()
   543  }
   544  
   545  func (o EnvironmentOutput) ToEnvironmentOutput() EnvironmentOutput {
   546  	return o
   547  }
   548  
   549  func (o EnvironmentOutput) ToEnvironmentOutputWithContext(ctx context.Context) EnvironmentOutput {
   550  	return o
   551  }
   552  
   553  // List of all option settings configured in this Environment. These
   554  // are a combination of default settings and their overrides from `setting` in
   555  // the configuration.
   556  func (o EnvironmentOutput) AllSettings() EnvironmentAllSettingArrayOutput {
   557  	return o.ApplyT(func(v *Environment) EnvironmentAllSettingArrayOutput { return v.AllSettings }).(EnvironmentAllSettingArrayOutput)
   558  }
   559  
   560  // Name of the application that contains the version
   561  // to be deployed
   562  func (o EnvironmentOutput) Application() pulumi.StringOutput {
   563  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.Application }).(pulumi.StringOutput)
   564  }
   565  
   566  func (o EnvironmentOutput) Arn() pulumi.StringOutput {
   567  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   568  }
   569  
   570  // The autoscaling groups used by this Environment.
   571  func (o EnvironmentOutput) AutoscalingGroups() pulumi.StringArrayOutput {
   572  	return o.ApplyT(func(v *Environment) pulumi.StringArrayOutput { return v.AutoscalingGroups }).(pulumi.StringArrayOutput)
   573  }
   574  
   575  // Fully qualified DNS name for this Environment.
   576  func (o EnvironmentOutput) Cname() pulumi.StringOutput {
   577  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.Cname }).(pulumi.StringOutput)
   578  }
   579  
   580  // Prefix to use for the fully qualified DNS name of
   581  // the Environment.
   582  func (o EnvironmentOutput) CnamePrefix() pulumi.StringOutput {
   583  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.CnamePrefix }).(pulumi.StringOutput)
   584  }
   585  
   586  // Short description of the Environment
   587  func (o EnvironmentOutput) Description() pulumi.StringPtrOutput {
   588  	return o.ApplyT(func(v *Environment) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
   589  }
   590  
   591  // The URL to the Load Balancer for this Environment
   592  func (o EnvironmentOutput) EndpointUrl() pulumi.StringOutput {
   593  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.EndpointUrl }).(pulumi.StringOutput)
   594  }
   595  
   596  // Instances used by this Environment.
   597  func (o EnvironmentOutput) Instances() pulumi.StringArrayOutput {
   598  	return o.ApplyT(func(v *Environment) pulumi.StringArrayOutput { return v.Instances }).(pulumi.StringArrayOutput)
   599  }
   600  
   601  // Launch configurations in use by this Environment.
   602  func (o EnvironmentOutput) LaunchConfigurations() pulumi.StringArrayOutput {
   603  	return o.ApplyT(func(v *Environment) pulumi.StringArrayOutput { return v.LaunchConfigurations }).(pulumi.StringArrayOutput)
   604  }
   605  
   606  // Elastic load balancers in use by this Environment.
   607  func (o EnvironmentOutput) LoadBalancers() pulumi.StringArrayOutput {
   608  	return o.ApplyT(func(v *Environment) pulumi.StringArrayOutput { return v.LoadBalancers }).(pulumi.StringArrayOutput)
   609  }
   610  
   611  // A unique name for this Environment. This name is used
   612  // in the application URL
   613  func (o EnvironmentOutput) Name() pulumi.StringOutput {
   614  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   615  }
   616  
   617  // The [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of the Elastic Beanstalk [Platform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-platformarn)
   618  // to use in deployment
   619  func (o EnvironmentOutput) PlatformArn() pulumi.StringOutput {
   620  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.PlatformArn }).(pulumi.StringOutput)
   621  }
   622  
   623  // The time between polling the AWS API to
   624  // check if changes have been applied. Use this to adjust the rate of API calls
   625  // for any `create` or `update` action. Minimum `10s`, maximum `180s`. Omit this to
   626  // use the default behavior, which is an exponential backoff
   627  func (o EnvironmentOutput) PollInterval() pulumi.StringPtrOutput {
   628  	return o.ApplyT(func(v *Environment) pulumi.StringPtrOutput { return v.PollInterval }).(pulumi.StringPtrOutput)
   629  }
   630  
   631  // SQS queues in use by this Environment.
   632  func (o EnvironmentOutput) Queues() pulumi.StringArrayOutput {
   633  	return o.ApplyT(func(v *Environment) pulumi.StringArrayOutput { return v.Queues }).(pulumi.StringArrayOutput)
   634  }
   635  
   636  // Option settings to configure the new Environment. These
   637  // override specific values that are set as defaults. The format is detailed
   638  // below in Option Settings
   639  func (o EnvironmentOutput) Settings() EnvironmentSettingArrayOutput {
   640  	return o.ApplyT(func(v *Environment) EnvironmentSettingArrayOutput { return v.Settings }).(EnvironmentSettingArrayOutput)
   641  }
   642  
   643  // A solution stack to base your environment
   644  // off of. Example stacks can be found in the [Amazon API documentation](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html)
   645  func (o EnvironmentOutput) SolutionStackName() pulumi.StringOutput {
   646  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.SolutionStackName }).(pulumi.StringOutput)
   647  }
   648  
   649  // A set of tags to apply to the Environment. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   650  func (o EnvironmentOutput) Tags() pulumi.StringMapOutput {
   651  	return o.ApplyT(func(v *Environment) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   652  }
   653  
   654  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   655  //
   656  // Deprecated: Please use `tags` instead.
   657  func (o EnvironmentOutput) TagsAll() pulumi.StringMapOutput {
   658  	return o.ApplyT(func(v *Environment) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   659  }
   660  
   661  // The name of the Elastic Beanstalk Configuration
   662  // template to use in deployment
   663  func (o EnvironmentOutput) TemplateName() pulumi.StringPtrOutput {
   664  	return o.ApplyT(func(v *Environment) pulumi.StringPtrOutput { return v.TemplateName }).(pulumi.StringPtrOutput)
   665  }
   666  
   667  // Elastic Beanstalk Environment tier. Valid values are `Worker`
   668  // or `WebServer`. If tier is left blank `WebServer` will be used.
   669  func (o EnvironmentOutput) Tier() pulumi.StringPtrOutput {
   670  	return o.ApplyT(func(v *Environment) pulumi.StringPtrOutput { return v.Tier }).(pulumi.StringPtrOutput)
   671  }
   672  
   673  // Autoscaling triggers in use by this Environment.
   674  func (o EnvironmentOutput) Triggers() pulumi.StringArrayOutput {
   675  	return o.ApplyT(func(v *Environment) pulumi.StringArrayOutput { return v.Triggers }).(pulumi.StringArrayOutput)
   676  }
   677  
   678  // The name of the Elastic Beanstalk Application Version
   679  // to use in deployment.
   680  func (o EnvironmentOutput) Version() pulumi.StringOutput {
   681  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.Version }).(pulumi.StringOutput)
   682  }
   683  
   684  // The maximum
   685  // [duration](https://golang.org/pkg/time/#ParseDuration) that this provider should
   686  // wait for an Elastic Beanstalk Environment to be in a ready state before timing
   687  // out.
   688  func (o EnvironmentOutput) WaitForReadyTimeout() pulumi.StringPtrOutput {
   689  	return o.ApplyT(func(v *Environment) pulumi.StringPtrOutput { return v.WaitForReadyTimeout }).(pulumi.StringPtrOutput)
   690  }
   691  
   692  type EnvironmentArrayOutput struct{ *pulumi.OutputState }
   693  
   694  func (EnvironmentArrayOutput) ElementType() reflect.Type {
   695  	return reflect.TypeOf((*[]*Environment)(nil)).Elem()
   696  }
   697  
   698  func (o EnvironmentArrayOutput) ToEnvironmentArrayOutput() EnvironmentArrayOutput {
   699  	return o
   700  }
   701  
   702  func (o EnvironmentArrayOutput) ToEnvironmentArrayOutputWithContext(ctx context.Context) EnvironmentArrayOutput {
   703  	return o
   704  }
   705  
   706  func (o EnvironmentArrayOutput) Index(i pulumi.IntInput) EnvironmentOutput {
   707  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Environment {
   708  		return vs[0].([]*Environment)[vs[1].(int)]
   709  	}).(EnvironmentOutput)
   710  }
   711  
   712  type EnvironmentMapOutput struct{ *pulumi.OutputState }
   713  
   714  func (EnvironmentMapOutput) ElementType() reflect.Type {
   715  	return reflect.TypeOf((*map[string]*Environment)(nil)).Elem()
   716  }
   717  
   718  func (o EnvironmentMapOutput) ToEnvironmentMapOutput() EnvironmentMapOutput {
   719  	return o
   720  }
   721  
   722  func (o EnvironmentMapOutput) ToEnvironmentMapOutputWithContext(ctx context.Context) EnvironmentMapOutput {
   723  	return o
   724  }
   725  
   726  func (o EnvironmentMapOutput) MapIndex(k pulumi.StringInput) EnvironmentOutput {
   727  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Environment {
   728  		return vs[0].(map[string]*Environment)[vs[1].(string)]
   729  	}).(EnvironmentOutput)
   730  }
   731  
   732  func init() {
   733  	pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentInput)(nil)).Elem(), &Environment{})
   734  	pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentArrayInput)(nil)).Elem(), EnvironmentArray{})
   735  	pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentMapInput)(nil)).Elem(), EnvironmentMap{})
   736  	pulumi.RegisterOutputType(EnvironmentOutput{})
   737  	pulumi.RegisterOutputType(EnvironmentArrayOutput{})
   738  	pulumi.RegisterOutputType(EnvironmentMapOutput{})
   739  }