aws_sdk_opensearch/operation/create_domain/_create_domain_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, ::std::fmt::Debug)]
5pub struct CreateDomainInput {
6 /// <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>
7 pub domain_name: ::std::option::Option<::std::string::String>,
8 /// <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>
9 pub engine_version: ::std::option::Option<::std::string::String>,
10 /// <p>Container for the cluster configuration of a domain.</p>
11 pub cluster_config: ::std::option::Option<crate::types::ClusterConfig>,
12 /// <p>Container for the parameters required to enable EBS-based storage for an OpenSearch Service domain.</p>
13 pub ebs_options: ::std::option::Option<crate::types::EbsOptions>,
14 /// <p>Identity and Access Management (IAM) policy document specifying the access policies for the new domain.</p>
15 pub access_policies: ::std::option::Option<::std::string::String>,
16 /// <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>
17 pub ip_address_type: ::std::option::Option<crate::types::IpAddressType>,
18 /// <p>DEPRECATED. Container for the parameters required to configure automated snapshots of domain indexes.</p>
19 pub snapshot_options: ::std::option::Option<crate::types::SnapshotOptions>,
20 /// <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>
21 pub vpc_options: ::std::option::Option<crate::types::VpcOptions>,
22 /// <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>
23 pub cognito_options: ::std::option::Option<crate::types::CognitoOptions>,
24 /// <p>Key-value pairs to enable encryption at rest.</p>
25 pub encryption_at_rest_options: ::std::option::Option<crate::types::EncryptionAtRestOptions>,
26 /// <p>Enables node-to-node encryption.</p>
27 pub node_to_node_encryption_options: ::std::option::Option<crate::types::NodeToNodeEncryptionOptions>,
28 /// <p>Key-value pairs to specify advanced configuration options. The following key-value pairs are supported:</p>
29 /// <ul>
30 /// <li>
31 /// <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>
32 /// <li>
33 /// <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>
34 /// <li>
35 /// <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>
36 /// <li>
37 /// <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>
38 /// </ul>
39 /// <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>
40 pub advanced_options: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
41 /// <p>Key-value pairs to configure log publishing.</p>
42 pub log_publishing_options: ::std::option::Option<::std::collections::HashMap<crate::types::LogType, crate::types::LogPublishingOption>>,
43 /// <p>Additional options for the domain endpoint, such as whether to require HTTPS for all traffic.</p>
44 pub domain_endpoint_options: ::std::option::Option<crate::types::DomainEndpointOptions>,
45 /// <p>Options for fine-grained access control.</p>
46 pub advanced_security_options: ::std::option::Option<crate::types::AdvancedSecurityOptionsInput>,
47 /// <p>Configuration options for enabling and managing IAM Identity Center integration within a domain.</p>
48 pub identity_center_options: ::std::option::Option<crate::types::IdentityCenterOptionsInput>,
49 /// <p>List of tags to add to the domain upon creation.</p>
50 pub tag_list: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
51 /// <p>Options for Auto-Tune.</p>
52 pub auto_tune_options: ::std::option::Option<crate::types::AutoTuneOptionsInput>,
53 /// <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>
54 pub off_peak_window_options: ::std::option::Option<crate::types::OffPeakWindowOptions>,
55 /// <p>Software update options for the domain.</p>
56 pub software_update_options: ::std::option::Option<crate::types::SoftwareUpdateOptions>,
57 /// <p>Options for all machine learning features for the specified domain.</p>
58 pub aiml_options: ::std::option::Option<crate::types::AimlOptionsInput>,
59}
60impl CreateDomainInput {
61 /// <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>
62 pub fn domain_name(&self) -> ::std::option::Option<&str> {
63 self.domain_name.as_deref()
64 }
65 /// <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>
66 pub fn engine_version(&self) -> ::std::option::Option<&str> {
67 self.engine_version.as_deref()
68 }
69 /// <p>Container for the cluster configuration of a domain.</p>
70 pub fn cluster_config(&self) -> ::std::option::Option<&crate::types::ClusterConfig> {
71 self.cluster_config.as_ref()
72 }
73 /// <p>Container for the parameters required to enable EBS-based storage for an OpenSearch Service domain.</p>
74 pub fn ebs_options(&self) -> ::std::option::Option<&crate::types::EbsOptions> {
75 self.ebs_options.as_ref()
76 }
77 /// <p>Identity and Access Management (IAM) policy document specifying the access policies for the new domain.</p>
78 pub fn access_policies(&self) -> ::std::option::Option<&str> {
79 self.access_policies.as_deref()
80 }
81 /// <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>
82 pub fn ip_address_type(&self) -> ::std::option::Option<&crate::types::IpAddressType> {
83 self.ip_address_type.as_ref()
84 }
85 /// <p>DEPRECATED. Container for the parameters required to configure automated snapshots of domain indexes.</p>
86 pub fn snapshot_options(&self) -> ::std::option::Option<&crate::types::SnapshotOptions> {
87 self.snapshot_options.as_ref()
88 }
89 /// <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>
90 pub fn vpc_options(&self) -> ::std::option::Option<&crate::types::VpcOptions> {
91 self.vpc_options.as_ref()
92 }
93 /// <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>
94 pub fn cognito_options(&self) -> ::std::option::Option<&crate::types::CognitoOptions> {
95 self.cognito_options.as_ref()
96 }
97 /// <p>Key-value pairs to enable encryption at rest.</p>
98 pub fn encryption_at_rest_options(&self) -> ::std::option::Option<&crate::types::EncryptionAtRestOptions> {
99 self.encryption_at_rest_options.as_ref()
100 }
101 /// <p>Enables node-to-node encryption.</p>
102 pub fn node_to_node_encryption_options(&self) -> ::std::option::Option<&crate::types::NodeToNodeEncryptionOptions> {
103 self.node_to_node_encryption_options.as_ref()
104 }
105 /// <p>Key-value pairs to specify advanced configuration options. The following key-value pairs are supported:</p>
106 /// <ul>
107 /// <li>
108 /// <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>
109 /// <li>
110 /// <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>
111 /// <li>
112 /// <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>
113 /// <li>
114 /// <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>
115 /// </ul>
116 /// <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>
117 pub fn advanced_options(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
118 self.advanced_options.as_ref()
119 }
120 /// <p>Key-value pairs to configure log publishing.</p>
121 pub fn log_publishing_options(
122 &self,
123 ) -> ::std::option::Option<&::std::collections::HashMap<crate::types::LogType, crate::types::LogPublishingOption>> {
124 self.log_publishing_options.as_ref()
125 }
126 /// <p>Additional options for the domain endpoint, such as whether to require HTTPS for all traffic.</p>
127 pub fn domain_endpoint_options(&self) -> ::std::option::Option<&crate::types::DomainEndpointOptions> {
128 self.domain_endpoint_options.as_ref()
129 }
130 /// <p>Options for fine-grained access control.</p>
131 pub fn advanced_security_options(&self) -> ::std::option::Option<&crate::types::AdvancedSecurityOptionsInput> {
132 self.advanced_security_options.as_ref()
133 }
134 /// <p>Configuration options for enabling and managing IAM Identity Center integration within a domain.</p>
135 pub fn identity_center_options(&self) -> ::std::option::Option<&crate::types::IdentityCenterOptionsInput> {
136 self.identity_center_options.as_ref()
137 }
138 /// <p>List of tags to add to the domain upon creation.</p>
139 ///
140 /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tag_list.is_none()`.
141 pub fn tag_list(&self) -> &[crate::types::Tag] {
142 self.tag_list.as_deref().unwrap_or_default()
143 }
144 /// <p>Options for Auto-Tune.</p>
145 pub fn auto_tune_options(&self) -> ::std::option::Option<&crate::types::AutoTuneOptionsInput> {
146 self.auto_tune_options.as_ref()
147 }
148 /// <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>
149 pub fn off_peak_window_options(&self) -> ::std::option::Option<&crate::types::OffPeakWindowOptions> {
150 self.off_peak_window_options.as_ref()
151 }
152 /// <p>Software update options for the domain.</p>
153 pub fn software_update_options(&self) -> ::std::option::Option<&crate::types::SoftwareUpdateOptions> {
154 self.software_update_options.as_ref()
155 }
156 /// <p>Options for all machine learning features for the specified domain.</p>
157 pub fn aiml_options(&self) -> ::std::option::Option<&crate::types::AimlOptionsInput> {
158 self.aiml_options.as_ref()
159 }
160}
161impl CreateDomainInput {
162 /// Creates a new builder-style object to manufacture [`CreateDomainInput`](crate::operation::create_domain::CreateDomainInput).
163 pub fn builder() -> crate::operation::create_domain::builders::CreateDomainInputBuilder {
164 crate::operation::create_domain::builders::CreateDomainInputBuilder::default()
165 }
166}
167
168/// A builder for [`CreateDomainInput`](crate::operation::create_domain::CreateDomainInput).
169#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
170#[non_exhaustive]
171pub struct CreateDomainInputBuilder {
172 pub(crate) domain_name: ::std::option::Option<::std::string::String>,
173 pub(crate) engine_version: ::std::option::Option<::std::string::String>,
174 pub(crate) cluster_config: ::std::option::Option<crate::types::ClusterConfig>,
175 pub(crate) ebs_options: ::std::option::Option<crate::types::EbsOptions>,
176 pub(crate) access_policies: ::std::option::Option<::std::string::String>,
177 pub(crate) ip_address_type: ::std::option::Option<crate::types::IpAddressType>,
178 pub(crate) snapshot_options: ::std::option::Option<crate::types::SnapshotOptions>,
179 pub(crate) vpc_options: ::std::option::Option<crate::types::VpcOptions>,
180 pub(crate) cognito_options: ::std::option::Option<crate::types::CognitoOptions>,
181 pub(crate) encryption_at_rest_options: ::std::option::Option<crate::types::EncryptionAtRestOptions>,
182 pub(crate) node_to_node_encryption_options: ::std::option::Option<crate::types::NodeToNodeEncryptionOptions>,
183 pub(crate) advanced_options: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
184 pub(crate) log_publishing_options: ::std::option::Option<::std::collections::HashMap<crate::types::LogType, crate::types::LogPublishingOption>>,
185 pub(crate) domain_endpoint_options: ::std::option::Option<crate::types::DomainEndpointOptions>,
186 pub(crate) advanced_security_options: ::std::option::Option<crate::types::AdvancedSecurityOptionsInput>,
187 pub(crate) identity_center_options: ::std::option::Option<crate::types::IdentityCenterOptionsInput>,
188 pub(crate) tag_list: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
189 pub(crate) auto_tune_options: ::std::option::Option<crate::types::AutoTuneOptionsInput>,
190 pub(crate) off_peak_window_options: ::std::option::Option<crate::types::OffPeakWindowOptions>,
191 pub(crate) software_update_options: ::std::option::Option<crate::types::SoftwareUpdateOptions>,
192 pub(crate) aiml_options: ::std::option::Option<crate::types::AimlOptionsInput>,
193}
194impl CreateDomainInputBuilder {
195 /// <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>
196 /// This field is required.
197 pub fn domain_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
198 self.domain_name = ::std::option::Option::Some(input.into());
199 self
200 }
201 /// <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>
202 pub fn set_domain_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
203 self.domain_name = input;
204 self
205 }
206 /// <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>
207 pub fn get_domain_name(&self) -> &::std::option::Option<::std::string::String> {
208 &self.domain_name
209 }
210 /// <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>
211 pub fn engine_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
212 self.engine_version = ::std::option::Option::Some(input.into());
213 self
214 }
215 /// <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>
216 pub fn set_engine_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
217 self.engine_version = input;
218 self
219 }
220 /// <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>
221 pub fn get_engine_version(&self) -> &::std::option::Option<::std::string::String> {
222 &self.engine_version
223 }
224 /// <p>Container for the cluster configuration of a domain.</p>
225 pub fn cluster_config(mut self, input: crate::types::ClusterConfig) -> Self {
226 self.cluster_config = ::std::option::Option::Some(input);
227 self
228 }
229 /// <p>Container for the cluster configuration of a domain.</p>
230 pub fn set_cluster_config(mut self, input: ::std::option::Option<crate::types::ClusterConfig>) -> Self {
231 self.cluster_config = input;
232 self
233 }
234 /// <p>Container for the cluster configuration of a domain.</p>
235 pub fn get_cluster_config(&self) -> &::std::option::Option<crate::types::ClusterConfig> {
236 &self.cluster_config
237 }
238 /// <p>Container for the parameters required to enable EBS-based storage for an OpenSearch Service domain.</p>
239 pub fn ebs_options(mut self, input: crate::types::EbsOptions) -> Self {
240 self.ebs_options = ::std::option::Option::Some(input);
241 self
242 }
243 /// <p>Container for the parameters required to enable EBS-based storage for an OpenSearch Service domain.</p>
244 pub fn set_ebs_options(mut self, input: ::std::option::Option<crate::types::EbsOptions>) -> Self {
245 self.ebs_options = input;
246 self
247 }
248 /// <p>Container for the parameters required to enable EBS-based storage for an OpenSearch Service domain.</p>
249 pub fn get_ebs_options(&self) -> &::std::option::Option<crate::types::EbsOptions> {
250 &self.ebs_options
251 }
252 /// <p>Identity and Access Management (IAM) policy document specifying the access policies for the new domain.</p>
253 pub fn access_policies(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
254 self.access_policies = ::std::option::Option::Some(input.into());
255 self
256 }
257 /// <p>Identity and Access Management (IAM) policy document specifying the access policies for the new domain.</p>
258 pub fn set_access_policies(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
259 self.access_policies = input;
260 self
261 }
262 /// <p>Identity and Access Management (IAM) policy document specifying the access policies for the new domain.</p>
263 pub fn get_access_policies(&self) -> &::std::option::Option<::std::string::String> {
264 &self.access_policies
265 }
266 /// <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>
267 pub fn ip_address_type(mut self, input: crate::types::IpAddressType) -> Self {
268 self.ip_address_type = ::std::option::Option::Some(input);
269 self
270 }
271 /// <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>
272 pub fn set_ip_address_type(mut self, input: ::std::option::Option<crate::types::IpAddressType>) -> Self {
273 self.ip_address_type = input;
274 self
275 }
276 /// <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>
277 pub fn get_ip_address_type(&self) -> &::std::option::Option<crate::types::IpAddressType> {
278 &self.ip_address_type
279 }
280 /// <p>DEPRECATED. Container for the parameters required to configure automated snapshots of domain indexes.</p>
281 pub fn snapshot_options(mut self, input: crate::types::SnapshotOptions) -> Self {
282 self.snapshot_options = ::std::option::Option::Some(input);
283 self
284 }
285 /// <p>DEPRECATED. Container for the parameters required to configure automated snapshots of domain indexes.</p>
286 pub fn set_snapshot_options(mut self, input: ::std::option::Option<crate::types::SnapshotOptions>) -> Self {
287 self.snapshot_options = input;
288 self
289 }
290 /// <p>DEPRECATED. Container for the parameters required to configure automated snapshots of domain indexes.</p>
291 pub fn get_snapshot_options(&self) -> &::std::option::Option<crate::types::SnapshotOptions> {
292 &self.snapshot_options
293 }
294 /// <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>
295 pub fn vpc_options(mut self, input: crate::types::VpcOptions) -> Self {
296 self.vpc_options = ::std::option::Option::Some(input);
297 self
298 }
299 /// <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>
300 pub fn set_vpc_options(mut self, input: ::std::option::Option<crate::types::VpcOptions>) -> Self {
301 self.vpc_options = input;
302 self
303 }
304 /// <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>
305 pub fn get_vpc_options(&self) -> &::std::option::Option<crate::types::VpcOptions> {
306 &self.vpc_options
307 }
308 /// <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>
309 pub fn cognito_options(mut self, input: crate::types::CognitoOptions) -> Self {
310 self.cognito_options = ::std::option::Option::Some(input);
311 self
312 }
313 /// <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>
314 pub fn set_cognito_options(mut self, input: ::std::option::Option<crate::types::CognitoOptions>) -> Self {
315 self.cognito_options = input;
316 self
317 }
318 /// <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>
319 pub fn get_cognito_options(&self) -> &::std::option::Option<crate::types::CognitoOptions> {
320 &self.cognito_options
321 }
322 /// <p>Key-value pairs to enable encryption at rest.</p>
323 pub fn encryption_at_rest_options(mut self, input: crate::types::EncryptionAtRestOptions) -> Self {
324 self.encryption_at_rest_options = ::std::option::Option::Some(input);
325 self
326 }
327 /// <p>Key-value pairs to enable encryption at rest.</p>
328 pub fn set_encryption_at_rest_options(mut self, input: ::std::option::Option<crate::types::EncryptionAtRestOptions>) -> Self {
329 self.encryption_at_rest_options = input;
330 self
331 }
332 /// <p>Key-value pairs to enable encryption at rest.</p>
333 pub fn get_encryption_at_rest_options(&self) -> &::std::option::Option<crate::types::EncryptionAtRestOptions> {
334 &self.encryption_at_rest_options
335 }
336 /// <p>Enables node-to-node encryption.</p>
337 pub fn node_to_node_encryption_options(mut self, input: crate::types::NodeToNodeEncryptionOptions) -> Self {
338 self.node_to_node_encryption_options = ::std::option::Option::Some(input);
339 self
340 }
341 /// <p>Enables node-to-node encryption.</p>
342 pub fn set_node_to_node_encryption_options(mut self, input: ::std::option::Option<crate::types::NodeToNodeEncryptionOptions>) -> Self {
343 self.node_to_node_encryption_options = input;
344 self
345 }
346 /// <p>Enables node-to-node encryption.</p>
347 pub fn get_node_to_node_encryption_options(&self) -> &::std::option::Option<crate::types::NodeToNodeEncryptionOptions> {
348 &self.node_to_node_encryption_options
349 }
350 /// Adds a key-value pair to `advanced_options`.
351 ///
352 /// To override the contents of this collection use [`set_advanced_options`](Self::set_advanced_options).
353 ///
354 /// <p>Key-value pairs to specify advanced configuration options. The following key-value pairs are supported:</p>
355 /// <ul>
356 /// <li>
357 /// <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>
358 /// <li>
359 /// <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>
360 /// <li>
361 /// <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>
362 /// <li>
363 /// <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>
364 /// </ul>
365 /// <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>
366 pub fn advanced_options(
367 mut self,
368 k: impl ::std::convert::Into<::std::string::String>,
369 v: impl ::std::convert::Into<::std::string::String>,
370 ) -> Self {
371 let mut hash_map = self.advanced_options.unwrap_or_default();
372 hash_map.insert(k.into(), v.into());
373 self.advanced_options = ::std::option::Option::Some(hash_map);
374 self
375 }
376 /// <p>Key-value pairs to specify advanced configuration options. The following key-value pairs are supported:</p>
377 /// <ul>
378 /// <li>
379 /// <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>
380 /// <li>
381 /// <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>
382 /// <li>
383 /// <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>
384 /// <li>
385 /// <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>
386 /// </ul>
387 /// <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>
388 pub fn set_advanced_options(
389 mut self,
390 input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
391 ) -> Self {
392 self.advanced_options = input;
393 self
394 }
395 /// <p>Key-value pairs to specify advanced configuration options. The following key-value pairs are supported:</p>
396 /// <ul>
397 /// <li>
398 /// <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>
399 /// <li>
400 /// <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>
401 /// <li>
402 /// <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>
403 /// <li>
404 /// <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>
405 /// </ul>
406 /// <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>
407 pub fn get_advanced_options(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
408 &self.advanced_options
409 }
410 /// Adds a key-value pair to `log_publishing_options`.
411 ///
412 /// To override the contents of this collection use [`set_log_publishing_options`](Self::set_log_publishing_options).
413 ///
414 /// <p>Key-value pairs to configure log publishing.</p>
415 pub fn log_publishing_options(mut self, k: crate::types::LogType, v: crate::types::LogPublishingOption) -> Self {
416 let mut hash_map = self.log_publishing_options.unwrap_or_default();
417 hash_map.insert(k, v);
418 self.log_publishing_options = ::std::option::Option::Some(hash_map);
419 self
420 }
421 /// <p>Key-value pairs to configure log publishing.</p>
422 pub fn set_log_publishing_options(
423 mut self,
424 input: ::std::option::Option<::std::collections::HashMap<crate::types::LogType, crate::types::LogPublishingOption>>,
425 ) -> Self {
426 self.log_publishing_options = input;
427 self
428 }
429 /// <p>Key-value pairs to configure log publishing.</p>
430 pub fn get_log_publishing_options(
431 &self,
432 ) -> &::std::option::Option<::std::collections::HashMap<crate::types::LogType, crate::types::LogPublishingOption>> {
433 &self.log_publishing_options
434 }
435 /// <p>Additional options for the domain endpoint, such as whether to require HTTPS for all traffic.</p>
436 pub fn domain_endpoint_options(mut self, input: crate::types::DomainEndpointOptions) -> Self {
437 self.domain_endpoint_options = ::std::option::Option::Some(input);
438 self
439 }
440 /// <p>Additional options for the domain endpoint, such as whether to require HTTPS for all traffic.</p>
441 pub fn set_domain_endpoint_options(mut self, input: ::std::option::Option<crate::types::DomainEndpointOptions>) -> Self {
442 self.domain_endpoint_options = input;
443 self
444 }
445 /// <p>Additional options for the domain endpoint, such as whether to require HTTPS for all traffic.</p>
446 pub fn get_domain_endpoint_options(&self) -> &::std::option::Option<crate::types::DomainEndpointOptions> {
447 &self.domain_endpoint_options
448 }
449 /// <p>Options for fine-grained access control.</p>
450 pub fn advanced_security_options(mut self, input: crate::types::AdvancedSecurityOptionsInput) -> Self {
451 self.advanced_security_options = ::std::option::Option::Some(input);
452 self
453 }
454 /// <p>Options for fine-grained access control.</p>
455 pub fn set_advanced_security_options(mut self, input: ::std::option::Option<crate::types::AdvancedSecurityOptionsInput>) -> Self {
456 self.advanced_security_options = input;
457 self
458 }
459 /// <p>Options for fine-grained access control.</p>
460 pub fn get_advanced_security_options(&self) -> &::std::option::Option<crate::types::AdvancedSecurityOptionsInput> {
461 &self.advanced_security_options
462 }
463 /// <p>Configuration options for enabling and managing IAM Identity Center integration within a domain.</p>
464 pub fn identity_center_options(mut self, input: crate::types::IdentityCenterOptionsInput) -> Self {
465 self.identity_center_options = ::std::option::Option::Some(input);
466 self
467 }
468 /// <p>Configuration options for enabling and managing IAM Identity Center integration within a domain.</p>
469 pub fn set_identity_center_options(mut self, input: ::std::option::Option<crate::types::IdentityCenterOptionsInput>) -> Self {
470 self.identity_center_options = input;
471 self
472 }
473 /// <p>Configuration options for enabling and managing IAM Identity Center integration within a domain.</p>
474 pub fn get_identity_center_options(&self) -> &::std::option::Option<crate::types::IdentityCenterOptionsInput> {
475 &self.identity_center_options
476 }
477 /// Appends an item to `tag_list`.
478 ///
479 /// To override the contents of this collection use [`set_tag_list`](Self::set_tag_list).
480 ///
481 /// <p>List of tags to add to the domain upon creation.</p>
482 pub fn tag_list(mut self, input: crate::types::Tag) -> Self {
483 let mut v = self.tag_list.unwrap_or_default();
484 v.push(input);
485 self.tag_list = ::std::option::Option::Some(v);
486 self
487 }
488 /// <p>List of tags to add to the domain upon creation.</p>
489 pub fn set_tag_list(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
490 self.tag_list = input;
491 self
492 }
493 /// <p>List of tags to add to the domain upon creation.</p>
494 pub fn get_tag_list(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
495 &self.tag_list
496 }
497 /// <p>Options for Auto-Tune.</p>
498 pub fn auto_tune_options(mut self, input: crate::types::AutoTuneOptionsInput) -> Self {
499 self.auto_tune_options = ::std::option::Option::Some(input);
500 self
501 }
502 /// <p>Options for Auto-Tune.</p>
503 pub fn set_auto_tune_options(mut self, input: ::std::option::Option<crate::types::AutoTuneOptionsInput>) -> Self {
504 self.auto_tune_options = input;
505 self
506 }
507 /// <p>Options for Auto-Tune.</p>
508 pub fn get_auto_tune_options(&self) -> &::std::option::Option<crate::types::AutoTuneOptionsInput> {
509 &self.auto_tune_options
510 }
511 /// <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>
512 pub fn off_peak_window_options(mut self, input: crate::types::OffPeakWindowOptions) -> Self {
513 self.off_peak_window_options = ::std::option::Option::Some(input);
514 self
515 }
516 /// <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>
517 pub fn set_off_peak_window_options(mut self, input: ::std::option::Option<crate::types::OffPeakWindowOptions>) -> Self {
518 self.off_peak_window_options = input;
519 self
520 }
521 /// <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>
522 pub fn get_off_peak_window_options(&self) -> &::std::option::Option<crate::types::OffPeakWindowOptions> {
523 &self.off_peak_window_options
524 }
525 /// <p>Software update options for the domain.</p>
526 pub fn software_update_options(mut self, input: crate::types::SoftwareUpdateOptions) -> Self {
527 self.software_update_options = ::std::option::Option::Some(input);
528 self
529 }
530 /// <p>Software update options for the domain.</p>
531 pub fn set_software_update_options(mut self, input: ::std::option::Option<crate::types::SoftwareUpdateOptions>) -> Self {
532 self.software_update_options = input;
533 self
534 }
535 /// <p>Software update options for the domain.</p>
536 pub fn get_software_update_options(&self) -> &::std::option::Option<crate::types::SoftwareUpdateOptions> {
537 &self.software_update_options
538 }
539 /// <p>Options for all machine learning features for the specified domain.</p>
540 pub fn aiml_options(mut self, input: crate::types::AimlOptionsInput) -> Self {
541 self.aiml_options = ::std::option::Option::Some(input);
542 self
543 }
544 /// <p>Options for all machine learning features for the specified domain.</p>
545 pub fn set_aiml_options(mut self, input: ::std::option::Option<crate::types::AimlOptionsInput>) -> Self {
546 self.aiml_options = input;
547 self
548 }
549 /// <p>Options for all machine learning features for the specified domain.</p>
550 pub fn get_aiml_options(&self) -> &::std::option::Option<crate::types::AimlOptionsInput> {
551 &self.aiml_options
552 }
553 /// Consumes the builder and constructs a [`CreateDomainInput`](crate::operation::create_domain::CreateDomainInput).
554 pub fn build(
555 self,
556 ) -> ::std::result::Result<crate::operation::create_domain::CreateDomainInput, ::aws_smithy_types::error::operation::BuildError> {
557 ::std::result::Result::Ok(crate::operation::create_domain::CreateDomainInput {
558 domain_name: self.domain_name,
559 engine_version: self.engine_version,
560 cluster_config: self.cluster_config,
561 ebs_options: self.ebs_options,
562 access_policies: self.access_policies,
563 ip_address_type: self.ip_address_type,
564 snapshot_options: self.snapshot_options,
565 vpc_options: self.vpc_options,
566 cognito_options: self.cognito_options,
567 encryption_at_rest_options: self.encryption_at_rest_options,
568 node_to_node_encryption_options: self.node_to_node_encryption_options,
569 advanced_options: self.advanced_options,
570 log_publishing_options: self.log_publishing_options,
571 domain_endpoint_options: self.domain_endpoint_options,
572 advanced_security_options: self.advanced_security_options,
573 identity_center_options: self.identity_center_options,
574 tag_list: self.tag_list,
575 auto_tune_options: self.auto_tune_options,
576 off_peak_window_options: self.off_peak_window_options,
577 software_update_options: self.software_update_options,
578 aiml_options: self.aiml_options,
579 })
580 }
581}