aws_sdk_sagemaker/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>A name for the domain.</p>
7 pub domain_name: ::std::option::Option<::std::string::String>,
8 /// <p>The mode of authentication that members use to access the domain.</p>
9 pub auth_mode: ::std::option::Option<crate::types::AuthMode>,
10 /// <p>The default settings to use to create a user profile when <code>UserSettings</code> isn't specified in the call to the <code>CreateUserProfile</code> API.</p>
11 /// <p><code>SecurityGroups</code> is aggregated when specified in both calls. For all other settings in <code>UserSettings</code>, the values specified in <code>CreateUserProfile</code> take precedence over those specified in <code>CreateDomain</code>.</p>
12 pub default_user_settings: ::std::option::Option<crate::types::UserSettings>,
13 /// <p>A collection of <code>Domain</code> settings.</p>
14 pub domain_settings: ::std::option::Option<crate::types::DomainSettings>,
15 /// <p>The VPC subnets that the domain uses for communication.</p>
16 /// <p>The field is optional when the <code>AppNetworkAccessType</code> parameter is set to <code>PublicInternetOnly</code> for domains created from Amazon SageMaker Unified Studio.</p>
17 pub subnet_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
18 /// <p>The ID of the Amazon Virtual Private Cloud (VPC) that the domain uses for communication.</p>
19 /// <p>The field is optional when the <code>AppNetworkAccessType</code> parameter is set to <code>PublicInternetOnly</code> for domains created from Amazon SageMaker Unified Studio.</p>
20 pub vpc_id: ::std::option::Option<::std::string::String>,
21 /// <p>Tags to associated with the Domain. Each tag consists of a key and an optional value. Tag keys must be unique per resource. Tags are searchable using the <code>Search</code> API.</p>
22 /// <p>Tags that you specify for the Domain are also added to all Apps that the Domain launches.</p>
23 pub tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
24 /// <p>Specifies the VPC used for non-EFS traffic. The default value is <code>PublicInternetOnly</code>.</p>
25 /// <ul>
26 /// <li>
27 /// <p><code>PublicInternetOnly</code> - Non-EFS traffic is through a VPC managed by Amazon SageMaker AI, which allows direct internet access</p></li>
28 /// <li>
29 /// <p><code>VpcOnly</code> - All traffic is through the specified VPC and subnets</p></li>
30 /// </ul>
31 pub app_network_access_type: ::std::option::Option<crate::types::AppNetworkAccessType>,
32 /// <p>Use <code>KmsKeyId</code>.</p>
33 #[deprecated(note = "This property is deprecated, use KmsKeyId instead.")]
34 pub home_efs_file_system_kms_key_id: ::std::option::Option<::std::string::String>,
35 /// <p>SageMaker AI uses Amazon Web Services KMS to encrypt EFS and EBS volumes attached to the domain with an Amazon Web Services managed key by default. For more control, specify a customer managed key.</p>
36 pub kms_key_id: ::std::option::Option<::std::string::String>,
37 /// <p>The entity that creates and manages the required security groups for inter-app communication in <code>VPCOnly</code> mode. Required when <code>CreateDomain.AppNetworkAccessType</code> is <code>VPCOnly</code> and <code>DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn</code> is provided. If setting up the domain for use with RStudio, this value must be set to <code>Service</code>.</p>
38 pub app_security_group_management: ::std::option::Option<crate::types::AppSecurityGroupManagement>,
39 /// <p>Indicates whether custom tag propagation is supported for the domain. Defaults to <code>DISABLED</code>.</p>
40 pub tag_propagation: ::std::option::Option<crate::types::TagPropagation>,
41 /// <p>The default settings for shared spaces that users create in the domain.</p>
42 pub default_space_settings: ::std::option::Option<crate::types::DefaultSpaceSettings>,
43}
44impl CreateDomainInput {
45 /// <p>A name for the domain.</p>
46 pub fn domain_name(&self) -> ::std::option::Option<&str> {
47 self.domain_name.as_deref()
48 }
49 /// <p>The mode of authentication that members use to access the domain.</p>
50 pub fn auth_mode(&self) -> ::std::option::Option<&crate::types::AuthMode> {
51 self.auth_mode.as_ref()
52 }
53 /// <p>The default settings to use to create a user profile when <code>UserSettings</code> isn't specified in the call to the <code>CreateUserProfile</code> API.</p>
54 /// <p><code>SecurityGroups</code> is aggregated when specified in both calls. For all other settings in <code>UserSettings</code>, the values specified in <code>CreateUserProfile</code> take precedence over those specified in <code>CreateDomain</code>.</p>
55 pub fn default_user_settings(&self) -> ::std::option::Option<&crate::types::UserSettings> {
56 self.default_user_settings.as_ref()
57 }
58 /// <p>A collection of <code>Domain</code> settings.</p>
59 pub fn domain_settings(&self) -> ::std::option::Option<&crate::types::DomainSettings> {
60 self.domain_settings.as_ref()
61 }
62 /// <p>The VPC subnets that the domain uses for communication.</p>
63 /// <p>The field is optional when the <code>AppNetworkAccessType</code> parameter is set to <code>PublicInternetOnly</code> for domains created from Amazon SageMaker Unified Studio.</p>
64 ///
65 /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.subnet_ids.is_none()`.
66 pub fn subnet_ids(&self) -> &[::std::string::String] {
67 self.subnet_ids.as_deref().unwrap_or_default()
68 }
69 /// <p>The ID of the Amazon Virtual Private Cloud (VPC) that the domain uses for communication.</p>
70 /// <p>The field is optional when the <code>AppNetworkAccessType</code> parameter is set to <code>PublicInternetOnly</code> for domains created from Amazon SageMaker Unified Studio.</p>
71 pub fn vpc_id(&self) -> ::std::option::Option<&str> {
72 self.vpc_id.as_deref()
73 }
74 /// <p>Tags to associated with the Domain. Each tag consists of a key and an optional value. Tag keys must be unique per resource. Tags are searchable using the <code>Search</code> API.</p>
75 /// <p>Tags that you specify for the Domain are also added to all Apps that the Domain launches.</p>
76 ///
77 /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tags.is_none()`.
78 pub fn tags(&self) -> &[crate::types::Tag] {
79 self.tags.as_deref().unwrap_or_default()
80 }
81 /// <p>Specifies the VPC used for non-EFS traffic. The default value is <code>PublicInternetOnly</code>.</p>
82 /// <ul>
83 /// <li>
84 /// <p><code>PublicInternetOnly</code> - Non-EFS traffic is through a VPC managed by Amazon SageMaker AI, which allows direct internet access</p></li>
85 /// <li>
86 /// <p><code>VpcOnly</code> - All traffic is through the specified VPC and subnets</p></li>
87 /// </ul>
88 pub fn app_network_access_type(&self) -> ::std::option::Option<&crate::types::AppNetworkAccessType> {
89 self.app_network_access_type.as_ref()
90 }
91 /// <p>Use <code>KmsKeyId</code>.</p>
92 #[deprecated(note = "This property is deprecated, use KmsKeyId instead.")]
93 pub fn home_efs_file_system_kms_key_id(&self) -> ::std::option::Option<&str> {
94 self.home_efs_file_system_kms_key_id.as_deref()
95 }
96 /// <p>SageMaker AI uses Amazon Web Services KMS to encrypt EFS and EBS volumes attached to the domain with an Amazon Web Services managed key by default. For more control, specify a customer managed key.</p>
97 pub fn kms_key_id(&self) -> ::std::option::Option<&str> {
98 self.kms_key_id.as_deref()
99 }
100 /// <p>The entity that creates and manages the required security groups for inter-app communication in <code>VPCOnly</code> mode. Required when <code>CreateDomain.AppNetworkAccessType</code> is <code>VPCOnly</code> and <code>DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn</code> is provided. If setting up the domain for use with RStudio, this value must be set to <code>Service</code>.</p>
101 pub fn app_security_group_management(&self) -> ::std::option::Option<&crate::types::AppSecurityGroupManagement> {
102 self.app_security_group_management.as_ref()
103 }
104 /// <p>Indicates whether custom tag propagation is supported for the domain. Defaults to <code>DISABLED</code>.</p>
105 pub fn tag_propagation(&self) -> ::std::option::Option<&crate::types::TagPropagation> {
106 self.tag_propagation.as_ref()
107 }
108 /// <p>The default settings for shared spaces that users create in the domain.</p>
109 pub fn default_space_settings(&self) -> ::std::option::Option<&crate::types::DefaultSpaceSettings> {
110 self.default_space_settings.as_ref()
111 }
112}
113impl CreateDomainInput {
114 /// Creates a new builder-style object to manufacture [`CreateDomainInput`](crate::operation::create_domain::CreateDomainInput).
115 pub fn builder() -> crate::operation::create_domain::builders::CreateDomainInputBuilder {
116 crate::operation::create_domain::builders::CreateDomainInputBuilder::default()
117 }
118}
119
120/// A builder for [`CreateDomainInput`](crate::operation::create_domain::CreateDomainInput).
121#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
122#[non_exhaustive]
123pub struct CreateDomainInputBuilder {
124 pub(crate) domain_name: ::std::option::Option<::std::string::String>,
125 pub(crate) auth_mode: ::std::option::Option<crate::types::AuthMode>,
126 pub(crate) default_user_settings: ::std::option::Option<crate::types::UserSettings>,
127 pub(crate) domain_settings: ::std::option::Option<crate::types::DomainSettings>,
128 pub(crate) subnet_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
129 pub(crate) vpc_id: ::std::option::Option<::std::string::String>,
130 pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
131 pub(crate) app_network_access_type: ::std::option::Option<crate::types::AppNetworkAccessType>,
132 pub(crate) home_efs_file_system_kms_key_id: ::std::option::Option<::std::string::String>,
133 pub(crate) kms_key_id: ::std::option::Option<::std::string::String>,
134 pub(crate) app_security_group_management: ::std::option::Option<crate::types::AppSecurityGroupManagement>,
135 pub(crate) tag_propagation: ::std::option::Option<crate::types::TagPropagation>,
136 pub(crate) default_space_settings: ::std::option::Option<crate::types::DefaultSpaceSettings>,
137}
138impl CreateDomainInputBuilder {
139 /// <p>A name for the domain.</p>
140 /// This field is required.
141 pub fn domain_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
142 self.domain_name = ::std::option::Option::Some(input.into());
143 self
144 }
145 /// <p>A name for the domain.</p>
146 pub fn set_domain_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
147 self.domain_name = input;
148 self
149 }
150 /// <p>A name for the domain.</p>
151 pub fn get_domain_name(&self) -> &::std::option::Option<::std::string::String> {
152 &self.domain_name
153 }
154 /// <p>The mode of authentication that members use to access the domain.</p>
155 /// This field is required.
156 pub fn auth_mode(mut self, input: crate::types::AuthMode) -> Self {
157 self.auth_mode = ::std::option::Option::Some(input);
158 self
159 }
160 /// <p>The mode of authentication that members use to access the domain.</p>
161 pub fn set_auth_mode(mut self, input: ::std::option::Option<crate::types::AuthMode>) -> Self {
162 self.auth_mode = input;
163 self
164 }
165 /// <p>The mode of authentication that members use to access the domain.</p>
166 pub fn get_auth_mode(&self) -> &::std::option::Option<crate::types::AuthMode> {
167 &self.auth_mode
168 }
169 /// <p>The default settings to use to create a user profile when <code>UserSettings</code> isn't specified in the call to the <code>CreateUserProfile</code> API.</p>
170 /// <p><code>SecurityGroups</code> is aggregated when specified in both calls. For all other settings in <code>UserSettings</code>, the values specified in <code>CreateUserProfile</code> take precedence over those specified in <code>CreateDomain</code>.</p>
171 /// This field is required.
172 pub fn default_user_settings(mut self, input: crate::types::UserSettings) -> Self {
173 self.default_user_settings = ::std::option::Option::Some(input);
174 self
175 }
176 /// <p>The default settings to use to create a user profile when <code>UserSettings</code> isn't specified in the call to the <code>CreateUserProfile</code> API.</p>
177 /// <p><code>SecurityGroups</code> is aggregated when specified in both calls. For all other settings in <code>UserSettings</code>, the values specified in <code>CreateUserProfile</code> take precedence over those specified in <code>CreateDomain</code>.</p>
178 pub fn set_default_user_settings(mut self, input: ::std::option::Option<crate::types::UserSettings>) -> Self {
179 self.default_user_settings = input;
180 self
181 }
182 /// <p>The default settings to use to create a user profile when <code>UserSettings</code> isn't specified in the call to the <code>CreateUserProfile</code> API.</p>
183 /// <p><code>SecurityGroups</code> is aggregated when specified in both calls. For all other settings in <code>UserSettings</code>, the values specified in <code>CreateUserProfile</code> take precedence over those specified in <code>CreateDomain</code>.</p>
184 pub fn get_default_user_settings(&self) -> &::std::option::Option<crate::types::UserSettings> {
185 &self.default_user_settings
186 }
187 /// <p>A collection of <code>Domain</code> settings.</p>
188 pub fn domain_settings(mut self, input: crate::types::DomainSettings) -> Self {
189 self.domain_settings = ::std::option::Option::Some(input);
190 self
191 }
192 /// <p>A collection of <code>Domain</code> settings.</p>
193 pub fn set_domain_settings(mut self, input: ::std::option::Option<crate::types::DomainSettings>) -> Self {
194 self.domain_settings = input;
195 self
196 }
197 /// <p>A collection of <code>Domain</code> settings.</p>
198 pub fn get_domain_settings(&self) -> &::std::option::Option<crate::types::DomainSettings> {
199 &self.domain_settings
200 }
201 /// Appends an item to `subnet_ids`.
202 ///
203 /// To override the contents of this collection use [`set_subnet_ids`](Self::set_subnet_ids).
204 ///
205 /// <p>The VPC subnets that the domain uses for communication.</p>
206 /// <p>The field is optional when the <code>AppNetworkAccessType</code> parameter is set to <code>PublicInternetOnly</code> for domains created from Amazon SageMaker Unified Studio.</p>
207 pub fn subnet_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
208 let mut v = self.subnet_ids.unwrap_or_default();
209 v.push(input.into());
210 self.subnet_ids = ::std::option::Option::Some(v);
211 self
212 }
213 /// <p>The VPC subnets that the domain uses for communication.</p>
214 /// <p>The field is optional when the <code>AppNetworkAccessType</code> parameter is set to <code>PublicInternetOnly</code> for domains created from Amazon SageMaker Unified Studio.</p>
215 pub fn set_subnet_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
216 self.subnet_ids = input;
217 self
218 }
219 /// <p>The VPC subnets that the domain uses for communication.</p>
220 /// <p>The field is optional when the <code>AppNetworkAccessType</code> parameter is set to <code>PublicInternetOnly</code> for domains created from Amazon SageMaker Unified Studio.</p>
221 pub fn get_subnet_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
222 &self.subnet_ids
223 }
224 /// <p>The ID of the Amazon Virtual Private Cloud (VPC) that the domain uses for communication.</p>
225 /// <p>The field is optional when the <code>AppNetworkAccessType</code> parameter is set to <code>PublicInternetOnly</code> for domains created from Amazon SageMaker Unified Studio.</p>
226 pub fn vpc_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
227 self.vpc_id = ::std::option::Option::Some(input.into());
228 self
229 }
230 /// <p>The ID of the Amazon Virtual Private Cloud (VPC) that the domain uses for communication.</p>
231 /// <p>The field is optional when the <code>AppNetworkAccessType</code> parameter is set to <code>PublicInternetOnly</code> for domains created from Amazon SageMaker Unified Studio.</p>
232 pub fn set_vpc_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
233 self.vpc_id = input;
234 self
235 }
236 /// <p>The ID of the Amazon Virtual Private Cloud (VPC) that the domain uses for communication.</p>
237 /// <p>The field is optional when the <code>AppNetworkAccessType</code> parameter is set to <code>PublicInternetOnly</code> for domains created from Amazon SageMaker Unified Studio.</p>
238 pub fn get_vpc_id(&self) -> &::std::option::Option<::std::string::String> {
239 &self.vpc_id
240 }
241 /// Appends an item to `tags`.
242 ///
243 /// To override the contents of this collection use [`set_tags`](Self::set_tags).
244 ///
245 /// <p>Tags to associated with the Domain. Each tag consists of a key and an optional value. Tag keys must be unique per resource. Tags are searchable using the <code>Search</code> API.</p>
246 /// <p>Tags that you specify for the Domain are also added to all Apps that the Domain launches.</p>
247 pub fn tags(mut self, input: crate::types::Tag) -> Self {
248 let mut v = self.tags.unwrap_or_default();
249 v.push(input);
250 self.tags = ::std::option::Option::Some(v);
251 self
252 }
253 /// <p>Tags to associated with the Domain. Each tag consists of a key and an optional value. Tag keys must be unique per resource. Tags are searchable using the <code>Search</code> API.</p>
254 /// <p>Tags that you specify for the Domain are also added to all Apps that the Domain launches.</p>
255 pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
256 self.tags = input;
257 self
258 }
259 /// <p>Tags to associated with the Domain. Each tag consists of a key and an optional value. Tag keys must be unique per resource. Tags are searchable using the <code>Search</code> API.</p>
260 /// <p>Tags that you specify for the Domain are also added to all Apps that the Domain launches.</p>
261 pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
262 &self.tags
263 }
264 /// <p>Specifies the VPC used for non-EFS traffic. The default value is <code>PublicInternetOnly</code>.</p>
265 /// <ul>
266 /// <li>
267 /// <p><code>PublicInternetOnly</code> - Non-EFS traffic is through a VPC managed by Amazon SageMaker AI, which allows direct internet access</p></li>
268 /// <li>
269 /// <p><code>VpcOnly</code> - All traffic is through the specified VPC and subnets</p></li>
270 /// </ul>
271 pub fn app_network_access_type(mut self, input: crate::types::AppNetworkAccessType) -> Self {
272 self.app_network_access_type = ::std::option::Option::Some(input);
273 self
274 }
275 /// <p>Specifies the VPC used for non-EFS traffic. The default value is <code>PublicInternetOnly</code>.</p>
276 /// <ul>
277 /// <li>
278 /// <p><code>PublicInternetOnly</code> - Non-EFS traffic is through a VPC managed by Amazon SageMaker AI, which allows direct internet access</p></li>
279 /// <li>
280 /// <p><code>VpcOnly</code> - All traffic is through the specified VPC and subnets</p></li>
281 /// </ul>
282 pub fn set_app_network_access_type(mut self, input: ::std::option::Option<crate::types::AppNetworkAccessType>) -> Self {
283 self.app_network_access_type = input;
284 self
285 }
286 /// <p>Specifies the VPC used for non-EFS traffic. The default value is <code>PublicInternetOnly</code>.</p>
287 /// <ul>
288 /// <li>
289 /// <p><code>PublicInternetOnly</code> - Non-EFS traffic is through a VPC managed by Amazon SageMaker AI, which allows direct internet access</p></li>
290 /// <li>
291 /// <p><code>VpcOnly</code> - All traffic is through the specified VPC and subnets</p></li>
292 /// </ul>
293 pub fn get_app_network_access_type(&self) -> &::std::option::Option<crate::types::AppNetworkAccessType> {
294 &self.app_network_access_type
295 }
296 /// <p>Use <code>KmsKeyId</code>.</p>
297 #[deprecated(note = "This property is deprecated, use KmsKeyId instead.")]
298 pub fn home_efs_file_system_kms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
299 self.home_efs_file_system_kms_key_id = ::std::option::Option::Some(input.into());
300 self
301 }
302 /// <p>Use <code>KmsKeyId</code>.</p>
303 #[deprecated(note = "This property is deprecated, use KmsKeyId instead.")]
304 pub fn set_home_efs_file_system_kms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
305 self.home_efs_file_system_kms_key_id = input;
306 self
307 }
308 /// <p>Use <code>KmsKeyId</code>.</p>
309 #[deprecated(note = "This property is deprecated, use KmsKeyId instead.")]
310 pub fn get_home_efs_file_system_kms_key_id(&self) -> &::std::option::Option<::std::string::String> {
311 &self.home_efs_file_system_kms_key_id
312 }
313 /// <p>SageMaker AI uses Amazon Web Services KMS to encrypt EFS and EBS volumes attached to the domain with an Amazon Web Services managed key by default. For more control, specify a customer managed key.</p>
314 pub fn kms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
315 self.kms_key_id = ::std::option::Option::Some(input.into());
316 self
317 }
318 /// <p>SageMaker AI uses Amazon Web Services KMS to encrypt EFS and EBS volumes attached to the domain with an Amazon Web Services managed key by default. For more control, specify a customer managed key.</p>
319 pub fn set_kms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
320 self.kms_key_id = input;
321 self
322 }
323 /// <p>SageMaker AI uses Amazon Web Services KMS to encrypt EFS and EBS volumes attached to the domain with an Amazon Web Services managed key by default. For more control, specify a customer managed key.</p>
324 pub fn get_kms_key_id(&self) -> &::std::option::Option<::std::string::String> {
325 &self.kms_key_id
326 }
327 /// <p>The entity that creates and manages the required security groups for inter-app communication in <code>VPCOnly</code> mode. Required when <code>CreateDomain.AppNetworkAccessType</code> is <code>VPCOnly</code> and <code>DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn</code> is provided. If setting up the domain for use with RStudio, this value must be set to <code>Service</code>.</p>
328 pub fn app_security_group_management(mut self, input: crate::types::AppSecurityGroupManagement) -> Self {
329 self.app_security_group_management = ::std::option::Option::Some(input);
330 self
331 }
332 /// <p>The entity that creates and manages the required security groups for inter-app communication in <code>VPCOnly</code> mode. Required when <code>CreateDomain.AppNetworkAccessType</code> is <code>VPCOnly</code> and <code>DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn</code> is provided. If setting up the domain for use with RStudio, this value must be set to <code>Service</code>.</p>
333 pub fn set_app_security_group_management(mut self, input: ::std::option::Option<crate::types::AppSecurityGroupManagement>) -> Self {
334 self.app_security_group_management = input;
335 self
336 }
337 /// <p>The entity that creates and manages the required security groups for inter-app communication in <code>VPCOnly</code> mode. Required when <code>CreateDomain.AppNetworkAccessType</code> is <code>VPCOnly</code> and <code>DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn</code> is provided. If setting up the domain for use with RStudio, this value must be set to <code>Service</code>.</p>
338 pub fn get_app_security_group_management(&self) -> &::std::option::Option<crate::types::AppSecurityGroupManagement> {
339 &self.app_security_group_management
340 }
341 /// <p>Indicates whether custom tag propagation is supported for the domain. Defaults to <code>DISABLED</code>.</p>
342 pub fn tag_propagation(mut self, input: crate::types::TagPropagation) -> Self {
343 self.tag_propagation = ::std::option::Option::Some(input);
344 self
345 }
346 /// <p>Indicates whether custom tag propagation is supported for the domain. Defaults to <code>DISABLED</code>.</p>
347 pub fn set_tag_propagation(mut self, input: ::std::option::Option<crate::types::TagPropagation>) -> Self {
348 self.tag_propagation = input;
349 self
350 }
351 /// <p>Indicates whether custom tag propagation is supported for the domain. Defaults to <code>DISABLED</code>.</p>
352 pub fn get_tag_propagation(&self) -> &::std::option::Option<crate::types::TagPropagation> {
353 &self.tag_propagation
354 }
355 /// <p>The default settings for shared spaces that users create in the domain.</p>
356 pub fn default_space_settings(mut self, input: crate::types::DefaultSpaceSettings) -> Self {
357 self.default_space_settings = ::std::option::Option::Some(input);
358 self
359 }
360 /// <p>The default settings for shared spaces that users create in the domain.</p>
361 pub fn set_default_space_settings(mut self, input: ::std::option::Option<crate::types::DefaultSpaceSettings>) -> Self {
362 self.default_space_settings = input;
363 self
364 }
365 /// <p>The default settings for shared spaces that users create in the domain.</p>
366 pub fn get_default_space_settings(&self) -> &::std::option::Option<crate::types::DefaultSpaceSettings> {
367 &self.default_space_settings
368 }
369 /// Consumes the builder and constructs a [`CreateDomainInput`](crate::operation::create_domain::CreateDomainInput).
370 pub fn build(
371 self,
372 ) -> ::std::result::Result<crate::operation::create_domain::CreateDomainInput, ::aws_smithy_types::error::operation::BuildError> {
373 ::std::result::Result::Ok(crate::operation::create_domain::CreateDomainInput {
374 domain_name: self.domain_name,
375 auth_mode: self.auth_mode,
376 default_user_settings: self.default_user_settings,
377 domain_settings: self.domain_settings,
378 subnet_ids: self.subnet_ids,
379 vpc_id: self.vpc_id,
380 tags: self.tags,
381 app_network_access_type: self.app_network_access_type,
382 home_efs_file_system_kms_key_id: self.home_efs_file_system_kms_key_id,
383 kms_key_id: self.kms_key_id,
384 app_security_group_management: self.app_security_group_management,
385 tag_propagation: self.tag_propagation,
386 default_space_settings: self.default_space_settings,
387 })
388 }
389}