aws_sdk_mwaa/operation/update_environment/
_update_environment_input.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
5pub struct UpdateEnvironmentInput {
6    /// <p>The name of your Amazon MWAA environment. For example, <code>MyMWAAEnvironment</code>.</p>
7    pub name: ::std::option::Option<::std::string::String>,
8    /// <p>The Amazon Resource Name (ARN) of the execution role in IAM that allows MWAA to access Amazon Web Services resources in your environment. For example, <code>arn:aws:iam::123456789:role/my-execution-role</code>. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-create-role.html">Amazon MWAA Execution role</a>.</p>
9    pub execution_role_arn: ::std::option::Option<::std::string::String>,
10    /// <p>A list of key-value pairs containing the Apache Airflow configuration options you want to attach to your environment. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-env-variables.html">Apache Airflow configuration options</a>.</p>
11    pub airflow_configuration_options: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
12    /// <p>The Apache Airflow version for your environment. To upgrade your environment, specify a newer version of Apache Airflow supported by Amazon MWAA.</p>
13    /// <p>Before you upgrade an environment, make sure your requirements, DAGs, plugins, and other resources used in your workflows are compatible with the new Apache Airflow version. For more information about updating your resources, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/upgrading-environment.html">Upgrading an Amazon MWAA environment</a>.</p>
14    /// <p>Valid values: <code>1.10.12</code>, <code>2.0.2</code>, <code>2.2.2</code>, <code>2.4.3</code>, <code>2.5.1</code>, <code>2.6.3</code>, <code>2.7.2</code>, <code>2.8.1</code>, <code>2.9.2</code>, <code>2.10.1</code>, and <code>2.10.3</code>.</p>
15    pub airflow_version: ::std::option::Option<::std::string::String>,
16    /// <p>The relative path to the DAGs folder on your Amazon S3 bucket. For example, <code>dags</code>. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-folder.html">Adding or updating DAGs</a>.</p>
17    pub dag_s3_path: ::std::option::Option<::std::string::String>,
18    /// <p>The environment class type. Valid values: <code>mw1.micro</code>, <code>mw1.small</code>, <code>mw1.medium</code>, <code>mw1.large</code>, <code>mw1.xlarge</code>, and <code>mw1.2xlarge</code>. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/environment-class.html">Amazon MWAA environment class</a>.</p>
19    pub environment_class: ::std::option::Option<::std::string::String>,
20    /// <p>The Apache Airflow log types to send to CloudWatch Logs.</p>
21    pub logging_configuration: ::std::option::Option<crate::types::LoggingConfigurationInput>,
22    /// <p>The maximum number of workers that you want to run in your environment. MWAA scales the number of Apache Airflow workers up to the number you specify in the <code>MaxWorkers</code> field. For example, <code>20</code>. When there are no more tasks running, and no more in the queue, MWAA disposes of the extra workers leaving the one worker that is included with your environment, or the number you specify in <code>MinWorkers</code>.</p>
23    pub max_workers: ::std::option::Option<i32>,
24    /// <p>The minimum number of workers that you want to run in your environment. MWAA scales the number of Apache Airflow workers up to the number you specify in the <code>MaxWorkers</code> field. When there are no more tasks running, and no more in the queue, MWAA disposes of the extra workers leaving the worker count you specify in the <code>MinWorkers</code> field. For example, <code>2</code>.</p>
25    pub min_workers: ::std::option::Option<i32>,
26    /// <p>The maximum number of web servers that you want to run in your environment. Amazon MWAA scales the number of Apache Airflow web servers up to the number you specify for <code>MaxWebservers</code> when you interact with your Apache Airflow environment using Apache Airflow REST API, or the Apache Airflow CLI. For example, in scenarios where your workload requires network calls to the Apache Airflow REST API with a high transaction-per-second (TPS) rate, Amazon MWAA will increase the number of web servers up to the number set in <code>MaxWebserers</code>. As TPS rates decrease Amazon MWAA disposes of the additional web servers, and scales down to the number set in <code>MinxWebserers</code>.</p>
27    /// <p>Valid values: For environments larger than mw1.micro, accepts values from <code>2</code> to <code>5</code>. Defaults to <code>2</code> for all environment sizes except mw1.micro, which defaults to <code>1</code>.</p>
28    pub max_webservers: ::std::option::Option<i32>,
29    /// <p>The minimum number of web servers that you want to run in your environment. Amazon MWAA scales the number of Apache Airflow web servers up to the number you specify for <code>MaxWebservers</code> when you interact with your Apache Airflow environment using Apache Airflow REST API, or the Apache Airflow CLI. As the transaction-per-second rate, and the network load, decrease, Amazon MWAA disposes of the additional web servers, and scales down to the number set in <code>MinxWebserers</code>.</p>
30    /// <p>Valid values: For environments larger than mw1.micro, accepts values from <code>2</code> to <code>5</code>. Defaults to <code>2</code> for all environment sizes except mw1.micro, which defaults to <code>1</code>.</p>
31    pub min_webservers: ::std::option::Option<i32>,
32    /// <p>The worker replacement strategy to use when updating the environment.</p>
33    /// <p>You can select one of the following strategies:</p>
34    /// <ul>
35    /// <li>
36    /// <p><b>Forced -</b> Stops and replaces Apache Airflow workers without waiting for tasks to complete before an update.</p></li>
37    /// <li>
38    /// <p><b>Graceful -</b> Allows Apache Airflow workers to complete running tasks for up to 12 hours during an update before they're stopped and replaced.</p></li>
39    /// </ul>
40    pub worker_replacement_strategy: ::std::option::Option<crate::types::WorkerReplacementStrategy>,
41    /// <p>The VPC networking components used to secure and enable network traffic between the Amazon Web Services resources for your environment. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/networking-about.html">About networking on Amazon MWAA</a>.</p>
42    pub network_configuration: ::std::option::Option<crate::types::UpdateNetworkConfigurationInput>,
43    /// <p>The relative path to the <code>plugins.zip</code> file on your Amazon S3 bucket. For example, <code>plugins.zip</code>. If specified, then the plugins.zip version is required. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import-plugins.html">Installing custom plugins</a>.</p>
44    pub plugins_s3_path: ::std::option::Option<::std::string::String>,
45    /// <p>The version of the plugins.zip file on your Amazon S3 bucket. You must specify a version each time a <code>plugins.zip</code> file is updated. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/versioning-workflows.html">How S3 Versioning works</a>.</p>
46    pub plugins_s3_object_version: ::std::option::Option<::std::string::String>,
47    /// <p>The relative path to the <code>requirements.txt</code> file on your Amazon S3 bucket. For example, <code>requirements.txt</code>. If specified, then a file version is required. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/working-dags-dependencies.html">Installing Python dependencies</a>.</p>
48    pub requirements_s3_path: ::std::option::Option<::std::string::String>,
49    /// <p>The version of the requirements.txt file on your Amazon S3 bucket. You must specify a version each time a <code>requirements.txt</code> file is updated. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/versioning-workflows.html">How S3 Versioning works</a>.</p>
50    pub requirements_s3_object_version: ::std::option::Option<::std::string::String>,
51    /// <p>The number of Apache Airflow schedulers to run in your Amazon MWAA environment.</p>
52    pub schedulers: ::std::option::Option<i32>,
53    /// <p>The Amazon Resource Name (ARN) of the Amazon S3 bucket where your DAG code and supporting files are stored. For example, <code>arn:aws:s3:::my-airflow-bucket-unique-name</code>. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-s3-bucket.html">Create an Amazon S3 bucket for Amazon MWAA</a>.</p>
54    pub source_bucket_arn: ::std::option::Option<::std::string::String>,
55    /// <p>The relative path to the startup shell script in your Amazon S3 bucket. For example, <code>s3://mwaa-environment/startup.sh</code>.</p>
56    /// <p>Amazon MWAA runs the script as your environment starts, and before running the Apache Airflow process. You can use this script to install dependencies, modify Apache Airflow configuration options, and set environment variables. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/using-startup-script.html">Using a startup script</a>.</p>
57    pub startup_script_s3_path: ::std::option::Option<::std::string::String>,
58    /// <p>The version of the startup shell script in your Amazon S3 bucket. You must specify the <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/versioning-workflows.html">version ID</a> that Amazon S3 assigns to the file every time you update the script.</p>
59    /// <p>Version IDs are Unicode, UTF-8 encoded, URL-ready, opaque strings that are no more than 1,024 bytes long. The following is an example:</p>
60    /// <p><code>3sL4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo</code></p>
61    /// <p>For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/using-startup-script.html">Using a startup script</a>.</p>
62    pub startup_script_s3_object_version: ::std::option::Option<::std::string::String>,
63    /// <p>The Apache Airflow <i>Web server</i> access mode. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-networking.html">Apache Airflow access modes</a>.</p>
64    pub webserver_access_mode: ::std::option::Option<crate::types::WebserverAccessMode>,
65    /// <p>The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time to start weekly maintenance updates of your environment in the following format: <code>DAY:HH:MM</code>. For example: <code>TUE:03:30</code>. You can specify a start time in 30 minute increments only.</p>
66    pub weekly_maintenance_window_start: ::std::option::Option<::std::string::String>,
67}
68impl UpdateEnvironmentInput {
69    /// <p>The name of your Amazon MWAA environment. For example, <code>MyMWAAEnvironment</code>.</p>
70    pub fn name(&self) -> ::std::option::Option<&str> {
71        self.name.as_deref()
72    }
73    /// <p>The Amazon Resource Name (ARN) of the execution role in IAM that allows MWAA to access Amazon Web Services resources in your environment. For example, <code>arn:aws:iam::123456789:role/my-execution-role</code>. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-create-role.html">Amazon MWAA Execution role</a>.</p>
74    pub fn execution_role_arn(&self) -> ::std::option::Option<&str> {
75        self.execution_role_arn.as_deref()
76    }
77    /// <p>A list of key-value pairs containing the Apache Airflow configuration options you want to attach to your environment. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-env-variables.html">Apache Airflow configuration options</a>.</p>
78    pub fn airflow_configuration_options(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
79        self.airflow_configuration_options.as_ref()
80    }
81    /// <p>The Apache Airflow version for your environment. To upgrade your environment, specify a newer version of Apache Airflow supported by Amazon MWAA.</p>
82    /// <p>Before you upgrade an environment, make sure your requirements, DAGs, plugins, and other resources used in your workflows are compatible with the new Apache Airflow version. For more information about updating your resources, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/upgrading-environment.html">Upgrading an Amazon MWAA environment</a>.</p>
83    /// <p>Valid values: <code>1.10.12</code>, <code>2.0.2</code>, <code>2.2.2</code>, <code>2.4.3</code>, <code>2.5.1</code>, <code>2.6.3</code>, <code>2.7.2</code>, <code>2.8.1</code>, <code>2.9.2</code>, <code>2.10.1</code>, and <code>2.10.3</code>.</p>
84    pub fn airflow_version(&self) -> ::std::option::Option<&str> {
85        self.airflow_version.as_deref()
86    }
87    /// <p>The relative path to the DAGs folder on your Amazon S3 bucket. For example, <code>dags</code>. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-folder.html">Adding or updating DAGs</a>.</p>
88    pub fn dag_s3_path(&self) -> ::std::option::Option<&str> {
89        self.dag_s3_path.as_deref()
90    }
91    /// <p>The environment class type. Valid values: <code>mw1.micro</code>, <code>mw1.small</code>, <code>mw1.medium</code>, <code>mw1.large</code>, <code>mw1.xlarge</code>, and <code>mw1.2xlarge</code>. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/environment-class.html">Amazon MWAA environment class</a>.</p>
92    pub fn environment_class(&self) -> ::std::option::Option<&str> {
93        self.environment_class.as_deref()
94    }
95    /// <p>The Apache Airflow log types to send to CloudWatch Logs.</p>
96    pub fn logging_configuration(&self) -> ::std::option::Option<&crate::types::LoggingConfigurationInput> {
97        self.logging_configuration.as_ref()
98    }
99    /// <p>The maximum number of workers that you want to run in your environment. MWAA scales the number of Apache Airflow workers up to the number you specify in the <code>MaxWorkers</code> field. For example, <code>20</code>. When there are no more tasks running, and no more in the queue, MWAA disposes of the extra workers leaving the one worker that is included with your environment, or the number you specify in <code>MinWorkers</code>.</p>
100    pub fn max_workers(&self) -> ::std::option::Option<i32> {
101        self.max_workers
102    }
103    /// <p>The minimum number of workers that you want to run in your environment. MWAA scales the number of Apache Airflow workers up to the number you specify in the <code>MaxWorkers</code> field. When there are no more tasks running, and no more in the queue, MWAA disposes of the extra workers leaving the worker count you specify in the <code>MinWorkers</code> field. For example, <code>2</code>.</p>
104    pub fn min_workers(&self) -> ::std::option::Option<i32> {
105        self.min_workers
106    }
107    /// <p>The maximum number of web servers that you want to run in your environment. Amazon MWAA scales the number of Apache Airflow web servers up to the number you specify for <code>MaxWebservers</code> when you interact with your Apache Airflow environment using Apache Airflow REST API, or the Apache Airflow CLI. For example, in scenarios where your workload requires network calls to the Apache Airflow REST API with a high transaction-per-second (TPS) rate, Amazon MWAA will increase the number of web servers up to the number set in <code>MaxWebserers</code>. As TPS rates decrease Amazon MWAA disposes of the additional web servers, and scales down to the number set in <code>MinxWebserers</code>.</p>
108    /// <p>Valid values: For environments larger than mw1.micro, accepts values from <code>2</code> to <code>5</code>. Defaults to <code>2</code> for all environment sizes except mw1.micro, which defaults to <code>1</code>.</p>
109    pub fn max_webservers(&self) -> ::std::option::Option<i32> {
110        self.max_webservers
111    }
112    /// <p>The minimum number of web servers that you want to run in your environment. Amazon MWAA scales the number of Apache Airflow web servers up to the number you specify for <code>MaxWebservers</code> when you interact with your Apache Airflow environment using Apache Airflow REST API, or the Apache Airflow CLI. As the transaction-per-second rate, and the network load, decrease, Amazon MWAA disposes of the additional web servers, and scales down to the number set in <code>MinxWebserers</code>.</p>
113    /// <p>Valid values: For environments larger than mw1.micro, accepts values from <code>2</code> to <code>5</code>. Defaults to <code>2</code> for all environment sizes except mw1.micro, which defaults to <code>1</code>.</p>
114    pub fn min_webservers(&self) -> ::std::option::Option<i32> {
115        self.min_webservers
116    }
117    /// <p>The worker replacement strategy to use when updating the environment.</p>
118    /// <p>You can select one of the following strategies:</p>
119    /// <ul>
120    /// <li>
121    /// <p><b>Forced -</b> Stops and replaces Apache Airflow workers without waiting for tasks to complete before an update.</p></li>
122    /// <li>
123    /// <p><b>Graceful -</b> Allows Apache Airflow workers to complete running tasks for up to 12 hours during an update before they're stopped and replaced.</p></li>
124    /// </ul>
125    pub fn worker_replacement_strategy(&self) -> ::std::option::Option<&crate::types::WorkerReplacementStrategy> {
126        self.worker_replacement_strategy.as_ref()
127    }
128    /// <p>The VPC networking components used to secure and enable network traffic between the Amazon Web Services resources for your environment. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/networking-about.html">About networking on Amazon MWAA</a>.</p>
129    pub fn network_configuration(&self) -> ::std::option::Option<&crate::types::UpdateNetworkConfigurationInput> {
130        self.network_configuration.as_ref()
131    }
132    /// <p>The relative path to the <code>plugins.zip</code> file on your Amazon S3 bucket. For example, <code>plugins.zip</code>. If specified, then the plugins.zip version is required. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import-plugins.html">Installing custom plugins</a>.</p>
133    pub fn plugins_s3_path(&self) -> ::std::option::Option<&str> {
134        self.plugins_s3_path.as_deref()
135    }
136    /// <p>The version of the plugins.zip file on your Amazon S3 bucket. You must specify a version each time a <code>plugins.zip</code> file is updated. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/versioning-workflows.html">How S3 Versioning works</a>.</p>
137    pub fn plugins_s3_object_version(&self) -> ::std::option::Option<&str> {
138        self.plugins_s3_object_version.as_deref()
139    }
140    /// <p>The relative path to the <code>requirements.txt</code> file on your Amazon S3 bucket. For example, <code>requirements.txt</code>. If specified, then a file version is required. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/working-dags-dependencies.html">Installing Python dependencies</a>.</p>
141    pub fn requirements_s3_path(&self) -> ::std::option::Option<&str> {
142        self.requirements_s3_path.as_deref()
143    }
144    /// <p>The version of the requirements.txt file on your Amazon S3 bucket. You must specify a version each time a <code>requirements.txt</code> file is updated. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/versioning-workflows.html">How S3 Versioning works</a>.</p>
145    pub fn requirements_s3_object_version(&self) -> ::std::option::Option<&str> {
146        self.requirements_s3_object_version.as_deref()
147    }
148    /// <p>The number of Apache Airflow schedulers to run in your Amazon MWAA environment.</p>
149    pub fn schedulers(&self) -> ::std::option::Option<i32> {
150        self.schedulers
151    }
152    /// <p>The Amazon Resource Name (ARN) of the Amazon S3 bucket where your DAG code and supporting files are stored. For example, <code>arn:aws:s3:::my-airflow-bucket-unique-name</code>. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-s3-bucket.html">Create an Amazon S3 bucket for Amazon MWAA</a>.</p>
153    pub fn source_bucket_arn(&self) -> ::std::option::Option<&str> {
154        self.source_bucket_arn.as_deref()
155    }
156    /// <p>The relative path to the startup shell script in your Amazon S3 bucket. For example, <code>s3://mwaa-environment/startup.sh</code>.</p>
157    /// <p>Amazon MWAA runs the script as your environment starts, and before running the Apache Airflow process. You can use this script to install dependencies, modify Apache Airflow configuration options, and set environment variables. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/using-startup-script.html">Using a startup script</a>.</p>
158    pub fn startup_script_s3_path(&self) -> ::std::option::Option<&str> {
159        self.startup_script_s3_path.as_deref()
160    }
161    /// <p>The version of the startup shell script in your Amazon S3 bucket. You must specify the <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/versioning-workflows.html">version ID</a> that Amazon S3 assigns to the file every time you update the script.</p>
162    /// <p>Version IDs are Unicode, UTF-8 encoded, URL-ready, opaque strings that are no more than 1,024 bytes long. The following is an example:</p>
163    /// <p><code>3sL4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo</code></p>
164    /// <p>For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/using-startup-script.html">Using a startup script</a>.</p>
165    pub fn startup_script_s3_object_version(&self) -> ::std::option::Option<&str> {
166        self.startup_script_s3_object_version.as_deref()
167    }
168    /// <p>The Apache Airflow <i>Web server</i> access mode. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-networking.html">Apache Airflow access modes</a>.</p>
169    pub fn webserver_access_mode(&self) -> ::std::option::Option<&crate::types::WebserverAccessMode> {
170        self.webserver_access_mode.as_ref()
171    }
172    /// <p>The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time to start weekly maintenance updates of your environment in the following format: <code>DAY:HH:MM</code>. For example: <code>TUE:03:30</code>. You can specify a start time in 30 minute increments only.</p>
173    pub fn weekly_maintenance_window_start(&self) -> ::std::option::Option<&str> {
174        self.weekly_maintenance_window_start.as_deref()
175    }
176}
177impl ::std::fmt::Debug for UpdateEnvironmentInput {
178    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
179        let mut formatter = f.debug_struct("UpdateEnvironmentInput");
180        formatter.field("name", &self.name);
181        formatter.field("execution_role_arn", &self.execution_role_arn);
182        formatter.field("airflow_configuration_options", &"*** Sensitive Data Redacted ***");
183        formatter.field("airflow_version", &self.airflow_version);
184        formatter.field("dag_s3_path", &self.dag_s3_path);
185        formatter.field("environment_class", &self.environment_class);
186        formatter.field("logging_configuration", &self.logging_configuration);
187        formatter.field("max_workers", &self.max_workers);
188        formatter.field("min_workers", &self.min_workers);
189        formatter.field("max_webservers", &self.max_webservers);
190        formatter.field("min_webservers", &self.min_webservers);
191        formatter.field("worker_replacement_strategy", &self.worker_replacement_strategy);
192        formatter.field("network_configuration", &self.network_configuration);
193        formatter.field("plugins_s3_path", &self.plugins_s3_path);
194        formatter.field("plugins_s3_object_version", &self.plugins_s3_object_version);
195        formatter.field("requirements_s3_path", &self.requirements_s3_path);
196        formatter.field("requirements_s3_object_version", &self.requirements_s3_object_version);
197        formatter.field("schedulers", &self.schedulers);
198        formatter.field("source_bucket_arn", &self.source_bucket_arn);
199        formatter.field("startup_script_s3_path", &self.startup_script_s3_path);
200        formatter.field("startup_script_s3_object_version", &self.startup_script_s3_object_version);
201        formatter.field("webserver_access_mode", &self.webserver_access_mode);
202        formatter.field("weekly_maintenance_window_start", &self.weekly_maintenance_window_start);
203        formatter.finish()
204    }
205}
206impl UpdateEnvironmentInput {
207    /// Creates a new builder-style object to manufacture [`UpdateEnvironmentInput`](crate::operation::update_environment::UpdateEnvironmentInput).
208    pub fn builder() -> crate::operation::update_environment::builders::UpdateEnvironmentInputBuilder {
209        crate::operation::update_environment::builders::UpdateEnvironmentInputBuilder::default()
210    }
211}
212
213/// A builder for [`UpdateEnvironmentInput`](crate::operation::update_environment::UpdateEnvironmentInput).
214#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
215#[non_exhaustive]
216pub struct UpdateEnvironmentInputBuilder {
217    pub(crate) name: ::std::option::Option<::std::string::String>,
218    pub(crate) execution_role_arn: ::std::option::Option<::std::string::String>,
219    pub(crate) airflow_configuration_options: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
220    pub(crate) airflow_version: ::std::option::Option<::std::string::String>,
221    pub(crate) dag_s3_path: ::std::option::Option<::std::string::String>,
222    pub(crate) environment_class: ::std::option::Option<::std::string::String>,
223    pub(crate) logging_configuration: ::std::option::Option<crate::types::LoggingConfigurationInput>,
224    pub(crate) max_workers: ::std::option::Option<i32>,
225    pub(crate) min_workers: ::std::option::Option<i32>,
226    pub(crate) max_webservers: ::std::option::Option<i32>,
227    pub(crate) min_webservers: ::std::option::Option<i32>,
228    pub(crate) worker_replacement_strategy: ::std::option::Option<crate::types::WorkerReplacementStrategy>,
229    pub(crate) network_configuration: ::std::option::Option<crate::types::UpdateNetworkConfigurationInput>,
230    pub(crate) plugins_s3_path: ::std::option::Option<::std::string::String>,
231    pub(crate) plugins_s3_object_version: ::std::option::Option<::std::string::String>,
232    pub(crate) requirements_s3_path: ::std::option::Option<::std::string::String>,
233    pub(crate) requirements_s3_object_version: ::std::option::Option<::std::string::String>,
234    pub(crate) schedulers: ::std::option::Option<i32>,
235    pub(crate) source_bucket_arn: ::std::option::Option<::std::string::String>,
236    pub(crate) startup_script_s3_path: ::std::option::Option<::std::string::String>,
237    pub(crate) startup_script_s3_object_version: ::std::option::Option<::std::string::String>,
238    pub(crate) webserver_access_mode: ::std::option::Option<crate::types::WebserverAccessMode>,
239    pub(crate) weekly_maintenance_window_start: ::std::option::Option<::std::string::String>,
240}
241impl UpdateEnvironmentInputBuilder {
242    /// <p>The name of your Amazon MWAA environment. For example, <code>MyMWAAEnvironment</code>.</p>
243    /// This field is required.
244    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
245        self.name = ::std::option::Option::Some(input.into());
246        self
247    }
248    /// <p>The name of your Amazon MWAA environment. For example, <code>MyMWAAEnvironment</code>.</p>
249    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
250        self.name = input;
251        self
252    }
253    /// <p>The name of your Amazon MWAA environment. For example, <code>MyMWAAEnvironment</code>.</p>
254    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
255        &self.name
256    }
257    /// <p>The Amazon Resource Name (ARN) of the execution role in IAM that allows MWAA to access Amazon Web Services resources in your environment. For example, <code>arn:aws:iam::123456789:role/my-execution-role</code>. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-create-role.html">Amazon MWAA Execution role</a>.</p>
258    pub fn execution_role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
259        self.execution_role_arn = ::std::option::Option::Some(input.into());
260        self
261    }
262    /// <p>The Amazon Resource Name (ARN) of the execution role in IAM that allows MWAA to access Amazon Web Services resources in your environment. For example, <code>arn:aws:iam::123456789:role/my-execution-role</code>. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-create-role.html">Amazon MWAA Execution role</a>.</p>
263    pub fn set_execution_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
264        self.execution_role_arn = input;
265        self
266    }
267    /// <p>The Amazon Resource Name (ARN) of the execution role in IAM that allows MWAA to access Amazon Web Services resources in your environment. For example, <code>arn:aws:iam::123456789:role/my-execution-role</code>. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-create-role.html">Amazon MWAA Execution role</a>.</p>
268    pub fn get_execution_role_arn(&self) -> &::std::option::Option<::std::string::String> {
269        &self.execution_role_arn
270    }
271    /// Adds a key-value pair to `airflow_configuration_options`.
272    ///
273    /// To override the contents of this collection use [`set_airflow_configuration_options`](Self::set_airflow_configuration_options).
274    ///
275    /// <p>A list of key-value pairs containing the Apache Airflow configuration options you want to attach to your environment. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-env-variables.html">Apache Airflow configuration options</a>.</p>
276    pub fn airflow_configuration_options(
277        mut self,
278        k: impl ::std::convert::Into<::std::string::String>,
279        v: impl ::std::convert::Into<::std::string::String>,
280    ) -> Self {
281        let mut hash_map = self.airflow_configuration_options.unwrap_or_default();
282        hash_map.insert(k.into(), v.into());
283        self.airflow_configuration_options = ::std::option::Option::Some(hash_map);
284        self
285    }
286    /// <p>A list of key-value pairs containing the Apache Airflow configuration options you want to attach to your environment. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-env-variables.html">Apache Airflow configuration options</a>.</p>
287    pub fn set_airflow_configuration_options(
288        mut self,
289        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
290    ) -> Self {
291        self.airflow_configuration_options = input;
292        self
293    }
294    /// <p>A list of key-value pairs containing the Apache Airflow configuration options you want to attach to your environment. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-env-variables.html">Apache Airflow configuration options</a>.</p>
295    pub fn get_airflow_configuration_options(
296        &self,
297    ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
298        &self.airflow_configuration_options
299    }
300    /// <p>The Apache Airflow version for your environment. To upgrade your environment, specify a newer version of Apache Airflow supported by Amazon MWAA.</p>
301    /// <p>Before you upgrade an environment, make sure your requirements, DAGs, plugins, and other resources used in your workflows are compatible with the new Apache Airflow version. For more information about updating your resources, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/upgrading-environment.html">Upgrading an Amazon MWAA environment</a>.</p>
302    /// <p>Valid values: <code>1.10.12</code>, <code>2.0.2</code>, <code>2.2.2</code>, <code>2.4.3</code>, <code>2.5.1</code>, <code>2.6.3</code>, <code>2.7.2</code>, <code>2.8.1</code>, <code>2.9.2</code>, <code>2.10.1</code>, and <code>2.10.3</code>.</p>
303    pub fn airflow_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
304        self.airflow_version = ::std::option::Option::Some(input.into());
305        self
306    }
307    /// <p>The Apache Airflow version for your environment. To upgrade your environment, specify a newer version of Apache Airflow supported by Amazon MWAA.</p>
308    /// <p>Before you upgrade an environment, make sure your requirements, DAGs, plugins, and other resources used in your workflows are compatible with the new Apache Airflow version. For more information about updating your resources, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/upgrading-environment.html">Upgrading an Amazon MWAA environment</a>.</p>
309    /// <p>Valid values: <code>1.10.12</code>, <code>2.0.2</code>, <code>2.2.2</code>, <code>2.4.3</code>, <code>2.5.1</code>, <code>2.6.3</code>, <code>2.7.2</code>, <code>2.8.1</code>, <code>2.9.2</code>, <code>2.10.1</code>, and <code>2.10.3</code>.</p>
310    pub fn set_airflow_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
311        self.airflow_version = input;
312        self
313    }
314    /// <p>The Apache Airflow version for your environment. To upgrade your environment, specify a newer version of Apache Airflow supported by Amazon MWAA.</p>
315    /// <p>Before you upgrade an environment, make sure your requirements, DAGs, plugins, and other resources used in your workflows are compatible with the new Apache Airflow version. For more information about updating your resources, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/upgrading-environment.html">Upgrading an Amazon MWAA environment</a>.</p>
316    /// <p>Valid values: <code>1.10.12</code>, <code>2.0.2</code>, <code>2.2.2</code>, <code>2.4.3</code>, <code>2.5.1</code>, <code>2.6.3</code>, <code>2.7.2</code>, <code>2.8.1</code>, <code>2.9.2</code>, <code>2.10.1</code>, and <code>2.10.3</code>.</p>
317    pub fn get_airflow_version(&self) -> &::std::option::Option<::std::string::String> {
318        &self.airflow_version
319    }
320    /// <p>The relative path to the DAGs folder on your Amazon S3 bucket. For example, <code>dags</code>. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-folder.html">Adding or updating DAGs</a>.</p>
321    pub fn dag_s3_path(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
322        self.dag_s3_path = ::std::option::Option::Some(input.into());
323        self
324    }
325    /// <p>The relative path to the DAGs folder on your Amazon S3 bucket. For example, <code>dags</code>. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-folder.html">Adding or updating DAGs</a>.</p>
326    pub fn set_dag_s3_path(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
327        self.dag_s3_path = input;
328        self
329    }
330    /// <p>The relative path to the DAGs folder on your Amazon S3 bucket. For example, <code>dags</code>. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-folder.html">Adding or updating DAGs</a>.</p>
331    pub fn get_dag_s3_path(&self) -> &::std::option::Option<::std::string::String> {
332        &self.dag_s3_path
333    }
334    /// <p>The environment class type. Valid values: <code>mw1.micro</code>, <code>mw1.small</code>, <code>mw1.medium</code>, <code>mw1.large</code>, <code>mw1.xlarge</code>, and <code>mw1.2xlarge</code>. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/environment-class.html">Amazon MWAA environment class</a>.</p>
335    pub fn environment_class(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
336        self.environment_class = ::std::option::Option::Some(input.into());
337        self
338    }
339    /// <p>The environment class type. Valid values: <code>mw1.micro</code>, <code>mw1.small</code>, <code>mw1.medium</code>, <code>mw1.large</code>, <code>mw1.xlarge</code>, and <code>mw1.2xlarge</code>. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/environment-class.html">Amazon MWAA environment class</a>.</p>
340    pub fn set_environment_class(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
341        self.environment_class = input;
342        self
343    }
344    /// <p>The environment class type. Valid values: <code>mw1.micro</code>, <code>mw1.small</code>, <code>mw1.medium</code>, <code>mw1.large</code>, <code>mw1.xlarge</code>, and <code>mw1.2xlarge</code>. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/environment-class.html">Amazon MWAA environment class</a>.</p>
345    pub fn get_environment_class(&self) -> &::std::option::Option<::std::string::String> {
346        &self.environment_class
347    }
348    /// <p>The Apache Airflow log types to send to CloudWatch Logs.</p>
349    pub fn logging_configuration(mut self, input: crate::types::LoggingConfigurationInput) -> Self {
350        self.logging_configuration = ::std::option::Option::Some(input);
351        self
352    }
353    /// <p>The Apache Airflow log types to send to CloudWatch Logs.</p>
354    pub fn set_logging_configuration(mut self, input: ::std::option::Option<crate::types::LoggingConfigurationInput>) -> Self {
355        self.logging_configuration = input;
356        self
357    }
358    /// <p>The Apache Airflow log types to send to CloudWatch Logs.</p>
359    pub fn get_logging_configuration(&self) -> &::std::option::Option<crate::types::LoggingConfigurationInput> {
360        &self.logging_configuration
361    }
362    /// <p>The maximum number of workers that you want to run in your environment. MWAA scales the number of Apache Airflow workers up to the number you specify in the <code>MaxWorkers</code> field. For example, <code>20</code>. When there are no more tasks running, and no more in the queue, MWAA disposes of the extra workers leaving the one worker that is included with your environment, or the number you specify in <code>MinWorkers</code>.</p>
363    pub fn max_workers(mut self, input: i32) -> Self {
364        self.max_workers = ::std::option::Option::Some(input);
365        self
366    }
367    /// <p>The maximum number of workers that you want to run in your environment. MWAA scales the number of Apache Airflow workers up to the number you specify in the <code>MaxWorkers</code> field. For example, <code>20</code>. When there are no more tasks running, and no more in the queue, MWAA disposes of the extra workers leaving the one worker that is included with your environment, or the number you specify in <code>MinWorkers</code>.</p>
368    pub fn set_max_workers(mut self, input: ::std::option::Option<i32>) -> Self {
369        self.max_workers = input;
370        self
371    }
372    /// <p>The maximum number of workers that you want to run in your environment. MWAA scales the number of Apache Airflow workers up to the number you specify in the <code>MaxWorkers</code> field. For example, <code>20</code>. When there are no more tasks running, and no more in the queue, MWAA disposes of the extra workers leaving the one worker that is included with your environment, or the number you specify in <code>MinWorkers</code>.</p>
373    pub fn get_max_workers(&self) -> &::std::option::Option<i32> {
374        &self.max_workers
375    }
376    /// <p>The minimum number of workers that you want to run in your environment. MWAA scales the number of Apache Airflow workers up to the number you specify in the <code>MaxWorkers</code> field. When there are no more tasks running, and no more in the queue, MWAA disposes of the extra workers leaving the worker count you specify in the <code>MinWorkers</code> field. For example, <code>2</code>.</p>
377    pub fn min_workers(mut self, input: i32) -> Self {
378        self.min_workers = ::std::option::Option::Some(input);
379        self
380    }
381    /// <p>The minimum number of workers that you want to run in your environment. MWAA scales the number of Apache Airflow workers up to the number you specify in the <code>MaxWorkers</code> field. When there are no more tasks running, and no more in the queue, MWAA disposes of the extra workers leaving the worker count you specify in the <code>MinWorkers</code> field. For example, <code>2</code>.</p>
382    pub fn set_min_workers(mut self, input: ::std::option::Option<i32>) -> Self {
383        self.min_workers = input;
384        self
385    }
386    /// <p>The minimum number of workers that you want to run in your environment. MWAA scales the number of Apache Airflow workers up to the number you specify in the <code>MaxWorkers</code> field. When there are no more tasks running, and no more in the queue, MWAA disposes of the extra workers leaving the worker count you specify in the <code>MinWorkers</code> field. For example, <code>2</code>.</p>
387    pub fn get_min_workers(&self) -> &::std::option::Option<i32> {
388        &self.min_workers
389    }
390    /// <p>The maximum number of web servers that you want to run in your environment. Amazon MWAA scales the number of Apache Airflow web servers up to the number you specify for <code>MaxWebservers</code> when you interact with your Apache Airflow environment using Apache Airflow REST API, or the Apache Airflow CLI. For example, in scenarios where your workload requires network calls to the Apache Airflow REST API with a high transaction-per-second (TPS) rate, Amazon MWAA will increase the number of web servers up to the number set in <code>MaxWebserers</code>. As TPS rates decrease Amazon MWAA disposes of the additional web servers, and scales down to the number set in <code>MinxWebserers</code>.</p>
391    /// <p>Valid values: For environments larger than mw1.micro, accepts values from <code>2</code> to <code>5</code>. Defaults to <code>2</code> for all environment sizes except mw1.micro, which defaults to <code>1</code>.</p>
392    pub fn max_webservers(mut self, input: i32) -> Self {
393        self.max_webservers = ::std::option::Option::Some(input);
394        self
395    }
396    /// <p>The maximum number of web servers that you want to run in your environment. Amazon MWAA scales the number of Apache Airflow web servers up to the number you specify for <code>MaxWebservers</code> when you interact with your Apache Airflow environment using Apache Airflow REST API, or the Apache Airflow CLI. For example, in scenarios where your workload requires network calls to the Apache Airflow REST API with a high transaction-per-second (TPS) rate, Amazon MWAA will increase the number of web servers up to the number set in <code>MaxWebserers</code>. As TPS rates decrease Amazon MWAA disposes of the additional web servers, and scales down to the number set in <code>MinxWebserers</code>.</p>
397    /// <p>Valid values: For environments larger than mw1.micro, accepts values from <code>2</code> to <code>5</code>. Defaults to <code>2</code> for all environment sizes except mw1.micro, which defaults to <code>1</code>.</p>
398    pub fn set_max_webservers(mut self, input: ::std::option::Option<i32>) -> Self {
399        self.max_webservers = input;
400        self
401    }
402    /// <p>The maximum number of web servers that you want to run in your environment. Amazon MWAA scales the number of Apache Airflow web servers up to the number you specify for <code>MaxWebservers</code> when you interact with your Apache Airflow environment using Apache Airflow REST API, or the Apache Airflow CLI. For example, in scenarios where your workload requires network calls to the Apache Airflow REST API with a high transaction-per-second (TPS) rate, Amazon MWAA will increase the number of web servers up to the number set in <code>MaxWebserers</code>. As TPS rates decrease Amazon MWAA disposes of the additional web servers, and scales down to the number set in <code>MinxWebserers</code>.</p>
403    /// <p>Valid values: For environments larger than mw1.micro, accepts values from <code>2</code> to <code>5</code>. Defaults to <code>2</code> for all environment sizes except mw1.micro, which defaults to <code>1</code>.</p>
404    pub fn get_max_webservers(&self) -> &::std::option::Option<i32> {
405        &self.max_webservers
406    }
407    /// <p>The minimum number of web servers that you want to run in your environment. Amazon MWAA scales the number of Apache Airflow web servers up to the number you specify for <code>MaxWebservers</code> when you interact with your Apache Airflow environment using Apache Airflow REST API, or the Apache Airflow CLI. As the transaction-per-second rate, and the network load, decrease, Amazon MWAA disposes of the additional web servers, and scales down to the number set in <code>MinxWebserers</code>.</p>
408    /// <p>Valid values: For environments larger than mw1.micro, accepts values from <code>2</code> to <code>5</code>. Defaults to <code>2</code> for all environment sizes except mw1.micro, which defaults to <code>1</code>.</p>
409    pub fn min_webservers(mut self, input: i32) -> Self {
410        self.min_webservers = ::std::option::Option::Some(input);
411        self
412    }
413    /// <p>The minimum number of web servers that you want to run in your environment. Amazon MWAA scales the number of Apache Airflow web servers up to the number you specify for <code>MaxWebservers</code> when you interact with your Apache Airflow environment using Apache Airflow REST API, or the Apache Airflow CLI. As the transaction-per-second rate, and the network load, decrease, Amazon MWAA disposes of the additional web servers, and scales down to the number set in <code>MinxWebserers</code>.</p>
414    /// <p>Valid values: For environments larger than mw1.micro, accepts values from <code>2</code> to <code>5</code>. Defaults to <code>2</code> for all environment sizes except mw1.micro, which defaults to <code>1</code>.</p>
415    pub fn set_min_webservers(mut self, input: ::std::option::Option<i32>) -> Self {
416        self.min_webservers = input;
417        self
418    }
419    /// <p>The minimum number of web servers that you want to run in your environment. Amazon MWAA scales the number of Apache Airflow web servers up to the number you specify for <code>MaxWebservers</code> when you interact with your Apache Airflow environment using Apache Airflow REST API, or the Apache Airflow CLI. As the transaction-per-second rate, and the network load, decrease, Amazon MWAA disposes of the additional web servers, and scales down to the number set in <code>MinxWebserers</code>.</p>
420    /// <p>Valid values: For environments larger than mw1.micro, accepts values from <code>2</code> to <code>5</code>. Defaults to <code>2</code> for all environment sizes except mw1.micro, which defaults to <code>1</code>.</p>
421    pub fn get_min_webservers(&self) -> &::std::option::Option<i32> {
422        &self.min_webservers
423    }
424    /// <p>The worker replacement strategy to use when updating the environment.</p>
425    /// <p>You can select one of the following strategies:</p>
426    /// <ul>
427    /// <li>
428    /// <p><b>Forced -</b> Stops and replaces Apache Airflow workers without waiting for tasks to complete before an update.</p></li>
429    /// <li>
430    /// <p><b>Graceful -</b> Allows Apache Airflow workers to complete running tasks for up to 12 hours during an update before they're stopped and replaced.</p></li>
431    /// </ul>
432    pub fn worker_replacement_strategy(mut self, input: crate::types::WorkerReplacementStrategy) -> Self {
433        self.worker_replacement_strategy = ::std::option::Option::Some(input);
434        self
435    }
436    /// <p>The worker replacement strategy to use when updating the environment.</p>
437    /// <p>You can select one of the following strategies:</p>
438    /// <ul>
439    /// <li>
440    /// <p><b>Forced -</b> Stops and replaces Apache Airflow workers without waiting for tasks to complete before an update.</p></li>
441    /// <li>
442    /// <p><b>Graceful -</b> Allows Apache Airflow workers to complete running tasks for up to 12 hours during an update before they're stopped and replaced.</p></li>
443    /// </ul>
444    pub fn set_worker_replacement_strategy(mut self, input: ::std::option::Option<crate::types::WorkerReplacementStrategy>) -> Self {
445        self.worker_replacement_strategy = input;
446        self
447    }
448    /// <p>The worker replacement strategy to use when updating the environment.</p>
449    /// <p>You can select one of the following strategies:</p>
450    /// <ul>
451    /// <li>
452    /// <p><b>Forced -</b> Stops and replaces Apache Airflow workers without waiting for tasks to complete before an update.</p></li>
453    /// <li>
454    /// <p><b>Graceful -</b> Allows Apache Airflow workers to complete running tasks for up to 12 hours during an update before they're stopped and replaced.</p></li>
455    /// </ul>
456    pub fn get_worker_replacement_strategy(&self) -> &::std::option::Option<crate::types::WorkerReplacementStrategy> {
457        &self.worker_replacement_strategy
458    }
459    /// <p>The VPC networking components used to secure and enable network traffic between the Amazon Web Services resources for your environment. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/networking-about.html">About networking on Amazon MWAA</a>.</p>
460    pub fn network_configuration(mut self, input: crate::types::UpdateNetworkConfigurationInput) -> Self {
461        self.network_configuration = ::std::option::Option::Some(input);
462        self
463    }
464    /// <p>The VPC networking components used to secure and enable network traffic between the Amazon Web Services resources for your environment. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/networking-about.html">About networking on Amazon MWAA</a>.</p>
465    pub fn set_network_configuration(mut self, input: ::std::option::Option<crate::types::UpdateNetworkConfigurationInput>) -> Self {
466        self.network_configuration = input;
467        self
468    }
469    /// <p>The VPC networking components used to secure and enable network traffic between the Amazon Web Services resources for your environment. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/networking-about.html">About networking on Amazon MWAA</a>.</p>
470    pub fn get_network_configuration(&self) -> &::std::option::Option<crate::types::UpdateNetworkConfigurationInput> {
471        &self.network_configuration
472    }
473    /// <p>The relative path to the <code>plugins.zip</code> file on your Amazon S3 bucket. For example, <code>plugins.zip</code>. If specified, then the plugins.zip version is required. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import-plugins.html">Installing custom plugins</a>.</p>
474    pub fn plugins_s3_path(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
475        self.plugins_s3_path = ::std::option::Option::Some(input.into());
476        self
477    }
478    /// <p>The relative path to the <code>plugins.zip</code> file on your Amazon S3 bucket. For example, <code>plugins.zip</code>. If specified, then the plugins.zip version is required. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import-plugins.html">Installing custom plugins</a>.</p>
479    pub fn set_plugins_s3_path(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
480        self.plugins_s3_path = input;
481        self
482    }
483    /// <p>The relative path to the <code>plugins.zip</code> file on your Amazon S3 bucket. For example, <code>plugins.zip</code>. If specified, then the plugins.zip version is required. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import-plugins.html">Installing custom plugins</a>.</p>
484    pub fn get_plugins_s3_path(&self) -> &::std::option::Option<::std::string::String> {
485        &self.plugins_s3_path
486    }
487    /// <p>The version of the plugins.zip file on your Amazon S3 bucket. You must specify a version each time a <code>plugins.zip</code> file is updated. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/versioning-workflows.html">How S3 Versioning works</a>.</p>
488    pub fn plugins_s3_object_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
489        self.plugins_s3_object_version = ::std::option::Option::Some(input.into());
490        self
491    }
492    /// <p>The version of the plugins.zip file on your Amazon S3 bucket. You must specify a version each time a <code>plugins.zip</code> file is updated. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/versioning-workflows.html">How S3 Versioning works</a>.</p>
493    pub fn set_plugins_s3_object_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
494        self.plugins_s3_object_version = input;
495        self
496    }
497    /// <p>The version of the plugins.zip file on your Amazon S3 bucket. You must specify a version each time a <code>plugins.zip</code> file is updated. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/versioning-workflows.html">How S3 Versioning works</a>.</p>
498    pub fn get_plugins_s3_object_version(&self) -> &::std::option::Option<::std::string::String> {
499        &self.plugins_s3_object_version
500    }
501    /// <p>The relative path to the <code>requirements.txt</code> file on your Amazon S3 bucket. For example, <code>requirements.txt</code>. If specified, then a file version is required. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/working-dags-dependencies.html">Installing Python dependencies</a>.</p>
502    pub fn requirements_s3_path(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
503        self.requirements_s3_path = ::std::option::Option::Some(input.into());
504        self
505    }
506    /// <p>The relative path to the <code>requirements.txt</code> file on your Amazon S3 bucket. For example, <code>requirements.txt</code>. If specified, then a file version is required. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/working-dags-dependencies.html">Installing Python dependencies</a>.</p>
507    pub fn set_requirements_s3_path(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
508        self.requirements_s3_path = input;
509        self
510    }
511    /// <p>The relative path to the <code>requirements.txt</code> file on your Amazon S3 bucket. For example, <code>requirements.txt</code>. If specified, then a file version is required. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/working-dags-dependencies.html">Installing Python dependencies</a>.</p>
512    pub fn get_requirements_s3_path(&self) -> &::std::option::Option<::std::string::String> {
513        &self.requirements_s3_path
514    }
515    /// <p>The version of the requirements.txt file on your Amazon S3 bucket. You must specify a version each time a <code>requirements.txt</code> file is updated. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/versioning-workflows.html">How S3 Versioning works</a>.</p>
516    pub fn requirements_s3_object_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
517        self.requirements_s3_object_version = ::std::option::Option::Some(input.into());
518        self
519    }
520    /// <p>The version of the requirements.txt file on your Amazon S3 bucket. You must specify a version each time a <code>requirements.txt</code> file is updated. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/versioning-workflows.html">How S3 Versioning works</a>.</p>
521    pub fn set_requirements_s3_object_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
522        self.requirements_s3_object_version = input;
523        self
524    }
525    /// <p>The version of the requirements.txt file on your Amazon S3 bucket. You must specify a version each time a <code>requirements.txt</code> file is updated. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/versioning-workflows.html">How S3 Versioning works</a>.</p>
526    pub fn get_requirements_s3_object_version(&self) -> &::std::option::Option<::std::string::String> {
527        &self.requirements_s3_object_version
528    }
529    /// <p>The number of Apache Airflow schedulers to run in your Amazon MWAA environment.</p>
530    pub fn schedulers(mut self, input: i32) -> Self {
531        self.schedulers = ::std::option::Option::Some(input);
532        self
533    }
534    /// <p>The number of Apache Airflow schedulers to run in your Amazon MWAA environment.</p>
535    pub fn set_schedulers(mut self, input: ::std::option::Option<i32>) -> Self {
536        self.schedulers = input;
537        self
538    }
539    /// <p>The number of Apache Airflow schedulers to run in your Amazon MWAA environment.</p>
540    pub fn get_schedulers(&self) -> &::std::option::Option<i32> {
541        &self.schedulers
542    }
543    /// <p>The Amazon Resource Name (ARN) of the Amazon S3 bucket where your DAG code and supporting files are stored. For example, <code>arn:aws:s3:::my-airflow-bucket-unique-name</code>. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-s3-bucket.html">Create an Amazon S3 bucket for Amazon MWAA</a>.</p>
544    pub fn source_bucket_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
545        self.source_bucket_arn = ::std::option::Option::Some(input.into());
546        self
547    }
548    /// <p>The Amazon Resource Name (ARN) of the Amazon S3 bucket where your DAG code and supporting files are stored. For example, <code>arn:aws:s3:::my-airflow-bucket-unique-name</code>. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-s3-bucket.html">Create an Amazon S3 bucket for Amazon MWAA</a>.</p>
549    pub fn set_source_bucket_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
550        self.source_bucket_arn = input;
551        self
552    }
553    /// <p>The Amazon Resource Name (ARN) of the Amazon S3 bucket where your DAG code and supporting files are stored. For example, <code>arn:aws:s3:::my-airflow-bucket-unique-name</code>. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-s3-bucket.html">Create an Amazon S3 bucket for Amazon MWAA</a>.</p>
554    pub fn get_source_bucket_arn(&self) -> &::std::option::Option<::std::string::String> {
555        &self.source_bucket_arn
556    }
557    /// <p>The relative path to the startup shell script in your Amazon S3 bucket. For example, <code>s3://mwaa-environment/startup.sh</code>.</p>
558    /// <p>Amazon MWAA runs the script as your environment starts, and before running the Apache Airflow process. You can use this script to install dependencies, modify Apache Airflow configuration options, and set environment variables. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/using-startup-script.html">Using a startup script</a>.</p>
559    pub fn startup_script_s3_path(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
560        self.startup_script_s3_path = ::std::option::Option::Some(input.into());
561        self
562    }
563    /// <p>The relative path to the startup shell script in your Amazon S3 bucket. For example, <code>s3://mwaa-environment/startup.sh</code>.</p>
564    /// <p>Amazon MWAA runs the script as your environment starts, and before running the Apache Airflow process. You can use this script to install dependencies, modify Apache Airflow configuration options, and set environment variables. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/using-startup-script.html">Using a startup script</a>.</p>
565    pub fn set_startup_script_s3_path(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
566        self.startup_script_s3_path = input;
567        self
568    }
569    /// <p>The relative path to the startup shell script in your Amazon S3 bucket. For example, <code>s3://mwaa-environment/startup.sh</code>.</p>
570    /// <p>Amazon MWAA runs the script as your environment starts, and before running the Apache Airflow process. You can use this script to install dependencies, modify Apache Airflow configuration options, and set environment variables. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/using-startup-script.html">Using a startup script</a>.</p>
571    pub fn get_startup_script_s3_path(&self) -> &::std::option::Option<::std::string::String> {
572        &self.startup_script_s3_path
573    }
574    /// <p>The version of the startup shell script in your Amazon S3 bucket. You must specify the <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/versioning-workflows.html">version ID</a> that Amazon S3 assigns to the file every time you update the script.</p>
575    /// <p>Version IDs are Unicode, UTF-8 encoded, URL-ready, opaque strings that are no more than 1,024 bytes long. The following is an example:</p>
576    /// <p><code>3sL4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo</code></p>
577    /// <p>For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/using-startup-script.html">Using a startup script</a>.</p>
578    pub fn startup_script_s3_object_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
579        self.startup_script_s3_object_version = ::std::option::Option::Some(input.into());
580        self
581    }
582    /// <p>The version of the startup shell script in your Amazon S3 bucket. You must specify the <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/versioning-workflows.html">version ID</a> that Amazon S3 assigns to the file every time you update the script.</p>
583    /// <p>Version IDs are Unicode, UTF-8 encoded, URL-ready, opaque strings that are no more than 1,024 bytes long. The following is an example:</p>
584    /// <p><code>3sL4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo</code></p>
585    /// <p>For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/using-startup-script.html">Using a startup script</a>.</p>
586    pub fn set_startup_script_s3_object_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
587        self.startup_script_s3_object_version = input;
588        self
589    }
590    /// <p>The version of the startup shell script in your Amazon S3 bucket. You must specify the <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/versioning-workflows.html">version ID</a> that Amazon S3 assigns to the file every time you update the script.</p>
591    /// <p>Version IDs are Unicode, UTF-8 encoded, URL-ready, opaque strings that are no more than 1,024 bytes long. The following is an example:</p>
592    /// <p><code>3sL4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo</code></p>
593    /// <p>For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/using-startup-script.html">Using a startup script</a>.</p>
594    pub fn get_startup_script_s3_object_version(&self) -> &::std::option::Option<::std::string::String> {
595        &self.startup_script_s3_object_version
596    }
597    /// <p>The Apache Airflow <i>Web server</i> access mode. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-networking.html">Apache Airflow access modes</a>.</p>
598    pub fn webserver_access_mode(mut self, input: crate::types::WebserverAccessMode) -> Self {
599        self.webserver_access_mode = ::std::option::Option::Some(input);
600        self
601    }
602    /// <p>The Apache Airflow <i>Web server</i> access mode. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-networking.html">Apache Airflow access modes</a>.</p>
603    pub fn set_webserver_access_mode(mut self, input: ::std::option::Option<crate::types::WebserverAccessMode>) -> Self {
604        self.webserver_access_mode = input;
605        self
606    }
607    /// <p>The Apache Airflow <i>Web server</i> access mode. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-networking.html">Apache Airflow access modes</a>.</p>
608    pub fn get_webserver_access_mode(&self) -> &::std::option::Option<crate::types::WebserverAccessMode> {
609        &self.webserver_access_mode
610    }
611    /// <p>The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time to start weekly maintenance updates of your environment in the following format: <code>DAY:HH:MM</code>. For example: <code>TUE:03:30</code>. You can specify a start time in 30 minute increments only.</p>
612    pub fn weekly_maintenance_window_start(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
613        self.weekly_maintenance_window_start = ::std::option::Option::Some(input.into());
614        self
615    }
616    /// <p>The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time to start weekly maintenance updates of your environment in the following format: <code>DAY:HH:MM</code>. For example: <code>TUE:03:30</code>. You can specify a start time in 30 minute increments only.</p>
617    pub fn set_weekly_maintenance_window_start(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
618        self.weekly_maintenance_window_start = input;
619        self
620    }
621    /// <p>The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time to start weekly maintenance updates of your environment in the following format: <code>DAY:HH:MM</code>. For example: <code>TUE:03:30</code>. You can specify a start time in 30 minute increments only.</p>
622    pub fn get_weekly_maintenance_window_start(&self) -> &::std::option::Option<::std::string::String> {
623        &self.weekly_maintenance_window_start
624    }
625    /// Consumes the builder and constructs a [`UpdateEnvironmentInput`](crate::operation::update_environment::UpdateEnvironmentInput).
626    pub fn build(
627        self,
628    ) -> ::std::result::Result<crate::operation::update_environment::UpdateEnvironmentInput, ::aws_smithy_types::error::operation::BuildError> {
629        ::std::result::Result::Ok(crate::operation::update_environment::UpdateEnvironmentInput {
630            name: self.name,
631            execution_role_arn: self.execution_role_arn,
632            airflow_configuration_options: self.airflow_configuration_options,
633            airflow_version: self.airflow_version,
634            dag_s3_path: self.dag_s3_path,
635            environment_class: self.environment_class,
636            logging_configuration: self.logging_configuration,
637            max_workers: self.max_workers,
638            min_workers: self.min_workers,
639            max_webservers: self.max_webservers,
640            min_webservers: self.min_webservers,
641            worker_replacement_strategy: self.worker_replacement_strategy,
642            network_configuration: self.network_configuration,
643            plugins_s3_path: self.plugins_s3_path,
644            plugins_s3_object_version: self.plugins_s3_object_version,
645            requirements_s3_path: self.requirements_s3_path,
646            requirements_s3_object_version: self.requirements_s3_object_version,
647            schedulers: self.schedulers,
648            source_bucket_arn: self.source_bucket_arn,
649            startup_script_s3_path: self.startup_script_s3_path,
650            startup_script_s3_object_version: self.startup_script_s3_object_version,
651            webserver_access_mode: self.webserver_access_mode,
652            weekly_maintenance_window_start: self.weekly_maintenance_window_start,
653        })
654    }
655}
656impl ::std::fmt::Debug for UpdateEnvironmentInputBuilder {
657    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
658        let mut formatter = f.debug_struct("UpdateEnvironmentInputBuilder");
659        formatter.field("name", &self.name);
660        formatter.field("execution_role_arn", &self.execution_role_arn);
661        formatter.field("airflow_configuration_options", &"*** Sensitive Data Redacted ***");
662        formatter.field("airflow_version", &self.airflow_version);
663        formatter.field("dag_s3_path", &self.dag_s3_path);
664        formatter.field("environment_class", &self.environment_class);
665        formatter.field("logging_configuration", &self.logging_configuration);
666        formatter.field("max_workers", &self.max_workers);
667        formatter.field("min_workers", &self.min_workers);
668        formatter.field("max_webservers", &self.max_webservers);
669        formatter.field("min_webservers", &self.min_webservers);
670        formatter.field("worker_replacement_strategy", &self.worker_replacement_strategy);
671        formatter.field("network_configuration", &self.network_configuration);
672        formatter.field("plugins_s3_path", &self.plugins_s3_path);
673        formatter.field("plugins_s3_object_version", &self.plugins_s3_object_version);
674        formatter.field("requirements_s3_path", &self.requirements_s3_path);
675        formatter.field("requirements_s3_object_version", &self.requirements_s3_object_version);
676        formatter.field("schedulers", &self.schedulers);
677        formatter.field("source_bucket_arn", &self.source_bucket_arn);
678        formatter.field("startup_script_s3_path", &self.startup_script_s3_path);
679        formatter.field("startup_script_s3_object_version", &self.startup_script_s3_object_version);
680        formatter.field("webserver_access_mode", &self.webserver_access_mode);
681        formatter.field("weekly_maintenance_window_start", &self.weekly_maintenance_window_start);
682        formatter.finish()
683    }
684}