aws_sdk_opensearch/operation/create_domain/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_domain::_create_domain_output::CreateDomainOutputBuilder;
3
4pub use crate::operation::create_domain::_create_domain_input::CreateDomainInputBuilder;
5
6impl crate::operation::create_domain::builders::CreateDomainInputBuilder {
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::create_domain::CreateDomainOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_domain::CreateDomainError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_domain();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateDomain`.
24///
25/// <p>Creates an Amazon OpenSearch Service domain. For more information, see <a href="https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html">Creating and managing Amazon OpenSearch Service domains</a>.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct CreateDomainFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::create_domain::builders::CreateDomainInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::create_domain::CreateDomainOutput,
35        crate::operation::create_domain::CreateDomainError,
36    > for CreateDomainFluentBuilder
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::create_domain::CreateDomainOutput,
44            crate::operation::create_domain::CreateDomainError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl CreateDomainFluentBuilder {
51    /// Creates a new `CreateDomainFluentBuilder`.
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 CreateDomain as a reference.
60    pub fn as_input(&self) -> &crate::operation::create_domain::builders::CreateDomainInputBuilder {
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::create_domain::CreateDomainOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::create_domain::CreateDomainError,
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::create_domain::CreateDomain::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::create_domain::CreateDomain::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::create_domain::CreateDomainOutput,
97        crate::operation::create_domain::CreateDomainError,
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>Name of the OpenSearch Service domain to create. Domain names are unique across the domains owned by an account within an Amazon Web Services Region.</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>Name of the OpenSearch Service domain to create. Domain names are unique across the domains owned by an account within an Amazon Web Services Region.</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>Name of the OpenSearch Service domain to create. Domain names are unique across the domains owned by an account within an Amazon Web Services Region.</p>
122    pub fn get_domain_name(&self) -> &::std::option::Option<::std::string::String> {
123        self.inner.get_domain_name()
124    }
125    /// <p>String of format Elasticsearch_X.Y or OpenSearch_X.Y to specify the engine version for the OpenSearch Service domain. For example, <code>OpenSearch_1.0</code> or <code>Elasticsearch_7.9</code>. For more information, see <a href="https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomains">Creating and managing Amazon OpenSearch Service domains</a>.</p>
126    pub fn engine_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
127        self.inner = self.inner.engine_version(input.into());
128        self
129    }
130    /// <p>String of format Elasticsearch_X.Y or OpenSearch_X.Y to specify the engine version for the OpenSearch Service domain. For example, <code>OpenSearch_1.0</code> or <code>Elasticsearch_7.9</code>. For more information, see <a href="https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomains">Creating and managing Amazon OpenSearch Service domains</a>.</p>
131    pub fn set_engine_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
132        self.inner = self.inner.set_engine_version(input);
133        self
134    }
135    /// <p>String of format Elasticsearch_X.Y or OpenSearch_X.Y to specify the engine version for the OpenSearch Service domain. For example, <code>OpenSearch_1.0</code> or <code>Elasticsearch_7.9</code>. For more information, see <a href="https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomains">Creating and managing Amazon OpenSearch Service domains</a>.</p>
136    pub fn get_engine_version(&self) -> &::std::option::Option<::std::string::String> {
137        self.inner.get_engine_version()
138    }
139    /// <p>Container for the cluster configuration of a domain.</p>
140    pub fn cluster_config(mut self, input: crate::types::ClusterConfig) -> Self {
141        self.inner = self.inner.cluster_config(input);
142        self
143    }
144    /// <p>Container for the cluster configuration of a domain.</p>
145    pub fn set_cluster_config(mut self, input: ::std::option::Option<crate::types::ClusterConfig>) -> Self {
146        self.inner = self.inner.set_cluster_config(input);
147        self
148    }
149    /// <p>Container for the cluster configuration of a domain.</p>
150    pub fn get_cluster_config(&self) -> &::std::option::Option<crate::types::ClusterConfig> {
151        self.inner.get_cluster_config()
152    }
153    /// <p>Container for the parameters required to enable EBS-based storage for an OpenSearch Service domain.</p>
154    pub fn ebs_options(mut self, input: crate::types::EbsOptions) -> Self {
155        self.inner = self.inner.ebs_options(input);
156        self
157    }
158    /// <p>Container for the parameters required to enable EBS-based storage for an OpenSearch Service domain.</p>
159    pub fn set_ebs_options(mut self, input: ::std::option::Option<crate::types::EbsOptions>) -> Self {
160        self.inner = self.inner.set_ebs_options(input);
161        self
162    }
163    /// <p>Container for the parameters required to enable EBS-based storage for an OpenSearch Service domain.</p>
164    pub fn get_ebs_options(&self) -> &::std::option::Option<crate::types::EbsOptions> {
165        self.inner.get_ebs_options()
166    }
167    /// <p>Identity and Access Management (IAM) policy document specifying the access policies for the new domain.</p>
168    pub fn access_policies(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
169        self.inner = self.inner.access_policies(input.into());
170        self
171    }
172    /// <p>Identity and Access Management (IAM) policy document specifying the access policies for the new domain.</p>
173    pub fn set_access_policies(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
174        self.inner = self.inner.set_access_policies(input);
175        self
176    }
177    /// <p>Identity and Access Management (IAM) policy document specifying the access policies for the new domain.</p>
178    pub fn get_access_policies(&self) -> &::std::option::Option<::std::string::String> {
179        self.inner.get_access_policies()
180    }
181    /// <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 you set your IP address type to dual stack, you can't change your address type later.</p>
182    pub fn ip_address_type(mut self, input: crate::types::IpAddressType) -> Self {
183        self.inner = self.inner.ip_address_type(input);
184        self
185    }
186    /// <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 you set your IP address type to dual stack, you can't change your address type later.</p>
187    pub fn set_ip_address_type(mut self, input: ::std::option::Option<crate::types::IpAddressType>) -> Self {
188        self.inner = self.inner.set_ip_address_type(input);
189        self
190    }
191    /// <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 you set your IP address type to dual stack, you can't change your address type later.</p>
192    pub fn get_ip_address_type(&self) -> &::std::option::Option<crate::types::IpAddressType> {
193        self.inner.get_ip_address_type()
194    }
195    /// <p>DEPRECATED. Container for the parameters required to configure automated snapshots of domain indexes.</p>
196    pub fn snapshot_options(mut self, input: crate::types::SnapshotOptions) -> Self {
197        self.inner = self.inner.snapshot_options(input);
198        self
199    }
200    /// <p>DEPRECATED. Container for the parameters required to configure automated snapshots of domain indexes.</p>
201    pub fn set_snapshot_options(mut self, input: ::std::option::Option<crate::types::SnapshotOptions>) -> Self {
202        self.inner = self.inner.set_snapshot_options(input);
203        self
204    }
205    /// <p>DEPRECATED. Container for the parameters required to configure automated snapshots of domain indexes.</p>
206    pub fn get_snapshot_options(&self) -> &::std::option::Option<crate::types::SnapshotOptions> {
207        self.inner.get_snapshot_options()
208    }
209    /// <p>Container for the values required to configure VPC access domains. If you don't specify these values, OpenSearch Service creates the domain with a public 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>
210    pub fn vpc_options(mut self, input: crate::types::VpcOptions) -> Self {
211        self.inner = self.inner.vpc_options(input);
212        self
213    }
214    /// <p>Container for the values required to configure VPC access domains. If you don't specify these values, OpenSearch Service creates the domain with a public 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>
215    pub fn set_vpc_options(mut self, input: ::std::option::Option<crate::types::VpcOptions>) -> Self {
216        self.inner = self.inner.set_vpc_options(input);
217        self
218    }
219    /// <p>Container for the values required to configure VPC access domains. If you don't specify these values, OpenSearch Service creates the domain with a public 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>
220    pub fn get_vpc_options(&self) -> &::std::option::Option<crate::types::VpcOptions> {
221        self.inner.get_vpc_options()
222    }
223    /// <p>Key-value pairs to configure Amazon Cognito authentication. For more information, see <a href="https://docs.aws.amazon.com/opensearch-service/latest/developerguide/cognito-auth.html">Configuring Amazon Cognito authentication for OpenSearch Dashboards</a>.</p>
224    pub fn cognito_options(mut self, input: crate::types::CognitoOptions) -> Self {
225        self.inner = self.inner.cognito_options(input);
226        self
227    }
228    /// <p>Key-value pairs to configure Amazon Cognito authentication. For more information, see <a href="https://docs.aws.amazon.com/opensearch-service/latest/developerguide/cognito-auth.html">Configuring Amazon Cognito authentication for OpenSearch Dashboards</a>.</p>
229    pub fn set_cognito_options(mut self, input: ::std::option::Option<crate::types::CognitoOptions>) -> Self {
230        self.inner = self.inner.set_cognito_options(input);
231        self
232    }
233    /// <p>Key-value pairs to configure Amazon Cognito authentication. For more information, see <a href="https://docs.aws.amazon.com/opensearch-service/latest/developerguide/cognito-auth.html">Configuring Amazon Cognito authentication for OpenSearch Dashboards</a>.</p>
234    pub fn get_cognito_options(&self) -> &::std::option::Option<crate::types::CognitoOptions> {
235        self.inner.get_cognito_options()
236    }
237    /// <p>Key-value pairs to enable encryption at rest.</p>
238    pub fn encryption_at_rest_options(mut self, input: crate::types::EncryptionAtRestOptions) -> Self {
239        self.inner = self.inner.encryption_at_rest_options(input);
240        self
241    }
242    /// <p>Key-value pairs to enable encryption at rest.</p>
243    pub fn set_encryption_at_rest_options(mut self, input: ::std::option::Option<crate::types::EncryptionAtRestOptions>) -> Self {
244        self.inner = self.inner.set_encryption_at_rest_options(input);
245        self
246    }
247    /// <p>Key-value pairs to enable encryption at rest.</p>
248    pub fn get_encryption_at_rest_options(&self) -> &::std::option::Option<crate::types::EncryptionAtRestOptions> {
249        self.inner.get_encryption_at_rest_options()
250    }
251    /// <p>Enables node-to-node encryption.</p>
252    pub fn node_to_node_encryption_options(mut self, input: crate::types::NodeToNodeEncryptionOptions) -> Self {
253        self.inner = self.inner.node_to_node_encryption_options(input);
254        self
255    }
256    /// <p>Enables node-to-node encryption.</p>
257    pub fn set_node_to_node_encryption_options(mut self, input: ::std::option::Option<crate::types::NodeToNodeEncryptionOptions>) -> Self {
258        self.inner = self.inner.set_node_to_node_encryption_options(input);
259        self
260    }
261    /// <p>Enables node-to-node encryption.</p>
262    pub fn get_node_to_node_encryption_options(&self) -> &::std::option::Option<crate::types::NodeToNodeEncryptionOptions> {
263        self.inner.get_node_to_node_encryption_options()
264    }
265    ///
266    /// Adds a key-value pair to `AdvancedOptions`.
267    ///
268    /// To override the contents of this collection use [`set_advanced_options`](Self::set_advanced_options).
269    ///
270    /// <p>Key-value pairs to specify advanced configuration options. The following key-value pairs are supported:</p>
271    /// <ul>
272    /// <li>
273    /// <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>
274    /// <li>
275    /// <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>
276    /// <li>
277    /// <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>
278    /// <li>
279    /// <p><code>"override_main_response_version": "true" | "false"</code> - Note the use of a string rather than a boolean. Specifies whether the domain reports its version as 7.10 to allow Elasticsearch OSS clients and plugins to continue working with it. Default is false when creating a domain and true when upgrading a domain.</p></li>
280    /// </ul>
281    /// <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>
282    pub fn advanced_options(
283        mut self,
284        k: impl ::std::convert::Into<::std::string::String>,
285        v: impl ::std::convert::Into<::std::string::String>,
286    ) -> Self {
287        self.inner = self.inner.advanced_options(k.into(), v.into());
288        self
289    }
290    /// <p>Key-value pairs to specify advanced configuration options. The following key-value pairs are supported:</p>
291    /// <ul>
292    /// <li>
293    /// <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>
294    /// <li>
295    /// <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>
296    /// <li>
297    /// <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>
298    /// <li>
299    /// <p><code>"override_main_response_version": "true" | "false"</code> - Note the use of a string rather than a boolean. Specifies whether the domain reports its version as 7.10 to allow Elasticsearch OSS clients and plugins to continue working with it. Default is false when creating a domain and true when upgrading a domain.</p></li>
300    /// </ul>
301    /// <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>
302    pub fn set_advanced_options(
303        mut self,
304        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
305    ) -> Self {
306        self.inner = self.inner.set_advanced_options(input);
307        self
308    }
309    /// <p>Key-value pairs to specify advanced configuration options. The following key-value pairs are supported:</p>
310    /// <ul>
311    /// <li>
312    /// <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>
313    /// <li>
314    /// <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>
315    /// <li>
316    /// <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>
317    /// <li>
318    /// <p><code>"override_main_response_version": "true" | "false"</code> - Note the use of a string rather than a boolean. Specifies whether the domain reports its version as 7.10 to allow Elasticsearch OSS clients and plugins to continue working with it. Default is false when creating a domain and true when upgrading a domain.</p></li>
319    /// </ul>
320    /// <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>
321    pub fn get_advanced_options(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
322        self.inner.get_advanced_options()
323    }
324    ///
325    /// Adds a key-value pair to `LogPublishingOptions`.
326    ///
327    /// To override the contents of this collection use [`set_log_publishing_options`](Self::set_log_publishing_options).
328    ///
329    /// <p>Key-value pairs to configure log publishing.</p>
330    pub fn log_publishing_options(mut self, k: crate::types::LogType, v: crate::types::LogPublishingOption) -> Self {
331        self.inner = self.inner.log_publishing_options(k, v);
332        self
333    }
334    /// <p>Key-value pairs to configure log publishing.</p>
335    pub fn set_log_publishing_options(
336        mut self,
337        input: ::std::option::Option<::std::collections::HashMap<crate::types::LogType, crate::types::LogPublishingOption>>,
338    ) -> Self {
339        self.inner = self.inner.set_log_publishing_options(input);
340        self
341    }
342    /// <p>Key-value pairs to configure log publishing.</p>
343    pub fn get_log_publishing_options(
344        &self,
345    ) -> &::std::option::Option<::std::collections::HashMap<crate::types::LogType, crate::types::LogPublishingOption>> {
346        self.inner.get_log_publishing_options()
347    }
348    /// <p>Additional options for the domain endpoint, such as whether to require HTTPS for all traffic.</p>
349    pub fn domain_endpoint_options(mut self, input: crate::types::DomainEndpointOptions) -> Self {
350        self.inner = self.inner.domain_endpoint_options(input);
351        self
352    }
353    /// <p>Additional options for the domain endpoint, such as whether to require HTTPS for all traffic.</p>
354    pub fn set_domain_endpoint_options(mut self, input: ::std::option::Option<crate::types::DomainEndpointOptions>) -> Self {
355        self.inner = self.inner.set_domain_endpoint_options(input);
356        self
357    }
358    /// <p>Additional options for the domain endpoint, such as whether to require HTTPS for all traffic.</p>
359    pub fn get_domain_endpoint_options(&self) -> &::std::option::Option<crate::types::DomainEndpointOptions> {
360        self.inner.get_domain_endpoint_options()
361    }
362    /// <p>Options for fine-grained access control.</p>
363    pub fn advanced_security_options(mut self, input: crate::types::AdvancedSecurityOptionsInput) -> Self {
364        self.inner = self.inner.advanced_security_options(input);
365        self
366    }
367    /// <p>Options for fine-grained access control.</p>
368    pub fn set_advanced_security_options(mut self, input: ::std::option::Option<crate::types::AdvancedSecurityOptionsInput>) -> Self {
369        self.inner = self.inner.set_advanced_security_options(input);
370        self
371    }
372    /// <p>Options for fine-grained access control.</p>
373    pub fn get_advanced_security_options(&self) -> &::std::option::Option<crate::types::AdvancedSecurityOptionsInput> {
374        self.inner.get_advanced_security_options()
375    }
376    /// <p>Configuration options for enabling and managing IAM Identity Center integration within a domain.</p>
377    pub fn identity_center_options(mut self, input: crate::types::IdentityCenterOptionsInput) -> Self {
378        self.inner = self.inner.identity_center_options(input);
379        self
380    }
381    /// <p>Configuration options for enabling and managing IAM Identity Center integration within a domain.</p>
382    pub fn set_identity_center_options(mut self, input: ::std::option::Option<crate::types::IdentityCenterOptionsInput>) -> Self {
383        self.inner = self.inner.set_identity_center_options(input);
384        self
385    }
386    /// <p>Configuration options for enabling and managing IAM Identity Center integration within a domain.</p>
387    pub fn get_identity_center_options(&self) -> &::std::option::Option<crate::types::IdentityCenterOptionsInput> {
388        self.inner.get_identity_center_options()
389    }
390    ///
391    /// Appends an item to `TagList`.
392    ///
393    /// To override the contents of this collection use [`set_tag_list`](Self::set_tag_list).
394    ///
395    /// <p>List of tags to add to the domain upon creation.</p>
396    pub fn tag_list(mut self, input: crate::types::Tag) -> Self {
397        self.inner = self.inner.tag_list(input);
398        self
399    }
400    /// <p>List of tags to add to the domain upon creation.</p>
401    pub fn set_tag_list(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
402        self.inner = self.inner.set_tag_list(input);
403        self
404    }
405    /// <p>List of tags to add to the domain upon creation.</p>
406    pub fn get_tag_list(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
407        self.inner.get_tag_list()
408    }
409    /// <p>Options for Auto-Tune.</p>
410    pub fn auto_tune_options(mut self, input: crate::types::AutoTuneOptionsInput) -> Self {
411        self.inner = self.inner.auto_tune_options(input);
412        self
413    }
414    /// <p>Options for Auto-Tune.</p>
415    pub fn set_auto_tune_options(mut self, input: ::std::option::Option<crate::types::AutoTuneOptionsInput>) -> Self {
416        self.inner = self.inner.set_auto_tune_options(input);
417        self
418    }
419    /// <p>Options for Auto-Tune.</p>
420    pub fn get_auto_tune_options(&self) -> &::std::option::Option<crate::types::AutoTuneOptionsInput> {
421        self.inner.get_auto_tune_options()
422    }
423    /// <p>Specifies a daily 10-hour time block during which OpenSearch Service can perform configuration changes on the domain, including service software updates and Auto-Tune enhancements that require a blue/green deployment. If no options are specified, the default start time of 10:00 P.M. local time (for the Region that the domain is created in) is used.</p>
424    pub fn off_peak_window_options(mut self, input: crate::types::OffPeakWindowOptions) -> Self {
425        self.inner = self.inner.off_peak_window_options(input);
426        self
427    }
428    /// <p>Specifies a daily 10-hour time block during which OpenSearch Service can perform configuration changes on the domain, including service software updates and Auto-Tune enhancements that require a blue/green deployment. If no options are specified, the default start time of 10:00 P.M. local time (for the Region that the domain is created in) is used.</p>
429    pub fn set_off_peak_window_options(mut self, input: ::std::option::Option<crate::types::OffPeakWindowOptions>) -> Self {
430        self.inner = self.inner.set_off_peak_window_options(input);
431        self
432    }
433    /// <p>Specifies a daily 10-hour time block during which OpenSearch Service can perform configuration changes on the domain, including service software updates and Auto-Tune enhancements that require a blue/green deployment. If no options are specified, the default start time of 10:00 P.M. local time (for the Region that the domain is created in) is used.</p>
434    pub fn get_off_peak_window_options(&self) -> &::std::option::Option<crate::types::OffPeakWindowOptions> {
435        self.inner.get_off_peak_window_options()
436    }
437    /// <p>Software update options for the domain.</p>
438    pub fn software_update_options(mut self, input: crate::types::SoftwareUpdateOptions) -> Self {
439        self.inner = self.inner.software_update_options(input);
440        self
441    }
442    /// <p>Software update options for the domain.</p>
443    pub fn set_software_update_options(mut self, input: ::std::option::Option<crate::types::SoftwareUpdateOptions>) -> Self {
444        self.inner = self.inner.set_software_update_options(input);
445        self
446    }
447    /// <p>Software update options for the domain.</p>
448    pub fn get_software_update_options(&self) -> &::std::option::Option<crate::types::SoftwareUpdateOptions> {
449        self.inner.get_software_update_options()
450    }
451    /// <p>Options for all machine learning features for the specified domain.</p>
452    pub fn aiml_options(mut self, input: crate::types::AimlOptionsInput) -> Self {
453        self.inner = self.inner.aiml_options(input);
454        self
455    }
456    /// <p>Options for all machine learning features for the specified domain.</p>
457    pub fn set_aiml_options(mut self, input: ::std::option::Option<crate::types::AimlOptionsInput>) -> Self {
458        self.inner = self.inner.set_aiml_options(input);
459        self
460    }
461    /// <p>Options for all machine learning features for the specified domain.</p>
462    pub fn get_aiml_options(&self) -> &::std::option::Option<crate::types::AimlOptionsInput> {
463        self.inner.get_aiml_options()
464    }
465}