github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/mwaa/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 mwaa
     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  // Creates a MWAA Environment resource.
    16  //
    17  // ## Example Usage
    18  //
    19  // A MWAA Environment requires an IAM role (`iam.Role`), two subnets in the private zone (`ec2.Subnet`) and a versioned S3 bucket (`s3.BucketV2`).
    20  //
    21  // ### Basic Usage
    22  //
    23  // <!--Start PulumiCodeChooser -->
    24  // ```go
    25  // package main
    26  //
    27  // import (
    28  //
    29  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/mwaa"
    30  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    31  //
    32  // )
    33  // func main() {
    34  // pulumi.Run(func(ctx *pulumi.Context) error {
    35  // _, err := mwaa.NewEnvironment(ctx, "example", &mwaa.EnvironmentArgs{
    36  // DagS3Path: pulumi.String("dags/"),
    37  // ExecutionRoleArn: pulumi.Any(exampleAwsIamRole.Arn),
    38  // Name: pulumi.String("example"),
    39  // NetworkConfiguration: &mwaa.EnvironmentNetworkConfigurationArgs{
    40  // SecurityGroupIds: pulumi.StringArray{
    41  // exampleAwsSecurityGroup.Id,
    42  // },
    43  // SubnetIds: %!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:6,24-37),
    44  // },
    45  // SourceBucketArn: pulumi.Any(exampleAwsS3Bucket.Arn),
    46  // })
    47  // if err != nil {
    48  // return err
    49  // }
    50  // return nil
    51  // })
    52  // }
    53  // ```
    54  // <!--End PulumiCodeChooser -->
    55  //
    56  // ### Example with Airflow configuration options
    57  //
    58  // <!--Start PulumiCodeChooser -->
    59  // ```go
    60  // package main
    61  //
    62  // import (
    63  //
    64  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/mwaa"
    65  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    66  //
    67  // )
    68  // func main() {
    69  // pulumi.Run(func(ctx *pulumi.Context) error {
    70  // _, err := mwaa.NewEnvironment(ctx, "example", &mwaa.EnvironmentArgs{
    71  // AirflowConfigurationOptions: pulumi.StringMap{
    72  // "core.default_task_retries": pulumi.String("16"),
    73  // "core.parallelism": pulumi.String("1"),
    74  // },
    75  // DagS3Path: pulumi.String("dags/"),
    76  // ExecutionRoleArn: pulumi.Any(exampleAwsIamRole.Arn),
    77  // Name: pulumi.String("example"),
    78  // NetworkConfiguration: &mwaa.EnvironmentNetworkConfigurationArgs{
    79  // SecurityGroupIds: pulumi.StringArray{
    80  // exampleAwsSecurityGroup.Id,
    81  // },
    82  // SubnetIds: %!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:10,24-37),
    83  // },
    84  // SourceBucketArn: pulumi.Any(exampleAwsS3Bucket.Arn),
    85  // })
    86  // if err != nil {
    87  // return err
    88  // }
    89  // return nil
    90  // })
    91  // }
    92  // ```
    93  // <!--End PulumiCodeChooser -->
    94  //
    95  // ### Example with logging configurations
    96  //
    97  // Note that Airflow task logs are enabled by default with the `INFO` log level.
    98  //
    99  // <!--Start PulumiCodeChooser -->
   100  // ```go
   101  // package main
   102  //
   103  // import (
   104  //
   105  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/mwaa"
   106  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   107  //
   108  // )
   109  // func main() {
   110  // pulumi.Run(func(ctx *pulumi.Context) error {
   111  // _, err := mwaa.NewEnvironment(ctx, "example", &mwaa.EnvironmentArgs{
   112  // DagS3Path: pulumi.String("dags/"),
   113  // ExecutionRoleArn: pulumi.Any(exampleAwsIamRole.Arn),
   114  // LoggingConfiguration: &mwaa.EnvironmentLoggingConfigurationArgs{
   115  // DagProcessingLogs: &mwaa.EnvironmentLoggingConfigurationDagProcessingLogsArgs{
   116  // Enabled: pulumi.Bool(true),
   117  // LogLevel: pulumi.String("DEBUG"),
   118  // },
   119  // SchedulerLogs: &mwaa.EnvironmentLoggingConfigurationSchedulerLogsArgs{
   120  // Enabled: pulumi.Bool(true),
   121  // LogLevel: pulumi.String("INFO"),
   122  // },
   123  // TaskLogs: &mwaa.EnvironmentLoggingConfigurationTaskLogsArgs{
   124  // Enabled: pulumi.Bool(true),
   125  // LogLevel: pulumi.String("WARNING"),
   126  // },
   127  // WebserverLogs: &mwaa.EnvironmentLoggingConfigurationWebserverLogsArgs{
   128  // Enabled: pulumi.Bool(true),
   129  // LogLevel: pulumi.String("ERROR"),
   130  // },
   131  // WorkerLogs: &mwaa.EnvironmentLoggingConfigurationWorkerLogsArgs{
   132  // Enabled: pulumi.Bool(true),
   133  // LogLevel: pulumi.String("CRITICAL"),
   134  // },
   135  // },
   136  // Name: pulumi.String("example"),
   137  // NetworkConfiguration: &mwaa.EnvironmentNetworkConfigurationArgs{
   138  // SecurityGroupIds: pulumi.StringArray{
   139  // exampleAwsSecurityGroup.Id,
   140  // },
   141  // SubnetIds: %!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:28,24-37),
   142  // },
   143  // SourceBucketArn: pulumi.Any(exampleAwsS3Bucket.Arn),
   144  // })
   145  // if err != nil {
   146  // return err
   147  // }
   148  // return nil
   149  // })
   150  // }
   151  // ```
   152  // <!--End PulumiCodeChooser -->
   153  //
   154  // ### Example with tags
   155  //
   156  // <!--Start PulumiCodeChooser -->
   157  // ```go
   158  // package main
   159  //
   160  // import (
   161  //
   162  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/mwaa"
   163  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   164  //
   165  // )
   166  // func main() {
   167  // pulumi.Run(func(ctx *pulumi.Context) error {
   168  // _, err := mwaa.NewEnvironment(ctx, "example", &mwaa.EnvironmentArgs{
   169  // DagS3Path: pulumi.String("dags/"),
   170  // ExecutionRoleArn: pulumi.Any(exampleAwsIamRole.Arn),
   171  // Name: pulumi.String("example"),
   172  // NetworkConfiguration: &mwaa.EnvironmentNetworkConfigurationArgs{
   173  // SecurityGroupIds: pulumi.StringArray{
   174  // exampleAwsSecurityGroup.Id,
   175  // },
   176  // SubnetIds: %!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:6,24-37),
   177  // },
   178  // SourceBucketArn: pulumi.Any(exampleAwsS3Bucket.Arn),
   179  // Tags: pulumi.StringMap{
   180  // "Name": pulumi.String("example"),
   181  // "Environment": pulumi.String("production"),
   182  // },
   183  // })
   184  // if err != nil {
   185  // return err
   186  // }
   187  // return nil
   188  // })
   189  // }
   190  // ```
   191  // <!--End PulumiCodeChooser -->
   192  //
   193  // ## Import
   194  //
   195  // Using `pulumi import`, import MWAA Environment using `Name`. For example:
   196  //
   197  // ```sh
   198  // $ pulumi import aws:mwaa/environment:Environment example MyAirflowEnvironment
   199  // ```
   200  type Environment struct {
   201  	pulumi.CustomResourceState
   202  
   203  	// The `airflowConfigurationOptions` parameter specifies airflow override options. Check the [Official documentation](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-env-variables.html#configuring-env-variables-reference) for all possible configuration options.
   204  	AirflowConfigurationOptions pulumi.StringMapOutput `pulumi:"airflowConfigurationOptions"`
   205  	// Airflow version of your environment, will be set by default to the latest version that MWAA supports.
   206  	AirflowVersion pulumi.StringOutput `pulumi:"airflowVersion"`
   207  	// The ARN of the MWAA Environment
   208  	Arn pulumi.StringOutput `pulumi:"arn"`
   209  	// The Created At date of the MWAA Environment
   210  	CreatedAt pulumi.StringOutput `pulumi:"createdAt"`
   211  	// The relative path to the DAG folder on your Amazon S3 storage bucket. For example, dags. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
   212  	DagS3Path pulumi.StringOutput `pulumi:"dagS3Path"`
   213  	// The VPC endpoint for the environment's Amazon RDS database
   214  	// * `logging_configuration[0].<LOG_CONFIGURATION_TYPE>[0].cloud_watch_log_group_arn` - Provides the ARN for the CloudWatch group where the logs will be published
   215  	DatabaseVpcEndpointService pulumi.StringOutput `pulumi:"databaseVpcEndpointService"`
   216  	EndpointManagement         pulumi.StringOutput `pulumi:"endpointManagement"`
   217  	// Environment class for the cluster. Possible options are `mw1.small`, `mw1.medium`, `mw1.large`. Will be set by default to `mw1.small`. Please check the [AWS Pricing](https://aws.amazon.com/de/managed-workflows-for-apache-airflow/pricing/) for more information about the environment classes.
   218  	EnvironmentClass pulumi.StringOutput `pulumi:"environmentClass"`
   219  	// The Amazon Resource Name (ARN) of the task execution role that the Amazon MWAA and its environment can assume. Check the [official AWS documentation](https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-create-role.html) for the detailed role specification.
   220  	ExecutionRoleArn pulumi.StringOutput `pulumi:"executionRoleArn"`
   221  	// The Amazon Resource Name (ARN) of your KMS key that you want to use for encryption. Will be set to the ARN of the managed KMS key `aws/airflow` by default. Please check the [Official Documentation](https://docs.aws.amazon.com/mwaa/latest/userguide/custom-keys-certs.html) for more information.
   222  	KmsKey       pulumi.StringPtrOutput            `pulumi:"kmsKey"`
   223  	LastUpdateds EnvironmentLastUpdatedArrayOutput `pulumi:"lastUpdateds"`
   224  	// The Apache Airflow logs you want to send to Amazon CloudWatch Logs.
   225  	LoggingConfiguration EnvironmentLoggingConfigurationOutput `pulumi:"loggingConfiguration"`
   226  	// The maximum number of workers that can be automatically scaled up. Value need to be between `1` and `25`. Will be `10` by default.
   227  	MaxWorkers pulumi.IntOutput `pulumi:"maxWorkers"`
   228  	// The minimum number of workers that you want to run in your environment. Will be `1` by default.
   229  	MinWorkers pulumi.IntOutput `pulumi:"minWorkers"`
   230  	// The name of the Apache Airflow Environment
   231  	Name pulumi.StringOutput `pulumi:"name"`
   232  	// Specifies the network configuration for your Apache Airflow Environment. This includes two private subnets as well as security groups for the Airflow environment. Each subnet requires internet connection, otherwise the deployment will fail. See Network configuration below for details.
   233  	NetworkConfiguration EnvironmentNetworkConfigurationOutput `pulumi:"networkConfiguration"`
   234  	// The plugins.zip file version you want to use.
   235  	PluginsS3ObjectVersion pulumi.StringOutput `pulumi:"pluginsS3ObjectVersion"`
   236  	// The relative path to the plugins.zip file on your Amazon S3 storage bucket. For example, plugins.zip. If a relative path is provided in the request, then pluginsS3ObjectVersion is required. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
   237  	PluginsS3Path pulumi.StringPtrOutput `pulumi:"pluginsS3Path"`
   238  	// The requirements.txt file version you want to use.
   239  	RequirementsS3ObjectVersion pulumi.StringOutput `pulumi:"requirementsS3ObjectVersion"`
   240  	// The relative path to the requirements.txt file on your Amazon S3 storage bucket. For example, requirements.txt. If a relative path is provided in the request, then requirementsS3ObjectVersion is required. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
   241  	RequirementsS3Path pulumi.StringPtrOutput `pulumi:"requirementsS3Path"`
   242  	// The number of schedulers that you want to run in your environment. v2.0.2 and above accepts `2` - `5`, default `2`. v1.10.12 accepts `1`.
   243  	Schedulers pulumi.IntOutput `pulumi:"schedulers"`
   244  	// The Service Role ARN of the Amazon MWAA Environment
   245  	ServiceRoleArn pulumi.StringOutput `pulumi:"serviceRoleArn"`
   246  	// The Amazon Resource Name (ARN) of your Amazon S3 storage bucket. For example, arn:aws:s3:::airflow-mybucketname.
   247  	SourceBucketArn pulumi.StringOutput `pulumi:"sourceBucketArn"`
   248  	// The version of the startup shell script you want to use. You must specify the version ID that Amazon S3 assigns to the file every time you update the script.
   249  	StartupScriptS3ObjectVersion pulumi.StringOutput `pulumi:"startupScriptS3ObjectVersion"`
   250  	// The relative path to the script hosted in your bucket. The script runs as your environment starts before starting the Apache Airflow process. Use this script to install dependencies, modify configuration options, and set environment variables. See [Using a startup script](https://docs.aws.amazon.com/mwaa/latest/userguide/using-startup-script.html). Supported for environment versions 2.x and later.
   251  	StartupScriptS3Path pulumi.StringPtrOutput `pulumi:"startupScriptS3Path"`
   252  	// The status of the Amazon MWAA Environment
   253  	Status pulumi.StringOutput `pulumi:"status"`
   254  	// A map of resource tags to associate with the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   255  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   256  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   257  	//
   258  	// Deprecated: Please use `tags` instead.
   259  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   260  	// Specifies whether the webserver should be accessible over the internet or via your specified VPC. Possible options: `PRIVATE_ONLY` (default) and `PUBLIC_ONLY`.
   261  	WebserverAccessMode pulumi.StringOutput `pulumi:"webserverAccessMode"`
   262  	// The webserver URL of the MWAA Environment
   263  	WebserverUrl pulumi.StringOutput `pulumi:"webserverUrl"`
   264  	// The VPC endpoint for the environment's web server
   265  	WebserverVpcEndpointService pulumi.StringOutput `pulumi:"webserverVpcEndpointService"`
   266  	// Specifies the start date for the weekly maintenance window.
   267  	WeeklyMaintenanceWindowStart pulumi.StringOutput `pulumi:"weeklyMaintenanceWindowStart"`
   268  }
   269  
   270  // NewEnvironment registers a new resource with the given unique name, arguments, and options.
   271  func NewEnvironment(ctx *pulumi.Context,
   272  	name string, args *EnvironmentArgs, opts ...pulumi.ResourceOption) (*Environment, error) {
   273  	if args == nil {
   274  		return nil, errors.New("missing one or more required arguments")
   275  	}
   276  
   277  	if args.DagS3Path == nil {
   278  		return nil, errors.New("invalid value for required argument 'DagS3Path'")
   279  	}
   280  	if args.ExecutionRoleArn == nil {
   281  		return nil, errors.New("invalid value for required argument 'ExecutionRoleArn'")
   282  	}
   283  	if args.NetworkConfiguration == nil {
   284  		return nil, errors.New("invalid value for required argument 'NetworkConfiguration'")
   285  	}
   286  	if args.SourceBucketArn == nil {
   287  		return nil, errors.New("invalid value for required argument 'SourceBucketArn'")
   288  	}
   289  	if args.AirflowConfigurationOptions != nil {
   290  		args.AirflowConfigurationOptions = pulumi.ToSecret(args.AirflowConfigurationOptions).(pulumi.StringMapInput)
   291  	}
   292  	secrets := pulumi.AdditionalSecretOutputs([]string{
   293  		"airflowConfigurationOptions",
   294  	})
   295  	opts = append(opts, secrets)
   296  	opts = internal.PkgResourceDefaultOpts(opts)
   297  	var resource Environment
   298  	err := ctx.RegisterResource("aws:mwaa/environment:Environment", name, args, &resource, opts...)
   299  	if err != nil {
   300  		return nil, err
   301  	}
   302  	return &resource, nil
   303  }
   304  
   305  // GetEnvironment gets an existing Environment resource's state with the given name, ID, and optional
   306  // state properties that are used to uniquely qualify the lookup (nil if not required).
   307  func GetEnvironment(ctx *pulumi.Context,
   308  	name string, id pulumi.IDInput, state *EnvironmentState, opts ...pulumi.ResourceOption) (*Environment, error) {
   309  	var resource Environment
   310  	err := ctx.ReadResource("aws:mwaa/environment:Environment", name, id, state, &resource, opts...)
   311  	if err != nil {
   312  		return nil, err
   313  	}
   314  	return &resource, nil
   315  }
   316  
   317  // Input properties used for looking up and filtering Environment resources.
   318  type environmentState struct {
   319  	// The `airflowConfigurationOptions` parameter specifies airflow override options. Check the [Official documentation](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-env-variables.html#configuring-env-variables-reference) for all possible configuration options.
   320  	AirflowConfigurationOptions map[string]string `pulumi:"airflowConfigurationOptions"`
   321  	// Airflow version of your environment, will be set by default to the latest version that MWAA supports.
   322  	AirflowVersion *string `pulumi:"airflowVersion"`
   323  	// The ARN of the MWAA Environment
   324  	Arn *string `pulumi:"arn"`
   325  	// The Created At date of the MWAA Environment
   326  	CreatedAt *string `pulumi:"createdAt"`
   327  	// The relative path to the DAG folder on your Amazon S3 storage bucket. For example, dags. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
   328  	DagS3Path *string `pulumi:"dagS3Path"`
   329  	// The VPC endpoint for the environment's Amazon RDS database
   330  	// * `logging_configuration[0].<LOG_CONFIGURATION_TYPE>[0].cloud_watch_log_group_arn` - Provides the ARN for the CloudWatch group where the logs will be published
   331  	DatabaseVpcEndpointService *string `pulumi:"databaseVpcEndpointService"`
   332  	EndpointManagement         *string `pulumi:"endpointManagement"`
   333  	// Environment class for the cluster. Possible options are `mw1.small`, `mw1.medium`, `mw1.large`. Will be set by default to `mw1.small`. Please check the [AWS Pricing](https://aws.amazon.com/de/managed-workflows-for-apache-airflow/pricing/) for more information about the environment classes.
   334  	EnvironmentClass *string `pulumi:"environmentClass"`
   335  	// The Amazon Resource Name (ARN) of the task execution role that the Amazon MWAA and its environment can assume. Check the [official AWS documentation](https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-create-role.html) for the detailed role specification.
   336  	ExecutionRoleArn *string `pulumi:"executionRoleArn"`
   337  	// The Amazon Resource Name (ARN) of your KMS key that you want to use for encryption. Will be set to the ARN of the managed KMS key `aws/airflow` by default. Please check the [Official Documentation](https://docs.aws.amazon.com/mwaa/latest/userguide/custom-keys-certs.html) for more information.
   338  	KmsKey       *string                  `pulumi:"kmsKey"`
   339  	LastUpdateds []EnvironmentLastUpdated `pulumi:"lastUpdateds"`
   340  	// The Apache Airflow logs you want to send to Amazon CloudWatch Logs.
   341  	LoggingConfiguration *EnvironmentLoggingConfiguration `pulumi:"loggingConfiguration"`
   342  	// The maximum number of workers that can be automatically scaled up. Value need to be between `1` and `25`. Will be `10` by default.
   343  	MaxWorkers *int `pulumi:"maxWorkers"`
   344  	// The minimum number of workers that you want to run in your environment. Will be `1` by default.
   345  	MinWorkers *int `pulumi:"minWorkers"`
   346  	// The name of the Apache Airflow Environment
   347  	Name *string `pulumi:"name"`
   348  	// Specifies the network configuration for your Apache Airflow Environment. This includes two private subnets as well as security groups for the Airflow environment. Each subnet requires internet connection, otherwise the deployment will fail. See Network configuration below for details.
   349  	NetworkConfiguration *EnvironmentNetworkConfiguration `pulumi:"networkConfiguration"`
   350  	// The plugins.zip file version you want to use.
   351  	PluginsS3ObjectVersion *string `pulumi:"pluginsS3ObjectVersion"`
   352  	// The relative path to the plugins.zip file on your Amazon S3 storage bucket. For example, plugins.zip. If a relative path is provided in the request, then pluginsS3ObjectVersion is required. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
   353  	PluginsS3Path *string `pulumi:"pluginsS3Path"`
   354  	// The requirements.txt file version you want to use.
   355  	RequirementsS3ObjectVersion *string `pulumi:"requirementsS3ObjectVersion"`
   356  	// The relative path to the requirements.txt file on your Amazon S3 storage bucket. For example, requirements.txt. If a relative path is provided in the request, then requirementsS3ObjectVersion is required. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
   357  	RequirementsS3Path *string `pulumi:"requirementsS3Path"`
   358  	// The number of schedulers that you want to run in your environment. v2.0.2 and above accepts `2` - `5`, default `2`. v1.10.12 accepts `1`.
   359  	Schedulers *int `pulumi:"schedulers"`
   360  	// The Service Role ARN of the Amazon MWAA Environment
   361  	ServiceRoleArn *string `pulumi:"serviceRoleArn"`
   362  	// The Amazon Resource Name (ARN) of your Amazon S3 storage bucket. For example, arn:aws:s3:::airflow-mybucketname.
   363  	SourceBucketArn *string `pulumi:"sourceBucketArn"`
   364  	// The version of the startup shell script you want to use. You must specify the version ID that Amazon S3 assigns to the file every time you update the script.
   365  	StartupScriptS3ObjectVersion *string `pulumi:"startupScriptS3ObjectVersion"`
   366  	// The relative path to the script hosted in your bucket. The script runs as your environment starts before starting the Apache Airflow process. Use this script to install dependencies, modify configuration options, and set environment variables. See [Using a startup script](https://docs.aws.amazon.com/mwaa/latest/userguide/using-startup-script.html). Supported for environment versions 2.x and later.
   367  	StartupScriptS3Path *string `pulumi:"startupScriptS3Path"`
   368  	// The status of the Amazon MWAA Environment
   369  	Status *string `pulumi:"status"`
   370  	// A map of resource tags to associate with the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   371  	Tags map[string]string `pulumi:"tags"`
   372  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   373  	//
   374  	// Deprecated: Please use `tags` instead.
   375  	TagsAll map[string]string `pulumi:"tagsAll"`
   376  	// Specifies whether the webserver should be accessible over the internet or via your specified VPC. Possible options: `PRIVATE_ONLY` (default) and `PUBLIC_ONLY`.
   377  	WebserverAccessMode *string `pulumi:"webserverAccessMode"`
   378  	// The webserver URL of the MWAA Environment
   379  	WebserverUrl *string `pulumi:"webserverUrl"`
   380  	// The VPC endpoint for the environment's web server
   381  	WebserverVpcEndpointService *string `pulumi:"webserverVpcEndpointService"`
   382  	// Specifies the start date for the weekly maintenance window.
   383  	WeeklyMaintenanceWindowStart *string `pulumi:"weeklyMaintenanceWindowStart"`
   384  }
   385  
   386  type EnvironmentState struct {
   387  	// The `airflowConfigurationOptions` parameter specifies airflow override options. Check the [Official documentation](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-env-variables.html#configuring-env-variables-reference) for all possible configuration options.
   388  	AirflowConfigurationOptions pulumi.StringMapInput
   389  	// Airflow version of your environment, will be set by default to the latest version that MWAA supports.
   390  	AirflowVersion pulumi.StringPtrInput
   391  	// The ARN of the MWAA Environment
   392  	Arn pulumi.StringPtrInput
   393  	// The Created At date of the MWAA Environment
   394  	CreatedAt pulumi.StringPtrInput
   395  	// The relative path to the DAG folder on your Amazon S3 storage bucket. For example, dags. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
   396  	DagS3Path pulumi.StringPtrInput
   397  	// The VPC endpoint for the environment's Amazon RDS database
   398  	// * `logging_configuration[0].<LOG_CONFIGURATION_TYPE>[0].cloud_watch_log_group_arn` - Provides the ARN for the CloudWatch group where the logs will be published
   399  	DatabaseVpcEndpointService pulumi.StringPtrInput
   400  	EndpointManagement         pulumi.StringPtrInput
   401  	// Environment class for the cluster. Possible options are `mw1.small`, `mw1.medium`, `mw1.large`. Will be set by default to `mw1.small`. Please check the [AWS Pricing](https://aws.amazon.com/de/managed-workflows-for-apache-airflow/pricing/) for more information about the environment classes.
   402  	EnvironmentClass pulumi.StringPtrInput
   403  	// The Amazon Resource Name (ARN) of the task execution role that the Amazon MWAA and its environment can assume. Check the [official AWS documentation](https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-create-role.html) for the detailed role specification.
   404  	ExecutionRoleArn pulumi.StringPtrInput
   405  	// The Amazon Resource Name (ARN) of your KMS key that you want to use for encryption. Will be set to the ARN of the managed KMS key `aws/airflow` by default. Please check the [Official Documentation](https://docs.aws.amazon.com/mwaa/latest/userguide/custom-keys-certs.html) for more information.
   406  	KmsKey       pulumi.StringPtrInput
   407  	LastUpdateds EnvironmentLastUpdatedArrayInput
   408  	// The Apache Airflow logs you want to send to Amazon CloudWatch Logs.
   409  	LoggingConfiguration EnvironmentLoggingConfigurationPtrInput
   410  	// The maximum number of workers that can be automatically scaled up. Value need to be between `1` and `25`. Will be `10` by default.
   411  	MaxWorkers pulumi.IntPtrInput
   412  	// The minimum number of workers that you want to run in your environment. Will be `1` by default.
   413  	MinWorkers pulumi.IntPtrInput
   414  	// The name of the Apache Airflow Environment
   415  	Name pulumi.StringPtrInput
   416  	// Specifies the network configuration for your Apache Airflow Environment. This includes two private subnets as well as security groups for the Airflow environment. Each subnet requires internet connection, otherwise the deployment will fail. See Network configuration below for details.
   417  	NetworkConfiguration EnvironmentNetworkConfigurationPtrInput
   418  	// The plugins.zip file version you want to use.
   419  	PluginsS3ObjectVersion pulumi.StringPtrInput
   420  	// The relative path to the plugins.zip file on your Amazon S3 storage bucket. For example, plugins.zip. If a relative path is provided in the request, then pluginsS3ObjectVersion is required. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
   421  	PluginsS3Path pulumi.StringPtrInput
   422  	// The requirements.txt file version you want to use.
   423  	RequirementsS3ObjectVersion pulumi.StringPtrInput
   424  	// The relative path to the requirements.txt file on your Amazon S3 storage bucket. For example, requirements.txt. If a relative path is provided in the request, then requirementsS3ObjectVersion is required. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
   425  	RequirementsS3Path pulumi.StringPtrInput
   426  	// The number of schedulers that you want to run in your environment. v2.0.2 and above accepts `2` - `5`, default `2`. v1.10.12 accepts `1`.
   427  	Schedulers pulumi.IntPtrInput
   428  	// The Service Role ARN of the Amazon MWAA Environment
   429  	ServiceRoleArn pulumi.StringPtrInput
   430  	// The Amazon Resource Name (ARN) of your Amazon S3 storage bucket. For example, arn:aws:s3:::airflow-mybucketname.
   431  	SourceBucketArn pulumi.StringPtrInput
   432  	// The version of the startup shell script you want to use. You must specify the version ID that Amazon S3 assigns to the file every time you update the script.
   433  	StartupScriptS3ObjectVersion pulumi.StringPtrInput
   434  	// The relative path to the script hosted in your bucket. The script runs as your environment starts before starting the Apache Airflow process. Use this script to install dependencies, modify configuration options, and set environment variables. See [Using a startup script](https://docs.aws.amazon.com/mwaa/latest/userguide/using-startup-script.html). Supported for environment versions 2.x and later.
   435  	StartupScriptS3Path pulumi.StringPtrInput
   436  	// The status of the Amazon MWAA Environment
   437  	Status pulumi.StringPtrInput
   438  	// A map of resource tags to associate with the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   439  	Tags pulumi.StringMapInput
   440  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   441  	//
   442  	// Deprecated: Please use `tags` instead.
   443  	TagsAll pulumi.StringMapInput
   444  	// Specifies whether the webserver should be accessible over the internet or via your specified VPC. Possible options: `PRIVATE_ONLY` (default) and `PUBLIC_ONLY`.
   445  	WebserverAccessMode pulumi.StringPtrInput
   446  	// The webserver URL of the MWAA Environment
   447  	WebserverUrl pulumi.StringPtrInput
   448  	// The VPC endpoint for the environment's web server
   449  	WebserverVpcEndpointService pulumi.StringPtrInput
   450  	// Specifies the start date for the weekly maintenance window.
   451  	WeeklyMaintenanceWindowStart pulumi.StringPtrInput
   452  }
   453  
   454  func (EnvironmentState) ElementType() reflect.Type {
   455  	return reflect.TypeOf((*environmentState)(nil)).Elem()
   456  }
   457  
   458  type environmentArgs struct {
   459  	// The `airflowConfigurationOptions` parameter specifies airflow override options. Check the [Official documentation](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-env-variables.html#configuring-env-variables-reference) for all possible configuration options.
   460  	AirflowConfigurationOptions map[string]string `pulumi:"airflowConfigurationOptions"`
   461  	// Airflow version of your environment, will be set by default to the latest version that MWAA supports.
   462  	AirflowVersion *string `pulumi:"airflowVersion"`
   463  	// The relative path to the DAG folder on your Amazon S3 storage bucket. For example, dags. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
   464  	DagS3Path          string  `pulumi:"dagS3Path"`
   465  	EndpointManagement *string `pulumi:"endpointManagement"`
   466  	// Environment class for the cluster. Possible options are `mw1.small`, `mw1.medium`, `mw1.large`. Will be set by default to `mw1.small`. Please check the [AWS Pricing](https://aws.amazon.com/de/managed-workflows-for-apache-airflow/pricing/) for more information about the environment classes.
   467  	EnvironmentClass *string `pulumi:"environmentClass"`
   468  	// The Amazon Resource Name (ARN) of the task execution role that the Amazon MWAA and its environment can assume. Check the [official AWS documentation](https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-create-role.html) for the detailed role specification.
   469  	ExecutionRoleArn string `pulumi:"executionRoleArn"`
   470  	// The Amazon Resource Name (ARN) of your KMS key that you want to use for encryption. Will be set to the ARN of the managed KMS key `aws/airflow` by default. Please check the [Official Documentation](https://docs.aws.amazon.com/mwaa/latest/userguide/custom-keys-certs.html) for more information.
   471  	KmsKey *string `pulumi:"kmsKey"`
   472  	// The Apache Airflow logs you want to send to Amazon CloudWatch Logs.
   473  	LoggingConfiguration *EnvironmentLoggingConfiguration `pulumi:"loggingConfiguration"`
   474  	// The maximum number of workers that can be automatically scaled up. Value need to be between `1` and `25`. Will be `10` by default.
   475  	MaxWorkers *int `pulumi:"maxWorkers"`
   476  	// The minimum number of workers that you want to run in your environment. Will be `1` by default.
   477  	MinWorkers *int `pulumi:"minWorkers"`
   478  	// The name of the Apache Airflow Environment
   479  	Name *string `pulumi:"name"`
   480  	// Specifies the network configuration for your Apache Airflow Environment. This includes two private subnets as well as security groups for the Airflow environment. Each subnet requires internet connection, otherwise the deployment will fail. See Network configuration below for details.
   481  	NetworkConfiguration EnvironmentNetworkConfiguration `pulumi:"networkConfiguration"`
   482  	// The plugins.zip file version you want to use.
   483  	PluginsS3ObjectVersion *string `pulumi:"pluginsS3ObjectVersion"`
   484  	// The relative path to the plugins.zip file on your Amazon S3 storage bucket. For example, plugins.zip. If a relative path is provided in the request, then pluginsS3ObjectVersion is required. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
   485  	PluginsS3Path *string `pulumi:"pluginsS3Path"`
   486  	// The requirements.txt file version you want to use.
   487  	RequirementsS3ObjectVersion *string `pulumi:"requirementsS3ObjectVersion"`
   488  	// The relative path to the requirements.txt file on your Amazon S3 storage bucket. For example, requirements.txt. If a relative path is provided in the request, then requirementsS3ObjectVersion is required. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
   489  	RequirementsS3Path *string `pulumi:"requirementsS3Path"`
   490  	// The number of schedulers that you want to run in your environment. v2.0.2 and above accepts `2` - `5`, default `2`. v1.10.12 accepts `1`.
   491  	Schedulers *int `pulumi:"schedulers"`
   492  	// The Amazon Resource Name (ARN) of your Amazon S3 storage bucket. For example, arn:aws:s3:::airflow-mybucketname.
   493  	SourceBucketArn string `pulumi:"sourceBucketArn"`
   494  	// The version of the startup shell script you want to use. You must specify the version ID that Amazon S3 assigns to the file every time you update the script.
   495  	StartupScriptS3ObjectVersion *string `pulumi:"startupScriptS3ObjectVersion"`
   496  	// The relative path to the script hosted in your bucket. The script runs as your environment starts before starting the Apache Airflow process. Use this script to install dependencies, modify configuration options, and set environment variables. See [Using a startup script](https://docs.aws.amazon.com/mwaa/latest/userguide/using-startup-script.html). Supported for environment versions 2.x and later.
   497  	StartupScriptS3Path *string `pulumi:"startupScriptS3Path"`
   498  	// A map of resource tags to associate with the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   499  	Tags map[string]string `pulumi:"tags"`
   500  	// Specifies whether the webserver should be accessible over the internet or via your specified VPC. Possible options: `PRIVATE_ONLY` (default) and `PUBLIC_ONLY`.
   501  	WebserverAccessMode *string `pulumi:"webserverAccessMode"`
   502  	// Specifies the start date for the weekly maintenance window.
   503  	WeeklyMaintenanceWindowStart *string `pulumi:"weeklyMaintenanceWindowStart"`
   504  }
   505  
   506  // The set of arguments for constructing a Environment resource.
   507  type EnvironmentArgs struct {
   508  	// The `airflowConfigurationOptions` parameter specifies airflow override options. Check the [Official documentation](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-env-variables.html#configuring-env-variables-reference) for all possible configuration options.
   509  	AirflowConfigurationOptions pulumi.StringMapInput
   510  	// Airflow version of your environment, will be set by default to the latest version that MWAA supports.
   511  	AirflowVersion pulumi.StringPtrInput
   512  	// The relative path to the DAG folder on your Amazon S3 storage bucket. For example, dags. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
   513  	DagS3Path          pulumi.StringInput
   514  	EndpointManagement pulumi.StringPtrInput
   515  	// Environment class for the cluster. Possible options are `mw1.small`, `mw1.medium`, `mw1.large`. Will be set by default to `mw1.small`. Please check the [AWS Pricing](https://aws.amazon.com/de/managed-workflows-for-apache-airflow/pricing/) for more information about the environment classes.
   516  	EnvironmentClass pulumi.StringPtrInput
   517  	// The Amazon Resource Name (ARN) of the task execution role that the Amazon MWAA and its environment can assume. Check the [official AWS documentation](https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-create-role.html) for the detailed role specification.
   518  	ExecutionRoleArn pulumi.StringInput
   519  	// The Amazon Resource Name (ARN) of your KMS key that you want to use for encryption. Will be set to the ARN of the managed KMS key `aws/airflow` by default. Please check the [Official Documentation](https://docs.aws.amazon.com/mwaa/latest/userguide/custom-keys-certs.html) for more information.
   520  	KmsKey pulumi.StringPtrInput
   521  	// The Apache Airflow logs you want to send to Amazon CloudWatch Logs.
   522  	LoggingConfiguration EnvironmentLoggingConfigurationPtrInput
   523  	// The maximum number of workers that can be automatically scaled up. Value need to be between `1` and `25`. Will be `10` by default.
   524  	MaxWorkers pulumi.IntPtrInput
   525  	// The minimum number of workers that you want to run in your environment. Will be `1` by default.
   526  	MinWorkers pulumi.IntPtrInput
   527  	// The name of the Apache Airflow Environment
   528  	Name pulumi.StringPtrInput
   529  	// Specifies the network configuration for your Apache Airflow Environment. This includes two private subnets as well as security groups for the Airflow environment. Each subnet requires internet connection, otherwise the deployment will fail. See Network configuration below for details.
   530  	NetworkConfiguration EnvironmentNetworkConfigurationInput
   531  	// The plugins.zip file version you want to use.
   532  	PluginsS3ObjectVersion pulumi.StringPtrInput
   533  	// The relative path to the plugins.zip file on your Amazon S3 storage bucket. For example, plugins.zip. If a relative path is provided in the request, then pluginsS3ObjectVersion is required. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
   534  	PluginsS3Path pulumi.StringPtrInput
   535  	// The requirements.txt file version you want to use.
   536  	RequirementsS3ObjectVersion pulumi.StringPtrInput
   537  	// The relative path to the requirements.txt file on your Amazon S3 storage bucket. For example, requirements.txt. If a relative path is provided in the request, then requirementsS3ObjectVersion is required. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
   538  	RequirementsS3Path pulumi.StringPtrInput
   539  	// The number of schedulers that you want to run in your environment. v2.0.2 and above accepts `2` - `5`, default `2`. v1.10.12 accepts `1`.
   540  	Schedulers pulumi.IntPtrInput
   541  	// The Amazon Resource Name (ARN) of your Amazon S3 storage bucket. For example, arn:aws:s3:::airflow-mybucketname.
   542  	SourceBucketArn pulumi.StringInput
   543  	// The version of the startup shell script you want to use. You must specify the version ID that Amazon S3 assigns to the file every time you update the script.
   544  	StartupScriptS3ObjectVersion pulumi.StringPtrInput
   545  	// The relative path to the script hosted in your bucket. The script runs as your environment starts before starting the Apache Airflow process. Use this script to install dependencies, modify configuration options, and set environment variables. See [Using a startup script](https://docs.aws.amazon.com/mwaa/latest/userguide/using-startup-script.html). Supported for environment versions 2.x and later.
   546  	StartupScriptS3Path pulumi.StringPtrInput
   547  	// A map of resource tags to associate with the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   548  	Tags pulumi.StringMapInput
   549  	// Specifies whether the webserver should be accessible over the internet or via your specified VPC. Possible options: `PRIVATE_ONLY` (default) and `PUBLIC_ONLY`.
   550  	WebserverAccessMode pulumi.StringPtrInput
   551  	// Specifies the start date for the weekly maintenance window.
   552  	WeeklyMaintenanceWindowStart pulumi.StringPtrInput
   553  }
   554  
   555  func (EnvironmentArgs) ElementType() reflect.Type {
   556  	return reflect.TypeOf((*environmentArgs)(nil)).Elem()
   557  }
   558  
   559  type EnvironmentInput interface {
   560  	pulumi.Input
   561  
   562  	ToEnvironmentOutput() EnvironmentOutput
   563  	ToEnvironmentOutputWithContext(ctx context.Context) EnvironmentOutput
   564  }
   565  
   566  func (*Environment) ElementType() reflect.Type {
   567  	return reflect.TypeOf((**Environment)(nil)).Elem()
   568  }
   569  
   570  func (i *Environment) ToEnvironmentOutput() EnvironmentOutput {
   571  	return i.ToEnvironmentOutputWithContext(context.Background())
   572  }
   573  
   574  func (i *Environment) ToEnvironmentOutputWithContext(ctx context.Context) EnvironmentOutput {
   575  	return pulumi.ToOutputWithContext(ctx, i).(EnvironmentOutput)
   576  }
   577  
   578  // EnvironmentArrayInput is an input type that accepts EnvironmentArray and EnvironmentArrayOutput values.
   579  // You can construct a concrete instance of `EnvironmentArrayInput` via:
   580  //
   581  //	EnvironmentArray{ EnvironmentArgs{...} }
   582  type EnvironmentArrayInput interface {
   583  	pulumi.Input
   584  
   585  	ToEnvironmentArrayOutput() EnvironmentArrayOutput
   586  	ToEnvironmentArrayOutputWithContext(context.Context) EnvironmentArrayOutput
   587  }
   588  
   589  type EnvironmentArray []EnvironmentInput
   590  
   591  func (EnvironmentArray) ElementType() reflect.Type {
   592  	return reflect.TypeOf((*[]*Environment)(nil)).Elem()
   593  }
   594  
   595  func (i EnvironmentArray) ToEnvironmentArrayOutput() EnvironmentArrayOutput {
   596  	return i.ToEnvironmentArrayOutputWithContext(context.Background())
   597  }
   598  
   599  func (i EnvironmentArray) ToEnvironmentArrayOutputWithContext(ctx context.Context) EnvironmentArrayOutput {
   600  	return pulumi.ToOutputWithContext(ctx, i).(EnvironmentArrayOutput)
   601  }
   602  
   603  // EnvironmentMapInput is an input type that accepts EnvironmentMap and EnvironmentMapOutput values.
   604  // You can construct a concrete instance of `EnvironmentMapInput` via:
   605  //
   606  //	EnvironmentMap{ "key": EnvironmentArgs{...} }
   607  type EnvironmentMapInput interface {
   608  	pulumi.Input
   609  
   610  	ToEnvironmentMapOutput() EnvironmentMapOutput
   611  	ToEnvironmentMapOutputWithContext(context.Context) EnvironmentMapOutput
   612  }
   613  
   614  type EnvironmentMap map[string]EnvironmentInput
   615  
   616  func (EnvironmentMap) ElementType() reflect.Type {
   617  	return reflect.TypeOf((*map[string]*Environment)(nil)).Elem()
   618  }
   619  
   620  func (i EnvironmentMap) ToEnvironmentMapOutput() EnvironmentMapOutput {
   621  	return i.ToEnvironmentMapOutputWithContext(context.Background())
   622  }
   623  
   624  func (i EnvironmentMap) ToEnvironmentMapOutputWithContext(ctx context.Context) EnvironmentMapOutput {
   625  	return pulumi.ToOutputWithContext(ctx, i).(EnvironmentMapOutput)
   626  }
   627  
   628  type EnvironmentOutput struct{ *pulumi.OutputState }
   629  
   630  func (EnvironmentOutput) ElementType() reflect.Type {
   631  	return reflect.TypeOf((**Environment)(nil)).Elem()
   632  }
   633  
   634  func (o EnvironmentOutput) ToEnvironmentOutput() EnvironmentOutput {
   635  	return o
   636  }
   637  
   638  func (o EnvironmentOutput) ToEnvironmentOutputWithContext(ctx context.Context) EnvironmentOutput {
   639  	return o
   640  }
   641  
   642  // The `airflowConfigurationOptions` parameter specifies airflow override options. Check the [Official documentation](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-env-variables.html#configuring-env-variables-reference) for all possible configuration options.
   643  func (o EnvironmentOutput) AirflowConfigurationOptions() pulumi.StringMapOutput {
   644  	return o.ApplyT(func(v *Environment) pulumi.StringMapOutput { return v.AirflowConfigurationOptions }).(pulumi.StringMapOutput)
   645  }
   646  
   647  // Airflow version of your environment, will be set by default to the latest version that MWAA supports.
   648  func (o EnvironmentOutput) AirflowVersion() pulumi.StringOutput {
   649  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.AirflowVersion }).(pulumi.StringOutput)
   650  }
   651  
   652  // The ARN of the MWAA Environment
   653  func (o EnvironmentOutput) Arn() pulumi.StringOutput {
   654  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   655  }
   656  
   657  // The Created At date of the MWAA Environment
   658  func (o EnvironmentOutput) CreatedAt() pulumi.StringOutput {
   659  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput)
   660  }
   661  
   662  // The relative path to the DAG folder on your Amazon S3 storage bucket. For example, dags. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
   663  func (o EnvironmentOutput) DagS3Path() pulumi.StringOutput {
   664  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.DagS3Path }).(pulumi.StringOutput)
   665  }
   666  
   667  // The VPC endpoint for the environment's Amazon RDS database
   668  // * `logging_configuration[0].<LOG_CONFIGURATION_TYPE>[0].cloud_watch_log_group_arn` - Provides the ARN for the CloudWatch group where the logs will be published
   669  func (o EnvironmentOutput) DatabaseVpcEndpointService() pulumi.StringOutput {
   670  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.DatabaseVpcEndpointService }).(pulumi.StringOutput)
   671  }
   672  
   673  func (o EnvironmentOutput) EndpointManagement() pulumi.StringOutput {
   674  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.EndpointManagement }).(pulumi.StringOutput)
   675  }
   676  
   677  // Environment class for the cluster. Possible options are `mw1.small`, `mw1.medium`, `mw1.large`. Will be set by default to `mw1.small`. Please check the [AWS Pricing](https://aws.amazon.com/de/managed-workflows-for-apache-airflow/pricing/) for more information about the environment classes.
   678  func (o EnvironmentOutput) EnvironmentClass() pulumi.StringOutput {
   679  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.EnvironmentClass }).(pulumi.StringOutput)
   680  }
   681  
   682  // The Amazon Resource Name (ARN) of the task execution role that the Amazon MWAA and its environment can assume. Check the [official AWS documentation](https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-create-role.html) for the detailed role specification.
   683  func (o EnvironmentOutput) ExecutionRoleArn() pulumi.StringOutput {
   684  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.ExecutionRoleArn }).(pulumi.StringOutput)
   685  }
   686  
   687  // The Amazon Resource Name (ARN) of your KMS key that you want to use for encryption. Will be set to the ARN of the managed KMS key `aws/airflow` by default. Please check the [Official Documentation](https://docs.aws.amazon.com/mwaa/latest/userguide/custom-keys-certs.html) for more information.
   688  func (o EnvironmentOutput) KmsKey() pulumi.StringPtrOutput {
   689  	return o.ApplyT(func(v *Environment) pulumi.StringPtrOutput { return v.KmsKey }).(pulumi.StringPtrOutput)
   690  }
   691  
   692  func (o EnvironmentOutput) LastUpdateds() EnvironmentLastUpdatedArrayOutput {
   693  	return o.ApplyT(func(v *Environment) EnvironmentLastUpdatedArrayOutput { return v.LastUpdateds }).(EnvironmentLastUpdatedArrayOutput)
   694  }
   695  
   696  // The Apache Airflow logs you want to send to Amazon CloudWatch Logs.
   697  func (o EnvironmentOutput) LoggingConfiguration() EnvironmentLoggingConfigurationOutput {
   698  	return o.ApplyT(func(v *Environment) EnvironmentLoggingConfigurationOutput { return v.LoggingConfiguration }).(EnvironmentLoggingConfigurationOutput)
   699  }
   700  
   701  // The maximum number of workers that can be automatically scaled up. Value need to be between `1` and `25`. Will be `10` by default.
   702  func (o EnvironmentOutput) MaxWorkers() pulumi.IntOutput {
   703  	return o.ApplyT(func(v *Environment) pulumi.IntOutput { return v.MaxWorkers }).(pulumi.IntOutput)
   704  }
   705  
   706  // The minimum number of workers that you want to run in your environment. Will be `1` by default.
   707  func (o EnvironmentOutput) MinWorkers() pulumi.IntOutput {
   708  	return o.ApplyT(func(v *Environment) pulumi.IntOutput { return v.MinWorkers }).(pulumi.IntOutput)
   709  }
   710  
   711  // The name of the Apache Airflow Environment
   712  func (o EnvironmentOutput) Name() pulumi.StringOutput {
   713  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   714  }
   715  
   716  // Specifies the network configuration for your Apache Airflow Environment. This includes two private subnets as well as security groups for the Airflow environment. Each subnet requires internet connection, otherwise the deployment will fail. See Network configuration below for details.
   717  func (o EnvironmentOutput) NetworkConfiguration() EnvironmentNetworkConfigurationOutput {
   718  	return o.ApplyT(func(v *Environment) EnvironmentNetworkConfigurationOutput { return v.NetworkConfiguration }).(EnvironmentNetworkConfigurationOutput)
   719  }
   720  
   721  // The plugins.zip file version you want to use.
   722  func (o EnvironmentOutput) PluginsS3ObjectVersion() pulumi.StringOutput {
   723  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.PluginsS3ObjectVersion }).(pulumi.StringOutput)
   724  }
   725  
   726  // The relative path to the plugins.zip file on your Amazon S3 storage bucket. For example, plugins.zip. If a relative path is provided in the request, then pluginsS3ObjectVersion is required. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
   727  func (o EnvironmentOutput) PluginsS3Path() pulumi.StringPtrOutput {
   728  	return o.ApplyT(func(v *Environment) pulumi.StringPtrOutput { return v.PluginsS3Path }).(pulumi.StringPtrOutput)
   729  }
   730  
   731  // The requirements.txt file version you want to use.
   732  func (o EnvironmentOutput) RequirementsS3ObjectVersion() pulumi.StringOutput {
   733  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.RequirementsS3ObjectVersion }).(pulumi.StringOutput)
   734  }
   735  
   736  // The relative path to the requirements.txt file on your Amazon S3 storage bucket. For example, requirements.txt. If a relative path is provided in the request, then requirementsS3ObjectVersion is required. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
   737  func (o EnvironmentOutput) RequirementsS3Path() pulumi.StringPtrOutput {
   738  	return o.ApplyT(func(v *Environment) pulumi.StringPtrOutput { return v.RequirementsS3Path }).(pulumi.StringPtrOutput)
   739  }
   740  
   741  // The number of schedulers that you want to run in your environment. v2.0.2 and above accepts `2` - `5`, default `2`. v1.10.12 accepts `1`.
   742  func (o EnvironmentOutput) Schedulers() pulumi.IntOutput {
   743  	return o.ApplyT(func(v *Environment) pulumi.IntOutput { return v.Schedulers }).(pulumi.IntOutput)
   744  }
   745  
   746  // The Service Role ARN of the Amazon MWAA Environment
   747  func (o EnvironmentOutput) ServiceRoleArn() pulumi.StringOutput {
   748  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.ServiceRoleArn }).(pulumi.StringOutput)
   749  }
   750  
   751  // The Amazon Resource Name (ARN) of your Amazon S3 storage bucket. For example, arn:aws:s3:::airflow-mybucketname.
   752  func (o EnvironmentOutput) SourceBucketArn() pulumi.StringOutput {
   753  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.SourceBucketArn }).(pulumi.StringOutput)
   754  }
   755  
   756  // The version of the startup shell script you want to use. You must specify the version ID that Amazon S3 assigns to the file every time you update the script.
   757  func (o EnvironmentOutput) StartupScriptS3ObjectVersion() pulumi.StringOutput {
   758  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.StartupScriptS3ObjectVersion }).(pulumi.StringOutput)
   759  }
   760  
   761  // The relative path to the script hosted in your bucket. The script runs as your environment starts before starting the Apache Airflow process. Use this script to install dependencies, modify configuration options, and set environment variables. See [Using a startup script](https://docs.aws.amazon.com/mwaa/latest/userguide/using-startup-script.html). Supported for environment versions 2.x and later.
   762  func (o EnvironmentOutput) StartupScriptS3Path() pulumi.StringPtrOutput {
   763  	return o.ApplyT(func(v *Environment) pulumi.StringPtrOutput { return v.StartupScriptS3Path }).(pulumi.StringPtrOutput)
   764  }
   765  
   766  // The status of the Amazon MWAA Environment
   767  func (o EnvironmentOutput) Status() pulumi.StringOutput {
   768  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput)
   769  }
   770  
   771  // A map of resource tags to associate with the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   772  func (o EnvironmentOutput) Tags() pulumi.StringMapOutput {
   773  	return o.ApplyT(func(v *Environment) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   774  }
   775  
   776  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   777  //
   778  // Deprecated: Please use `tags` instead.
   779  func (o EnvironmentOutput) TagsAll() pulumi.StringMapOutput {
   780  	return o.ApplyT(func(v *Environment) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   781  }
   782  
   783  // Specifies whether the webserver should be accessible over the internet or via your specified VPC. Possible options: `PRIVATE_ONLY` (default) and `PUBLIC_ONLY`.
   784  func (o EnvironmentOutput) WebserverAccessMode() pulumi.StringOutput {
   785  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.WebserverAccessMode }).(pulumi.StringOutput)
   786  }
   787  
   788  // The webserver URL of the MWAA Environment
   789  func (o EnvironmentOutput) WebserverUrl() pulumi.StringOutput {
   790  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.WebserverUrl }).(pulumi.StringOutput)
   791  }
   792  
   793  // The VPC endpoint for the environment's web server
   794  func (o EnvironmentOutput) WebserverVpcEndpointService() pulumi.StringOutput {
   795  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.WebserverVpcEndpointService }).(pulumi.StringOutput)
   796  }
   797  
   798  // Specifies the start date for the weekly maintenance window.
   799  func (o EnvironmentOutput) WeeklyMaintenanceWindowStart() pulumi.StringOutput {
   800  	return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.WeeklyMaintenanceWindowStart }).(pulumi.StringOutput)
   801  }
   802  
   803  type EnvironmentArrayOutput struct{ *pulumi.OutputState }
   804  
   805  func (EnvironmentArrayOutput) ElementType() reflect.Type {
   806  	return reflect.TypeOf((*[]*Environment)(nil)).Elem()
   807  }
   808  
   809  func (o EnvironmentArrayOutput) ToEnvironmentArrayOutput() EnvironmentArrayOutput {
   810  	return o
   811  }
   812  
   813  func (o EnvironmentArrayOutput) ToEnvironmentArrayOutputWithContext(ctx context.Context) EnvironmentArrayOutput {
   814  	return o
   815  }
   816  
   817  func (o EnvironmentArrayOutput) Index(i pulumi.IntInput) EnvironmentOutput {
   818  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Environment {
   819  		return vs[0].([]*Environment)[vs[1].(int)]
   820  	}).(EnvironmentOutput)
   821  }
   822  
   823  type EnvironmentMapOutput struct{ *pulumi.OutputState }
   824  
   825  func (EnvironmentMapOutput) ElementType() reflect.Type {
   826  	return reflect.TypeOf((*map[string]*Environment)(nil)).Elem()
   827  }
   828  
   829  func (o EnvironmentMapOutput) ToEnvironmentMapOutput() EnvironmentMapOutput {
   830  	return o
   831  }
   832  
   833  func (o EnvironmentMapOutput) ToEnvironmentMapOutputWithContext(ctx context.Context) EnvironmentMapOutput {
   834  	return o
   835  }
   836  
   837  func (o EnvironmentMapOutput) MapIndex(k pulumi.StringInput) EnvironmentOutput {
   838  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Environment {
   839  		return vs[0].(map[string]*Environment)[vs[1].(string)]
   840  	}).(EnvironmentOutput)
   841  }
   842  
   843  func init() {
   844  	pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentInput)(nil)).Elem(), &Environment{})
   845  	pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentArrayInput)(nil)).Elem(), EnvironmentArray{})
   846  	pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentMapInput)(nil)).Elem(), EnvironmentMap{})
   847  	pulumi.RegisterOutputType(EnvironmentOutput{})
   848  	pulumi.RegisterOutputType(EnvironmentArrayOutput{})
   849  	pulumi.RegisterOutputType(EnvironmentMapOutput{})
   850  }