All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.aws.mwaa.inputs.EnvironmentState Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.

There is a newer version: 6.66.3
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.aws.mwaa.inputs;

import com.pulumi.aws.mwaa.inputs.EnvironmentLastUpdatedArgs;
import com.pulumi.aws.mwaa.inputs.EnvironmentLoggingConfigurationArgs;
import com.pulumi.aws.mwaa.inputs.EnvironmentNetworkConfigurationArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class EnvironmentState extends com.pulumi.resources.ResourceArgs {

    public static final EnvironmentState Empty = new EnvironmentState();

    /**
     * The `airflow_configuration_options` 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.
     * 
     */
    @Import(name="airflowConfigurationOptions")
    private @Nullable Output> airflowConfigurationOptions;

    /**
     * @return The `airflow_configuration_options` 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.
     * 
     */
    public Optional>> airflowConfigurationOptions() {
        return Optional.ofNullable(this.airflowConfigurationOptions);
    }

    /**
     * Airflow version of your environment, will be set by default to the latest version that MWAA supports.
     * 
     */
    @Import(name="airflowVersion")
    private @Nullable Output airflowVersion;

    /**
     * @return Airflow version of your environment, will be set by default to the latest version that MWAA supports.
     * 
     */
    public Optional> airflowVersion() {
        return Optional.ofNullable(this.airflowVersion);
    }

    /**
     * The ARN of the MWAA Environment
     * 
     */
    @Import(name="arn")
    private @Nullable Output arn;

    /**
     * @return The ARN of the MWAA Environment
     * 
     */
    public Optional> arn() {
        return Optional.ofNullable(this.arn);
    }

    /**
     * The Created At date of the MWAA Environment
     * 
     */
    @Import(name="createdAt")
    private @Nullable Output createdAt;

    /**
     * @return The Created At date of the MWAA Environment
     * 
     */
    public Optional> createdAt() {
        return Optional.ofNullable(this.createdAt);
    }

    /**
     * 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).
     * 
     */
    @Import(name="dagS3Path")
    private @Nullable Output dagS3Path;

    /**
     * @return 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).
     * 
     */
    public Optional> dagS3Path() {
        return Optional.ofNullable(this.dagS3Path);
    }

    /**
     * The VPC endpoint for the environment's Amazon RDS database
     * * `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
     * 
     */
    @Import(name="databaseVpcEndpointService")
    private @Nullable Output databaseVpcEndpointService;

    /**
     * @return The VPC endpoint for the environment's Amazon RDS database
     * * `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
     * 
     */
    public Optional> databaseVpcEndpointService() {
        return Optional.ofNullable(this.databaseVpcEndpointService);
    }

    /**
     * Defines whether the VPC endpoints configured for the environment are created and managed by the customer or by AWS. If set to `SERVICE`, Amazon MWAA will create and manage the required VPC endpoints in your VPC. If set to `CUSTOMER`, you must create, and manage, the VPC endpoints for your VPC. Defaults to `SERVICE` if not set.
     * 
     */
    @Import(name="endpointManagement")
    private @Nullable Output endpointManagement;

    /**
     * @return Defines whether the VPC endpoints configured for the environment are created and managed by the customer or by AWS. If set to `SERVICE`, Amazon MWAA will create and manage the required VPC endpoints in your VPC. If set to `CUSTOMER`, you must create, and manage, the VPC endpoints for your VPC. Defaults to `SERVICE` if not set.
     * 
     */
    public Optional> endpointManagement() {
        return Optional.ofNullable(this.endpointManagement);
    }

    /**
     * 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.
     * 
     */
    @Import(name="environmentClass")
    private @Nullable Output environmentClass;

    /**
     * @return 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.
     * 
     */
    public Optional> environmentClass() {
        return Optional.ofNullable(this.environmentClass);
    }

    /**
     * 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.
     * 
     */
    @Import(name="executionRoleArn")
    private @Nullable Output executionRoleArn;

    /**
     * @return 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.
     * 
     */
    public Optional> executionRoleArn() {
        return Optional.ofNullable(this.executionRoleArn);
    }

    /**
     * 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.
     * 
     */
    @Import(name="kmsKey")
    private @Nullable Output kmsKey;

    /**
     * @return 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.
     * 
     */
    public Optional> kmsKey() {
        return Optional.ofNullable(this.kmsKey);
    }

    @Import(name="lastUpdateds")
    private @Nullable Output> lastUpdateds;

    public Optional>> lastUpdateds() {
        return Optional.ofNullable(this.lastUpdateds);
    }

    /**
     * The Apache Airflow logs you want to send to Amazon CloudWatch Logs. See `logging_configuration` Block for details.
     * 
     */
    @Import(name="loggingConfiguration")
    private @Nullable Output loggingConfiguration;

    /**
     * @return The Apache Airflow logs you want to send to Amazon CloudWatch Logs. See `logging_configuration` Block for details.
     * 
     */
    public Optional> loggingConfiguration() {
        return Optional.ofNullable(this.loggingConfiguration);
    }

    /**
     * The maximum number of web servers that you want to run in your environment. Value need to be between `2` and `5`. Will be `2` by default.
     * 
     */
    @Import(name="maxWebservers")
    private @Nullable Output maxWebservers;

    /**
     * @return The maximum number of web servers that you want to run in your environment. Value need to be between `2` and `5`. Will be `2` by default.
     * 
     */
    public Optional> maxWebservers() {
        return Optional.ofNullable(this.maxWebservers);
    }

    /**
     * The maximum number of workers that can be automatically scaled up. Value need to be between `1` and `25`. Will be `10` by default.
     * 
     */
    @Import(name="maxWorkers")
    private @Nullable Output maxWorkers;

    /**
     * @return The maximum number of workers that can be automatically scaled up. Value need to be between `1` and `25`. Will be `10` by default.
     * 
     */
    public Optional> maxWorkers() {
        return Optional.ofNullable(this.maxWorkers);
    }

    /**
     * The minimum number of web servers that you want to run in your environment. Value need to be between `2` and `5`. Will be `2` by default.
     * 
     */
    @Import(name="minWebservers")
    private @Nullable Output minWebservers;

    /**
     * @return The minimum number of web servers that you want to run in your environment. Value need to be between `2` and `5`. Will be `2` by default.
     * 
     */
    public Optional> minWebservers() {
        return Optional.ofNullable(this.minWebservers);
    }

    /**
     * The minimum number of workers that you want to run in your environment. Will be `1` by default.
     * 
     */
    @Import(name="minWorkers")
    private @Nullable Output minWorkers;

    /**
     * @return The minimum number of workers that you want to run in your environment. Will be `1` by default.
     * 
     */
    public Optional> minWorkers() {
        return Optional.ofNullable(this.minWorkers);
    }

    /**
     * The name of the Apache Airflow Environment
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return The name of the Apache Airflow Environment
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * 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` Block for details.
     * 
     */
    @Import(name="networkConfiguration")
    private @Nullable Output networkConfiguration;

    /**
     * @return 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` Block for details.
     * 
     */
    public Optional> networkConfiguration() {
        return Optional.ofNullable(this.networkConfiguration);
    }

    /**
     * The plugins.zip file version you want to use.
     * 
     */
    @Import(name="pluginsS3ObjectVersion")
    private @Nullable Output pluginsS3ObjectVersion;

    /**
     * @return The plugins.zip file version you want to use.
     * 
     */
    public Optional> pluginsS3ObjectVersion() {
        return Optional.ofNullable(this.pluginsS3ObjectVersion);
    }

    /**
     * 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 plugins_s3_object_version is required. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
     * 
     */
    @Import(name="pluginsS3Path")
    private @Nullable Output pluginsS3Path;

    /**
     * @return 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 plugins_s3_object_version is required. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
     * 
     */
    public Optional> pluginsS3Path() {
        return Optional.ofNullable(this.pluginsS3Path);
    }

    /**
     * The requirements.txt file version you want to use.
     * 
     */
    @Import(name="requirementsS3ObjectVersion")
    private @Nullable Output requirementsS3ObjectVersion;

    /**
     * @return The requirements.txt file version you want to use.
     * 
     */
    public Optional> requirementsS3ObjectVersion() {
        return Optional.ofNullable(this.requirementsS3ObjectVersion);
    }

    /**
     * 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 requirements_s3_object_version is required. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
     * 
     */
    @Import(name="requirementsS3Path")
    private @Nullable Output requirementsS3Path;

    /**
     * @return 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 requirements_s3_object_version is required. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
     * 
     */
    public Optional> requirementsS3Path() {
        return Optional.ofNullable(this.requirementsS3Path);
    }

    /**
     * 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`.
     * 
     */
    @Import(name="schedulers")
    private @Nullable Output schedulers;

    /**
     * @return 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`.
     * 
     */
    public Optional> schedulers() {
        return Optional.ofNullable(this.schedulers);
    }

    /**
     * The Service Role ARN of the Amazon MWAA Environment
     * 
     */
    @Import(name="serviceRoleArn")
    private @Nullable Output serviceRoleArn;

    /**
     * @return The Service Role ARN of the Amazon MWAA Environment
     * 
     */
    public Optional> serviceRoleArn() {
        return Optional.ofNullable(this.serviceRoleArn);
    }

    /**
     * The Amazon Resource Name (ARN) of your Amazon S3 storage bucket. For example, arn:aws:s3:::airflow-mybucketname.
     * 
     */
    @Import(name="sourceBucketArn")
    private @Nullable Output sourceBucketArn;

    /**
     * @return The Amazon Resource Name (ARN) of your Amazon S3 storage bucket. For example, arn:aws:s3:::airflow-mybucketname.
     * 
     */
    public Optional> sourceBucketArn() {
        return Optional.ofNullable(this.sourceBucketArn);
    }

    /**
     * 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.
     * 
     */
    @Import(name="startupScriptS3ObjectVersion")
    private @Nullable Output startupScriptS3ObjectVersion;

    /**
     * @return 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.
     * 
     */
    public Optional> startupScriptS3ObjectVersion() {
        return Optional.ofNullable(this.startupScriptS3ObjectVersion);
    }

    /**
     * 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.
     * 
     */
    @Import(name="startupScriptS3Path")
    private @Nullable Output startupScriptS3Path;

    /**
     * @return 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.
     * 
     */
    public Optional> startupScriptS3Path() {
        return Optional.ofNullable(this.startupScriptS3Path);
    }

    /**
     * The status of the Amazon MWAA Environment
     * 
     */
    @Import(name="status")
    private @Nullable Output status;

    /**
     * @return The status of the Amazon MWAA Environment
     * 
     */
    public Optional> status() {
        return Optional.ofNullable(this.status);
    }

    /**
     * A map of resource tags to associate with the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return A map of resource tags to associate with the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
     * 
     * @deprecated
     * Please use `tags` instead.
     * 
     */
    @Deprecated /* Please use `tags` instead. */
    @Import(name="tagsAll")
    private @Nullable Output> tagsAll;

    /**
     * @return A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
     * 
     * @deprecated
     * Please use `tags` instead.
     * 
     */
    @Deprecated /* Please use `tags` instead. */
    public Optional>> tagsAll() {
        return Optional.ofNullable(this.tagsAll);
    }

    /**
     * Specifies whether the webserver should be accessible over the internet or via your specified VPC. Possible options: `PRIVATE_ONLY` (default) and `PUBLIC_ONLY`.
     * 
     */
    @Import(name="webserverAccessMode")
    private @Nullable Output webserverAccessMode;

    /**
     * @return Specifies whether the webserver should be accessible over the internet or via your specified VPC. Possible options: `PRIVATE_ONLY` (default) and `PUBLIC_ONLY`.
     * 
     */
    public Optional> webserverAccessMode() {
        return Optional.ofNullable(this.webserverAccessMode);
    }

    /**
     * The webserver URL of the MWAA Environment
     * 
     */
    @Import(name="webserverUrl")
    private @Nullable Output webserverUrl;

    /**
     * @return The webserver URL of the MWAA Environment
     * 
     */
    public Optional> webserverUrl() {
        return Optional.ofNullable(this.webserverUrl);
    }

    /**
     * The VPC endpoint for the environment's web server
     * 
     */
    @Import(name="webserverVpcEndpointService")
    private @Nullable Output webserverVpcEndpointService;

    /**
     * @return The VPC endpoint for the environment's web server
     * 
     */
    public Optional> webserverVpcEndpointService() {
        return Optional.ofNullable(this.webserverVpcEndpointService);
    }

    /**
     * Specifies the start date for the weekly maintenance window.
     * 
     */
    @Import(name="weeklyMaintenanceWindowStart")
    private @Nullable Output weeklyMaintenanceWindowStart;

    /**
     * @return Specifies the start date for the weekly maintenance window.
     * 
     */
    public Optional> weeklyMaintenanceWindowStart() {
        return Optional.ofNullable(this.weeklyMaintenanceWindowStart);
    }

    private EnvironmentState() {}

    private EnvironmentState(EnvironmentState $) {
        this.airflowConfigurationOptions = $.airflowConfigurationOptions;
        this.airflowVersion = $.airflowVersion;
        this.arn = $.arn;
        this.createdAt = $.createdAt;
        this.dagS3Path = $.dagS3Path;
        this.databaseVpcEndpointService = $.databaseVpcEndpointService;
        this.endpointManagement = $.endpointManagement;
        this.environmentClass = $.environmentClass;
        this.executionRoleArn = $.executionRoleArn;
        this.kmsKey = $.kmsKey;
        this.lastUpdateds = $.lastUpdateds;
        this.loggingConfiguration = $.loggingConfiguration;
        this.maxWebservers = $.maxWebservers;
        this.maxWorkers = $.maxWorkers;
        this.minWebservers = $.minWebservers;
        this.minWorkers = $.minWorkers;
        this.name = $.name;
        this.networkConfiguration = $.networkConfiguration;
        this.pluginsS3ObjectVersion = $.pluginsS3ObjectVersion;
        this.pluginsS3Path = $.pluginsS3Path;
        this.requirementsS3ObjectVersion = $.requirementsS3ObjectVersion;
        this.requirementsS3Path = $.requirementsS3Path;
        this.schedulers = $.schedulers;
        this.serviceRoleArn = $.serviceRoleArn;
        this.sourceBucketArn = $.sourceBucketArn;
        this.startupScriptS3ObjectVersion = $.startupScriptS3ObjectVersion;
        this.startupScriptS3Path = $.startupScriptS3Path;
        this.status = $.status;
        this.tags = $.tags;
        this.tagsAll = $.tagsAll;
        this.webserverAccessMode = $.webserverAccessMode;
        this.webserverUrl = $.webserverUrl;
        this.webserverVpcEndpointService = $.webserverVpcEndpointService;
        this.weeklyMaintenanceWindowStart = $.weeklyMaintenanceWindowStart;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(EnvironmentState defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private EnvironmentState $;

        public Builder() {
            $ = new EnvironmentState();
        }

        public Builder(EnvironmentState defaults) {
            $ = new EnvironmentState(Objects.requireNonNull(defaults));
        }

        /**
         * @param airflowConfigurationOptions The `airflow_configuration_options` 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.
         * 
         * @return builder
         * 
         */
        public Builder airflowConfigurationOptions(@Nullable Output> airflowConfigurationOptions) {
            $.airflowConfigurationOptions = airflowConfigurationOptions;
            return this;
        }

        /**
         * @param airflowConfigurationOptions The `airflow_configuration_options` 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.
         * 
         * @return builder
         * 
         */
        public Builder airflowConfigurationOptions(Map airflowConfigurationOptions) {
            return airflowConfigurationOptions(Output.of(airflowConfigurationOptions));
        }

        /**
         * @param airflowVersion Airflow version of your environment, will be set by default to the latest version that MWAA supports.
         * 
         * @return builder
         * 
         */
        public Builder airflowVersion(@Nullable Output airflowVersion) {
            $.airflowVersion = airflowVersion;
            return this;
        }

        /**
         * @param airflowVersion Airflow version of your environment, will be set by default to the latest version that MWAA supports.
         * 
         * @return builder
         * 
         */
        public Builder airflowVersion(String airflowVersion) {
            return airflowVersion(Output.of(airflowVersion));
        }

        /**
         * @param arn The ARN of the MWAA Environment
         * 
         * @return builder
         * 
         */
        public Builder arn(@Nullable Output arn) {
            $.arn = arn;
            return this;
        }

        /**
         * @param arn The ARN of the MWAA Environment
         * 
         * @return builder
         * 
         */
        public Builder arn(String arn) {
            return arn(Output.of(arn));
        }

        /**
         * @param createdAt The Created At date of the MWAA Environment
         * 
         * @return builder
         * 
         */
        public Builder createdAt(@Nullable Output createdAt) {
            $.createdAt = createdAt;
            return this;
        }

        /**
         * @param createdAt The Created At date of the MWAA Environment
         * 
         * @return builder
         * 
         */
        public Builder createdAt(String createdAt) {
            return createdAt(Output.of(createdAt));
        }

        /**
         * @param dagS3Path 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).
         * 
         * @return builder
         * 
         */
        public Builder dagS3Path(@Nullable Output dagS3Path) {
            $.dagS3Path = dagS3Path;
            return this;
        }

        /**
         * @param dagS3Path 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).
         * 
         * @return builder
         * 
         */
        public Builder dagS3Path(String dagS3Path) {
            return dagS3Path(Output.of(dagS3Path));
        }

        /**
         * @param databaseVpcEndpointService The VPC endpoint for the environment's Amazon RDS database
         * * `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
         * 
         * @return builder
         * 
         */
        public Builder databaseVpcEndpointService(@Nullable Output databaseVpcEndpointService) {
            $.databaseVpcEndpointService = databaseVpcEndpointService;
            return this;
        }

        /**
         * @param databaseVpcEndpointService The VPC endpoint for the environment's Amazon RDS database
         * * `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
         * 
         * @return builder
         * 
         */
        public Builder databaseVpcEndpointService(String databaseVpcEndpointService) {
            return databaseVpcEndpointService(Output.of(databaseVpcEndpointService));
        }

        /**
         * @param endpointManagement Defines whether the VPC endpoints configured for the environment are created and managed by the customer or by AWS. If set to `SERVICE`, Amazon MWAA will create and manage the required VPC endpoints in your VPC. If set to `CUSTOMER`, you must create, and manage, the VPC endpoints for your VPC. Defaults to `SERVICE` if not set.
         * 
         * @return builder
         * 
         */
        public Builder endpointManagement(@Nullable Output endpointManagement) {
            $.endpointManagement = endpointManagement;
            return this;
        }

        /**
         * @param endpointManagement Defines whether the VPC endpoints configured for the environment are created and managed by the customer or by AWS. If set to `SERVICE`, Amazon MWAA will create and manage the required VPC endpoints in your VPC. If set to `CUSTOMER`, you must create, and manage, the VPC endpoints for your VPC. Defaults to `SERVICE` if not set.
         * 
         * @return builder
         * 
         */
        public Builder endpointManagement(String endpointManagement) {
            return endpointManagement(Output.of(endpointManagement));
        }

        /**
         * @param environmentClass 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.
         * 
         * @return builder
         * 
         */
        public Builder environmentClass(@Nullable Output environmentClass) {
            $.environmentClass = environmentClass;
            return this;
        }

        /**
         * @param environmentClass 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.
         * 
         * @return builder
         * 
         */
        public Builder environmentClass(String environmentClass) {
            return environmentClass(Output.of(environmentClass));
        }

        /**
         * @param executionRoleArn 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.
         * 
         * @return builder
         * 
         */
        public Builder executionRoleArn(@Nullable Output executionRoleArn) {
            $.executionRoleArn = executionRoleArn;
            return this;
        }

        /**
         * @param executionRoleArn 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.
         * 
         * @return builder
         * 
         */
        public Builder executionRoleArn(String executionRoleArn) {
            return executionRoleArn(Output.of(executionRoleArn));
        }

        /**
         * @param kmsKey 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.
         * 
         * @return builder
         * 
         */
        public Builder kmsKey(@Nullable Output kmsKey) {
            $.kmsKey = kmsKey;
            return this;
        }

        /**
         * @param kmsKey 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.
         * 
         * @return builder
         * 
         */
        public Builder kmsKey(String kmsKey) {
            return kmsKey(Output.of(kmsKey));
        }

        public Builder lastUpdateds(@Nullable Output> lastUpdateds) {
            $.lastUpdateds = lastUpdateds;
            return this;
        }

        public Builder lastUpdateds(List lastUpdateds) {
            return lastUpdateds(Output.of(lastUpdateds));
        }

        public Builder lastUpdateds(EnvironmentLastUpdatedArgs... lastUpdateds) {
            return lastUpdateds(List.of(lastUpdateds));
        }

        /**
         * @param loggingConfiguration The Apache Airflow logs you want to send to Amazon CloudWatch Logs. See `logging_configuration` Block for details.
         * 
         * @return builder
         * 
         */
        public Builder loggingConfiguration(@Nullable Output loggingConfiguration) {
            $.loggingConfiguration = loggingConfiguration;
            return this;
        }

        /**
         * @param loggingConfiguration The Apache Airflow logs you want to send to Amazon CloudWatch Logs. See `logging_configuration` Block for details.
         * 
         * @return builder
         * 
         */
        public Builder loggingConfiguration(EnvironmentLoggingConfigurationArgs loggingConfiguration) {
            return loggingConfiguration(Output.of(loggingConfiguration));
        }

        /**
         * @param maxWebservers The maximum number of web servers that you want to run in your environment. Value need to be between `2` and `5`. Will be `2` by default.
         * 
         * @return builder
         * 
         */
        public Builder maxWebservers(@Nullable Output maxWebservers) {
            $.maxWebservers = maxWebservers;
            return this;
        }

        /**
         * @param maxWebservers The maximum number of web servers that you want to run in your environment. Value need to be between `2` and `5`. Will be `2` by default.
         * 
         * @return builder
         * 
         */
        public Builder maxWebservers(Integer maxWebservers) {
            return maxWebservers(Output.of(maxWebservers));
        }

        /**
         * @param maxWorkers The maximum number of workers that can be automatically scaled up. Value need to be between `1` and `25`. Will be `10` by default.
         * 
         * @return builder
         * 
         */
        public Builder maxWorkers(@Nullable Output maxWorkers) {
            $.maxWorkers = maxWorkers;
            return this;
        }

        /**
         * @param maxWorkers The maximum number of workers that can be automatically scaled up. Value need to be between `1` and `25`. Will be `10` by default.
         * 
         * @return builder
         * 
         */
        public Builder maxWorkers(Integer maxWorkers) {
            return maxWorkers(Output.of(maxWorkers));
        }

        /**
         * @param minWebservers The minimum number of web servers that you want to run in your environment. Value need to be between `2` and `5`. Will be `2` by default.
         * 
         * @return builder
         * 
         */
        public Builder minWebservers(@Nullable Output minWebservers) {
            $.minWebservers = minWebservers;
            return this;
        }

        /**
         * @param minWebservers The minimum number of web servers that you want to run in your environment. Value need to be between `2` and `5`. Will be `2` by default.
         * 
         * @return builder
         * 
         */
        public Builder minWebservers(Integer minWebservers) {
            return minWebservers(Output.of(minWebservers));
        }

        /**
         * @param minWorkers The minimum number of workers that you want to run in your environment. Will be `1` by default.
         * 
         * @return builder
         * 
         */
        public Builder minWorkers(@Nullable Output minWorkers) {
            $.minWorkers = minWorkers;
            return this;
        }

        /**
         * @param minWorkers The minimum number of workers that you want to run in your environment. Will be `1` by default.
         * 
         * @return builder
         * 
         */
        public Builder minWorkers(Integer minWorkers) {
            return minWorkers(Output.of(minWorkers));
        }

        /**
         * @param name The name of the Apache Airflow Environment
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name The name of the Apache Airflow Environment
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param networkConfiguration 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` Block for details.
         * 
         * @return builder
         * 
         */
        public Builder networkConfiguration(@Nullable Output networkConfiguration) {
            $.networkConfiguration = networkConfiguration;
            return this;
        }

        /**
         * @param networkConfiguration 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` Block for details.
         * 
         * @return builder
         * 
         */
        public Builder networkConfiguration(EnvironmentNetworkConfigurationArgs networkConfiguration) {
            return networkConfiguration(Output.of(networkConfiguration));
        }

        /**
         * @param pluginsS3ObjectVersion The plugins.zip file version you want to use.
         * 
         * @return builder
         * 
         */
        public Builder pluginsS3ObjectVersion(@Nullable Output pluginsS3ObjectVersion) {
            $.pluginsS3ObjectVersion = pluginsS3ObjectVersion;
            return this;
        }

        /**
         * @param pluginsS3ObjectVersion The plugins.zip file version you want to use.
         * 
         * @return builder
         * 
         */
        public Builder pluginsS3ObjectVersion(String pluginsS3ObjectVersion) {
            return pluginsS3ObjectVersion(Output.of(pluginsS3ObjectVersion));
        }

        /**
         * @param pluginsS3Path 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 plugins_s3_object_version is required. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
         * 
         * @return builder
         * 
         */
        public Builder pluginsS3Path(@Nullable Output pluginsS3Path) {
            $.pluginsS3Path = pluginsS3Path;
            return this;
        }

        /**
         * @param pluginsS3Path 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 plugins_s3_object_version is required. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
         * 
         * @return builder
         * 
         */
        public Builder pluginsS3Path(String pluginsS3Path) {
            return pluginsS3Path(Output.of(pluginsS3Path));
        }

        /**
         * @param requirementsS3ObjectVersion The requirements.txt file version you want to use.
         * 
         * @return builder
         * 
         */
        public Builder requirementsS3ObjectVersion(@Nullable Output requirementsS3ObjectVersion) {
            $.requirementsS3ObjectVersion = requirementsS3ObjectVersion;
            return this;
        }

        /**
         * @param requirementsS3ObjectVersion The requirements.txt file version you want to use.
         * 
         * @return builder
         * 
         */
        public Builder requirementsS3ObjectVersion(String requirementsS3ObjectVersion) {
            return requirementsS3ObjectVersion(Output.of(requirementsS3ObjectVersion));
        }

        /**
         * @param requirementsS3Path 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 requirements_s3_object_version is required. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
         * 
         * @return builder
         * 
         */
        public Builder requirementsS3Path(@Nullable Output requirementsS3Path) {
            $.requirementsS3Path = requirementsS3Path;
            return this;
        }

        /**
         * @param requirementsS3Path 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 requirements_s3_object_version is required. For more information, see [Importing DAGs on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import.html).
         * 
         * @return builder
         * 
         */
        public Builder requirementsS3Path(String requirementsS3Path) {
            return requirementsS3Path(Output.of(requirementsS3Path));
        }

        /**
         * @param schedulers 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`.
         * 
         * @return builder
         * 
         */
        public Builder schedulers(@Nullable Output schedulers) {
            $.schedulers = schedulers;
            return this;
        }

        /**
         * @param schedulers 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`.
         * 
         * @return builder
         * 
         */
        public Builder schedulers(Integer schedulers) {
            return schedulers(Output.of(schedulers));
        }

        /**
         * @param serviceRoleArn The Service Role ARN of the Amazon MWAA Environment
         * 
         * @return builder
         * 
         */
        public Builder serviceRoleArn(@Nullable Output serviceRoleArn) {
            $.serviceRoleArn = serviceRoleArn;
            return this;
        }

        /**
         * @param serviceRoleArn The Service Role ARN of the Amazon MWAA Environment
         * 
         * @return builder
         * 
         */
        public Builder serviceRoleArn(String serviceRoleArn) {
            return serviceRoleArn(Output.of(serviceRoleArn));
        }

        /**
         * @param sourceBucketArn The Amazon Resource Name (ARN) of your Amazon S3 storage bucket. For example, arn:aws:s3:::airflow-mybucketname.
         * 
         * @return builder
         * 
         */
        public Builder sourceBucketArn(@Nullable Output sourceBucketArn) {
            $.sourceBucketArn = sourceBucketArn;
            return this;
        }

        /**
         * @param sourceBucketArn The Amazon Resource Name (ARN) of your Amazon S3 storage bucket. For example, arn:aws:s3:::airflow-mybucketname.
         * 
         * @return builder
         * 
         */
        public Builder sourceBucketArn(String sourceBucketArn) {
            return sourceBucketArn(Output.of(sourceBucketArn));
        }

        /**
         * @param startupScriptS3ObjectVersion 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.
         * 
         * @return builder
         * 
         */
        public Builder startupScriptS3ObjectVersion(@Nullable Output startupScriptS3ObjectVersion) {
            $.startupScriptS3ObjectVersion = startupScriptS3ObjectVersion;
            return this;
        }

        /**
         * @param startupScriptS3ObjectVersion 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.
         * 
         * @return builder
         * 
         */
        public Builder startupScriptS3ObjectVersion(String startupScriptS3ObjectVersion) {
            return startupScriptS3ObjectVersion(Output.of(startupScriptS3ObjectVersion));
        }

        /**
         * @param startupScriptS3Path 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.
         * 
         * @return builder
         * 
         */
        public Builder startupScriptS3Path(@Nullable Output startupScriptS3Path) {
            $.startupScriptS3Path = startupScriptS3Path;
            return this;
        }

        /**
         * @param startupScriptS3Path 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.
         * 
         * @return builder
         * 
         */
        public Builder startupScriptS3Path(String startupScriptS3Path) {
            return startupScriptS3Path(Output.of(startupScriptS3Path));
        }

        /**
         * @param status The status of the Amazon MWAA Environment
         * 
         * @return builder
         * 
         */
        public Builder status(@Nullable Output status) {
            $.status = status;
            return this;
        }

        /**
         * @param status The status of the Amazon MWAA Environment
         * 
         * @return builder
         * 
         */
        public Builder status(String status) {
            return status(Output.of(status));
        }

        /**
         * @param tags A map of resource tags to associate with the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags A map of resource tags to associate with the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param tagsAll A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
         * 
         * @return builder
         * 
         * @deprecated
         * Please use `tags` instead.
         * 
         */
        @Deprecated /* Please use `tags` instead. */
        public Builder tagsAll(@Nullable Output> tagsAll) {
            $.tagsAll = tagsAll;
            return this;
        }

        /**
         * @param tagsAll A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
         * 
         * @return builder
         * 
         * @deprecated
         * Please use `tags` instead.
         * 
         */
        @Deprecated /* Please use `tags` instead. */
        public Builder tagsAll(Map tagsAll) {
            return tagsAll(Output.of(tagsAll));
        }

        /**
         * @param webserverAccessMode Specifies whether the webserver should be accessible over the internet or via your specified VPC. Possible options: `PRIVATE_ONLY` (default) and `PUBLIC_ONLY`.
         * 
         * @return builder
         * 
         */
        public Builder webserverAccessMode(@Nullable Output webserverAccessMode) {
            $.webserverAccessMode = webserverAccessMode;
            return this;
        }

        /**
         * @param webserverAccessMode Specifies whether the webserver should be accessible over the internet or via your specified VPC. Possible options: `PRIVATE_ONLY` (default) and `PUBLIC_ONLY`.
         * 
         * @return builder
         * 
         */
        public Builder webserverAccessMode(String webserverAccessMode) {
            return webserverAccessMode(Output.of(webserverAccessMode));
        }

        /**
         * @param webserverUrl The webserver URL of the MWAA Environment
         * 
         * @return builder
         * 
         */
        public Builder webserverUrl(@Nullable Output webserverUrl) {
            $.webserverUrl = webserverUrl;
            return this;
        }

        /**
         * @param webserverUrl The webserver URL of the MWAA Environment
         * 
         * @return builder
         * 
         */
        public Builder webserverUrl(String webserverUrl) {
            return webserverUrl(Output.of(webserverUrl));
        }

        /**
         * @param webserverVpcEndpointService The VPC endpoint for the environment's web server
         * 
         * @return builder
         * 
         */
        public Builder webserverVpcEndpointService(@Nullable Output webserverVpcEndpointService) {
            $.webserverVpcEndpointService = webserverVpcEndpointService;
            return this;
        }

        /**
         * @param webserverVpcEndpointService The VPC endpoint for the environment's web server
         * 
         * @return builder
         * 
         */
        public Builder webserverVpcEndpointService(String webserverVpcEndpointService) {
            return webserverVpcEndpointService(Output.of(webserverVpcEndpointService));
        }

        /**
         * @param weeklyMaintenanceWindowStart Specifies the start date for the weekly maintenance window.
         * 
         * @return builder
         * 
         */
        public Builder weeklyMaintenanceWindowStart(@Nullable Output weeklyMaintenanceWindowStart) {
            $.weeklyMaintenanceWindowStart = weeklyMaintenanceWindowStart;
            return this;
        }

        /**
         * @param weeklyMaintenanceWindowStart Specifies the start date for the weekly maintenance window.
         * 
         * @return builder
         * 
         */
        public Builder weeklyMaintenanceWindowStart(String weeklyMaintenanceWindowStart) {
            return weeklyMaintenanceWindowStart(Output.of(weeklyMaintenanceWindowStart));
        }

        public EnvironmentState build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy