aws_sdk_opensearch/operation/update_domain_config/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::update_domain_config::_update_domain_config_output::UpdateDomainConfigOutputBuilder;
3
4pub use crate::operation::update_domain_config::_update_domain_config_input::UpdateDomainConfigInputBuilder;
5
6impl crate::operation::update_domain_config::builders::UpdateDomainConfigInputBuilder {
7    /// Sends a request with this input using the given client.
8    pub async fn send_with(
9        self,
10        client: &crate::Client,
11    ) -> ::std::result::Result<
12        crate::operation::update_domain_config::UpdateDomainConfigOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::update_domain_config::UpdateDomainConfigError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.update_domain_config();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `UpdateDomainConfig`.
24///
25/// <p>Modifies the cluster configuration of the specified Amazon OpenSearch Service domain.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct UpdateDomainConfigFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::update_domain_config::builders::UpdateDomainConfigInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::update_domain_config::UpdateDomainConfigOutput,
35        crate::operation::update_domain_config::UpdateDomainConfigError,
36    > for UpdateDomainConfigFluentBuilder
37{
38    fn send(
39        self,
40        config_override: crate::config::Builder,
41    ) -> crate::client::customize::internal::BoxFuture<
42        crate::client::customize::internal::SendResult<
43            crate::operation::update_domain_config::UpdateDomainConfigOutput,
44            crate::operation::update_domain_config::UpdateDomainConfigError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl UpdateDomainConfigFluentBuilder {
51    /// Creates a new `UpdateDomainConfigFluentBuilder`.
52    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
53        Self {
54            handle,
55            inner: ::std::default::Default::default(),
56            config_override: ::std::option::Option::None,
57        }
58    }
59    /// Access the UpdateDomainConfig as a reference.
60    pub fn as_input(&self) -> &crate::operation::update_domain_config::builders::UpdateDomainConfigInputBuilder {
61        &self.inner
62    }
63    /// Sends the request and returns the response.
64    ///
65    /// If an error occurs, an `SdkError` will be returned with additional details that
66    /// can be matched against.
67    ///
68    /// By default, any retryable failures will be retried twice. Retry behavior
69    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
70    /// set when configuring the client.
71    pub async fn send(
72        self,
73    ) -> ::std::result::Result<
74        crate::operation::update_domain_config::UpdateDomainConfigOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::update_domain_config::UpdateDomainConfigError,
77            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
78        >,
79    > {
80        let input = self
81            .inner
82            .build()
83            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
84        let runtime_plugins = crate::operation::update_domain_config::UpdateDomainConfig::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::update_domain_config::UpdateDomainConfig::orchestrate(&runtime_plugins, input).await
90    }
91
92    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
93    pub fn customize(
94        self,
95    ) -> crate::client::customize::CustomizableOperation<
96        crate::operation::update_domain_config::UpdateDomainConfigOutput,
97        crate::operation::update_domain_config::UpdateDomainConfigError,
98        Self,
99    > {
100        crate::client::customize::CustomizableOperation::new(self)
101    }
102    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
103        self.set_config_override(::std::option::Option::Some(config_override.into()));
104        self
105    }
106
107    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
108        self.config_override = config_override;
109        self
110    }
111    /// <p>The name of the domain that you're updating.</p>
112    pub fn domain_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
113        self.inner = self.inner.domain_name(input.into());
114        self
115    }
116    /// <p>The name of the domain that you're updating.</p>
117    pub fn set_domain_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
118        self.inner = self.inner.set_domain_name(input);
119        self
120    }
121    /// <p>The name of the domain that you're updating.</p>
122    pub fn get_domain_name(&self) -> &::std::option::Option<::std::string::String> {
123        self.inner.get_domain_name()
124    }
125    /// <p>Changes that you want to make to the cluster configuration, such as the instance type and number of EC2 instances.</p>
126    pub fn cluster_config(mut self, input: crate::types::ClusterConfig) -> Self {
127        self.inner = self.inner.cluster_config(input);
128        self
129    }
130    /// <p>Changes that you want to make to the cluster configuration, such as the instance type and number of EC2 instances.</p>
131    pub fn set_cluster_config(mut self, input: ::std::option::Option<crate::types::ClusterConfig>) -> Self {
132        self.inner = self.inner.set_cluster_config(input);
133        self
134    }
135    /// <p>Changes that you want to make to the cluster configuration, such as the instance type and number of EC2 instances.</p>
136    pub fn get_cluster_config(&self) -> &::std::option::Option<crate::types::ClusterConfig> {
137        self.inner.get_cluster_config()
138    }
139    /// <p>The type and size of the EBS volume to attach to instances in the domain.</p>
140    pub fn ebs_options(mut self, input: crate::types::EbsOptions) -> Self {
141        self.inner = self.inner.ebs_options(input);
142        self
143    }
144    /// <p>The type and size of the EBS volume to attach to instances in the domain.</p>
145    pub fn set_ebs_options(mut self, input: ::std::option::Option<crate::types::EbsOptions>) -> Self {
146        self.inner = self.inner.set_ebs_options(input);
147        self
148    }
149    /// <p>The type and size of the EBS volume to attach to instances in the domain.</p>
150    pub fn get_ebs_options(&self) -> &::std::option::Option<crate::types::EbsOptions> {
151        self.inner.get_ebs_options()
152    }
153    /// <p>Option to set the time, in UTC format, for the daily automated snapshot. Default value is <code>0</code> hours.</p>
154    pub fn snapshot_options(mut self, input: crate::types::SnapshotOptions) -> Self {
155        self.inner = self.inner.snapshot_options(input);
156        self
157    }
158    /// <p>Option to set the time, in UTC format, for the daily automated snapshot. Default value is <code>0</code> hours.</p>
159    pub fn set_snapshot_options(mut self, input: ::std::option::Option<crate::types::SnapshotOptions>) -> Self {
160        self.inner = self.inner.set_snapshot_options(input);
161        self
162    }
163    /// <p>Option to set the time, in UTC format, for the daily automated snapshot. Default value is <code>0</code> hours.</p>
164    pub fn get_snapshot_options(&self) -> &::std::option::Option<crate::types::SnapshotOptions> {
165        self.inner.get_snapshot_options()
166    }
167    /// <p>Options to specify the subnets and security groups for a VPC endpoint. For more information, see <a href="https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html">Launching your Amazon OpenSearch Service domains using a VPC</a>.</p>
168    pub fn vpc_options(mut self, input: crate::types::VpcOptions) -> Self {
169        self.inner = self.inner.vpc_options(input);
170        self
171    }
172    /// <p>Options to specify the subnets and security groups for a VPC endpoint. For more information, see <a href="https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html">Launching your Amazon OpenSearch Service domains using a VPC</a>.</p>
173    pub fn set_vpc_options(mut self, input: ::std::option::Option<crate::types::VpcOptions>) -> Self {
174        self.inner = self.inner.set_vpc_options(input);
175        self
176    }
177    /// <p>Options to specify the subnets and security groups for a VPC endpoint. For more information, see <a href="https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html">Launching your Amazon OpenSearch Service domains using a VPC</a>.</p>
178    pub fn get_vpc_options(&self) -> &::std::option::Option<crate::types::VpcOptions> {
179        self.inner.get_vpc_options()
180    }
181    /// <p>Key-value pairs to configure Amazon Cognito authentication for OpenSearch Dashboards.</p>
182    pub fn cognito_options(mut self, input: crate::types::CognitoOptions) -> Self {
183        self.inner = self.inner.cognito_options(input);
184        self
185    }
186    /// <p>Key-value pairs to configure Amazon Cognito authentication for OpenSearch Dashboards.</p>
187    pub fn set_cognito_options(mut self, input: ::std::option::Option<crate::types::CognitoOptions>) -> Self {
188        self.inner = self.inner.set_cognito_options(input);
189        self
190    }
191    /// <p>Key-value pairs to configure Amazon Cognito authentication for OpenSearch Dashboards.</p>
192    pub fn get_cognito_options(&self) -> &::std::option::Option<crate::types::CognitoOptions> {
193        self.inner.get_cognito_options()
194    }
195    ///
196    /// Adds a key-value pair to `AdvancedOptions`.
197    ///
198    /// To override the contents of this collection use [`set_advanced_options`](Self::set_advanced_options).
199    ///
200    /// <p>Key-value pairs to specify advanced configuration options. The following key-value pairs are supported:</p>
201    /// <ul>
202    /// <li>
203    /// <p><code>"rest.action.multi.allow_explicit_index": "true" | "false"</code> - Note the use of a string rather than a boolean. Specifies whether explicit references to indexes are allowed inside the body of HTTP requests. If you want to configure access policies for domain sub-resources, such as specific indexes and domain APIs, you must disable this property. Default is true.</p></li>
204    /// <li>
205    /// <p><code>"indices.fielddata.cache.size": "80" </code> - Note the use of a string rather than a boolean. Specifies the percentage of heap space allocated to field data. Default is unbounded.</p></li>
206    /// <li>
207    /// <p><code>"indices.query.bool.max_clause_count": "1024"</code> - Note the use of a string rather than a boolean. Specifies the maximum number of clauses allowed in a Lucene boolean query. Default is 1,024. Queries with more than the permitted number of clauses result in a <code>TooManyClauses</code> error.</p></li>
208    /// </ul>
209    /// <p>For more information, see <a href="https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomain-configure-advanced-options">Advanced cluster parameters</a>.</p>
210    pub fn advanced_options(
211        mut self,
212        k: impl ::std::convert::Into<::std::string::String>,
213        v: impl ::std::convert::Into<::std::string::String>,
214    ) -> Self {
215        self.inner = self.inner.advanced_options(k.into(), v.into());
216        self
217    }
218    /// <p>Key-value pairs to specify advanced configuration options. The following key-value pairs are supported:</p>
219    /// <ul>
220    /// <li>
221    /// <p><code>"rest.action.multi.allow_explicit_index": "true" | "false"</code> - Note the use of a string rather than a boolean. Specifies whether explicit references to indexes are allowed inside the body of HTTP requests. If you want to configure access policies for domain sub-resources, such as specific indexes and domain APIs, you must disable this property. Default is true.</p></li>
222    /// <li>
223    /// <p><code>"indices.fielddata.cache.size": "80" </code> - Note the use of a string rather than a boolean. Specifies the percentage of heap space allocated to field data. Default is unbounded.</p></li>
224    /// <li>
225    /// <p><code>"indices.query.bool.max_clause_count": "1024"</code> - Note the use of a string rather than a boolean. Specifies the maximum number of clauses allowed in a Lucene boolean query. Default is 1,024. Queries with more than the permitted number of clauses result in a <code>TooManyClauses</code> error.</p></li>
226    /// </ul>
227    /// <p>For more information, see <a href="https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomain-configure-advanced-options">Advanced cluster parameters</a>.</p>
228    pub fn set_advanced_options(
229        mut self,
230        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
231    ) -> Self {
232        self.inner = self.inner.set_advanced_options(input);
233        self
234    }
235    /// <p>Key-value pairs to specify advanced configuration options. The following key-value pairs are supported:</p>
236    /// <ul>
237    /// <li>
238    /// <p><code>"rest.action.multi.allow_explicit_index": "true" | "false"</code> - Note the use of a string rather than a boolean. Specifies whether explicit references to indexes are allowed inside the body of HTTP requests. If you want to configure access policies for domain sub-resources, such as specific indexes and domain APIs, you must disable this property. Default is true.</p></li>
239    /// <li>
240    /// <p><code>"indices.fielddata.cache.size": "80" </code> - Note the use of a string rather than a boolean. Specifies the percentage of heap space allocated to field data. Default is unbounded.</p></li>
241    /// <li>
242    /// <p><code>"indices.query.bool.max_clause_count": "1024"</code> - Note the use of a string rather than a boolean. Specifies the maximum number of clauses allowed in a Lucene boolean query. Default is 1,024. Queries with more than the permitted number of clauses result in a <code>TooManyClauses</code> error.</p></li>
243    /// </ul>
244    /// <p>For more information, see <a href="https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomain-configure-advanced-options">Advanced cluster parameters</a>.</p>
245    pub fn get_advanced_options(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
246        self.inner.get_advanced_options()
247    }
248    /// <p>Identity and Access Management (IAM) access policy as a JSON-formatted string.</p>
249    pub fn access_policies(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
250        self.inner = self.inner.access_policies(input.into());
251        self
252    }
253    /// <p>Identity and Access Management (IAM) access policy as a JSON-formatted string.</p>
254    pub fn set_access_policies(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
255        self.inner = self.inner.set_access_policies(input);
256        self
257    }
258    /// <p>Identity and Access Management (IAM) access policy as a JSON-formatted string.</p>
259    pub fn get_access_policies(&self) -> &::std::option::Option<::std::string::String> {
260        self.inner.get_access_policies()
261    }
262    /// <p>Specify either dual stack or IPv4 as your IP address type. Dual stack allows you to share domain resources across IPv4 and IPv6 address types, and is the recommended option. If your IP address type is currently set to dual stack, you can't change it.</p>
263    pub fn ip_address_type(mut self, input: crate::types::IpAddressType) -> Self {
264        self.inner = self.inner.ip_address_type(input);
265        self
266    }
267    /// <p>Specify either dual stack or IPv4 as your IP address type. Dual stack allows you to share domain resources across IPv4 and IPv6 address types, and is the recommended option. If your IP address type is currently set to dual stack, you can't change it.</p>
268    pub fn set_ip_address_type(mut self, input: ::std::option::Option<crate::types::IpAddressType>) -> Self {
269        self.inner = self.inner.set_ip_address_type(input);
270        self
271    }
272    /// <p>Specify either dual stack or IPv4 as your IP address type. Dual stack allows you to share domain resources across IPv4 and IPv6 address types, and is the recommended option. If your IP address type is currently set to dual stack, you can't change it.</p>
273    pub fn get_ip_address_type(&self) -> &::std::option::Option<crate::types::IpAddressType> {
274        self.inner.get_ip_address_type()
275    }
276    ///
277    /// Adds a key-value pair to `LogPublishingOptions`.
278    ///
279    /// To override the contents of this collection use [`set_log_publishing_options`](Self::set_log_publishing_options).
280    ///
281    /// <p>Options to publish OpenSearch logs to Amazon CloudWatch Logs.</p>
282    pub fn log_publishing_options(mut self, k: crate::types::LogType, v: crate::types::LogPublishingOption) -> Self {
283        self.inner = self.inner.log_publishing_options(k, v);
284        self
285    }
286    /// <p>Options to publish OpenSearch logs to Amazon CloudWatch Logs.</p>
287    pub fn set_log_publishing_options(
288        mut self,
289        input: ::std::option::Option<::std::collections::HashMap<crate::types::LogType, crate::types::LogPublishingOption>>,
290    ) -> Self {
291        self.inner = self.inner.set_log_publishing_options(input);
292        self
293    }
294    /// <p>Options to publish OpenSearch logs to Amazon CloudWatch Logs.</p>
295    pub fn get_log_publishing_options(
296        &self,
297    ) -> &::std::option::Option<::std::collections::HashMap<crate::types::LogType, crate::types::LogPublishingOption>> {
298        self.inner.get_log_publishing_options()
299    }
300    /// <p>Encryption at rest options for the domain.</p>
301    pub fn encryption_at_rest_options(mut self, input: crate::types::EncryptionAtRestOptions) -> Self {
302        self.inner = self.inner.encryption_at_rest_options(input);
303        self
304    }
305    /// <p>Encryption at rest options for the domain.</p>
306    pub fn set_encryption_at_rest_options(mut self, input: ::std::option::Option<crate::types::EncryptionAtRestOptions>) -> Self {
307        self.inner = self.inner.set_encryption_at_rest_options(input);
308        self
309    }
310    /// <p>Encryption at rest options for the domain.</p>
311    pub fn get_encryption_at_rest_options(&self) -> &::std::option::Option<crate::types::EncryptionAtRestOptions> {
312        self.inner.get_encryption_at_rest_options()
313    }
314    /// <p>Additional options for the domain endpoint, such as whether to require HTTPS for all traffic.</p>
315    pub fn domain_endpoint_options(mut self, input: crate::types::DomainEndpointOptions) -> Self {
316        self.inner = self.inner.domain_endpoint_options(input);
317        self
318    }
319    /// <p>Additional options for the domain endpoint, such as whether to require HTTPS for all traffic.</p>
320    pub fn set_domain_endpoint_options(mut self, input: ::std::option::Option<crate::types::DomainEndpointOptions>) -> Self {
321        self.inner = self.inner.set_domain_endpoint_options(input);
322        self
323    }
324    /// <p>Additional options for the domain endpoint, such as whether to require HTTPS for all traffic.</p>
325    pub fn get_domain_endpoint_options(&self) -> &::std::option::Option<crate::types::DomainEndpointOptions> {
326        self.inner.get_domain_endpoint_options()
327    }
328    /// <p>Node-to-node encryption options for the domain.</p>
329    pub fn node_to_node_encryption_options(mut self, input: crate::types::NodeToNodeEncryptionOptions) -> Self {
330        self.inner = self.inner.node_to_node_encryption_options(input);
331        self
332    }
333    /// <p>Node-to-node encryption options for the domain.</p>
334    pub fn set_node_to_node_encryption_options(mut self, input: ::std::option::Option<crate::types::NodeToNodeEncryptionOptions>) -> Self {
335        self.inner = self.inner.set_node_to_node_encryption_options(input);
336        self
337    }
338    /// <p>Node-to-node encryption options for the domain.</p>
339    pub fn get_node_to_node_encryption_options(&self) -> &::std::option::Option<crate::types::NodeToNodeEncryptionOptions> {
340        self.inner.get_node_to_node_encryption_options()
341    }
342    /// <p>Options for fine-grained access control.</p>
343    pub fn advanced_security_options(mut self, input: crate::types::AdvancedSecurityOptionsInput) -> Self {
344        self.inner = self.inner.advanced_security_options(input);
345        self
346    }
347    /// <p>Options for fine-grained access control.</p>
348    pub fn set_advanced_security_options(mut self, input: ::std::option::Option<crate::types::AdvancedSecurityOptionsInput>) -> Self {
349        self.inner = self.inner.set_advanced_security_options(input);
350        self
351    }
352    /// <p>Options for fine-grained access control.</p>
353    pub fn get_advanced_security_options(&self) -> &::std::option::Option<crate::types::AdvancedSecurityOptionsInput> {
354        self.inner.get_advanced_security_options()
355    }
356    /// <p>Configuration settings for enabling and managing IAM Identity Center.</p>
357    pub fn identity_center_options(mut self, input: crate::types::IdentityCenterOptionsInput) -> Self {
358        self.inner = self.inner.identity_center_options(input);
359        self
360    }
361    /// <p>Configuration settings for enabling and managing IAM Identity Center.</p>
362    pub fn set_identity_center_options(mut self, input: ::std::option::Option<crate::types::IdentityCenterOptionsInput>) -> Self {
363        self.inner = self.inner.set_identity_center_options(input);
364        self
365    }
366    /// <p>Configuration settings for enabling and managing IAM Identity Center.</p>
367    pub fn get_identity_center_options(&self) -> &::std::option::Option<crate::types::IdentityCenterOptionsInput> {
368        self.inner.get_identity_center_options()
369    }
370    /// <p>Options for Auto-Tune.</p>
371    pub fn auto_tune_options(mut self, input: crate::types::AutoTuneOptions) -> Self {
372        self.inner = self.inner.auto_tune_options(input);
373        self
374    }
375    /// <p>Options for Auto-Tune.</p>
376    pub fn set_auto_tune_options(mut self, input: ::std::option::Option<crate::types::AutoTuneOptions>) -> Self {
377        self.inner = self.inner.set_auto_tune_options(input);
378        self
379    }
380    /// <p>Options for Auto-Tune.</p>
381    pub fn get_auto_tune_options(&self) -> &::std::option::Option<crate::types::AutoTuneOptions> {
382        self.inner.get_auto_tune_options()
383    }
384    /// <p>This flag, when set to True, specifies whether the <code>UpdateDomain</code> request should return the results of a dry run analysis without actually applying the change. A dry run determines what type of deployment the update will cause.</p>
385    pub fn dry_run(mut self, input: bool) -> Self {
386        self.inner = self.inner.dry_run(input);
387        self
388    }
389    /// <p>This flag, when set to True, specifies whether the <code>UpdateDomain</code> request should return the results of a dry run analysis without actually applying the change. A dry run determines what type of deployment the update will cause.</p>
390    pub fn set_dry_run(mut self, input: ::std::option::Option<bool>) -> Self {
391        self.inner = self.inner.set_dry_run(input);
392        self
393    }
394    /// <p>This flag, when set to True, specifies whether the <code>UpdateDomain</code> request should return the results of a dry run analysis without actually applying the change. A dry run determines what type of deployment the update will cause.</p>
395    pub fn get_dry_run(&self) -> &::std::option::Option<bool> {
396        self.inner.get_dry_run()
397    }
398    /// <p>The type of dry run to perform.</p>
399    /// <ul>
400    /// <li>
401    /// <p><code>Basic</code> only returns the type of deployment (blue/green or dynamic) that the update will cause.</p></li>
402    /// <li>
403    /// <p><code>Verbose</code> runs an additional check to validate the changes you're making. For more information, see <a href="https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-configuration-changes#validation-check">Validating a domain update</a>.</p></li>
404    /// </ul>
405    pub fn dry_run_mode(mut self, input: crate::types::DryRunMode) -> Self {
406        self.inner = self.inner.dry_run_mode(input);
407        self
408    }
409    /// <p>The type of dry run to perform.</p>
410    /// <ul>
411    /// <li>
412    /// <p><code>Basic</code> only returns the type of deployment (blue/green or dynamic) that the update will cause.</p></li>
413    /// <li>
414    /// <p><code>Verbose</code> runs an additional check to validate the changes you're making. For more information, see <a href="https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-configuration-changes#validation-check">Validating a domain update</a>.</p></li>
415    /// </ul>
416    pub fn set_dry_run_mode(mut self, input: ::std::option::Option<crate::types::DryRunMode>) -> Self {
417        self.inner = self.inner.set_dry_run_mode(input);
418        self
419    }
420    /// <p>The type of dry run to perform.</p>
421    /// <ul>
422    /// <li>
423    /// <p><code>Basic</code> only returns the type of deployment (blue/green or dynamic) that the update will cause.</p></li>
424    /// <li>
425    /// <p><code>Verbose</code> runs an additional check to validate the changes you're making. For more information, see <a href="https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-configuration-changes#validation-check">Validating a domain update</a>.</p></li>
426    /// </ul>
427    pub fn get_dry_run_mode(&self) -> &::std::option::Option<crate::types::DryRunMode> {
428        self.inner.get_dry_run_mode()
429    }
430    /// <p>Off-peak window options for the domain.</p>
431    pub fn off_peak_window_options(mut self, input: crate::types::OffPeakWindowOptions) -> Self {
432        self.inner = self.inner.off_peak_window_options(input);
433        self
434    }
435    /// <p>Off-peak window options for the domain.</p>
436    pub fn set_off_peak_window_options(mut self, input: ::std::option::Option<crate::types::OffPeakWindowOptions>) -> Self {
437        self.inner = self.inner.set_off_peak_window_options(input);
438        self
439    }
440    /// <p>Off-peak window options for the domain.</p>
441    pub fn get_off_peak_window_options(&self) -> &::std::option::Option<crate::types::OffPeakWindowOptions> {
442        self.inner.get_off_peak_window_options()
443    }
444    /// <p>Service software update options for the domain.</p>
445    pub fn software_update_options(mut self, input: crate::types::SoftwareUpdateOptions) -> Self {
446        self.inner = self.inner.software_update_options(input);
447        self
448    }
449    /// <p>Service software update options for the domain.</p>
450    pub fn set_software_update_options(mut self, input: ::std::option::Option<crate::types::SoftwareUpdateOptions>) -> Self {
451        self.inner = self.inner.set_software_update_options(input);
452        self
453    }
454    /// <p>Service software update options for the domain.</p>
455    pub fn get_software_update_options(&self) -> &::std::option::Option<crate::types::SoftwareUpdateOptions> {
456        self.inner.get_software_update_options()
457    }
458    /// <p>Options for all machine learning features for the specified domain.</p>
459    pub fn aiml_options(mut self, input: crate::types::AimlOptionsInput) -> Self {
460        self.inner = self.inner.aiml_options(input);
461        self
462    }
463    /// <p>Options for all machine learning features for the specified domain.</p>
464    pub fn set_aiml_options(mut self, input: ::std::option::Option<crate::types::AimlOptionsInput>) -> Self {
465        self.inner = self.inner.set_aiml_options(input);
466        self
467    }
468    /// <p>Options for all machine learning features for the specified domain.</p>
469    pub fn get_aiml_options(&self) -> &::std::option::Option<crate::types::AimlOptionsInput> {
470        self.inner.get_aiml_options()
471    }
472}