aws_sdk_sagemaker/operation/describe_domain/
_describe_domain_output.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 DescribeDomainOutput {
6    /// <p>The domain's Amazon Resource Name (ARN).</p>
7    pub domain_arn: ::std::option::Option<::std::string::String>,
8    /// <p>The domain ID.</p>
9    pub domain_id: ::std::option::Option<::std::string::String>,
10    /// <p>The domain name.</p>
11    pub domain_name: ::std::option::Option<::std::string::String>,
12    /// <p>The ID of the Amazon Elastic File System managed by this Domain.</p>
13    pub home_efs_file_system_id: ::std::option::Option<::std::string::String>,
14    /// <p>The IAM Identity Center managed application instance ID.</p>
15    pub single_sign_on_managed_application_instance_id: ::std::option::Option<::std::string::String>,
16    /// <p>The ARN of the application managed by SageMaker AI in IAM Identity Center. This value is only returned for domains created after October 1, 2023.</p>
17    pub single_sign_on_application_arn: ::std::option::Option<::std::string::String>,
18    /// <p>The status.</p>
19    pub status: ::std::option::Option<crate::types::DomainStatus>,
20    /// <p>The creation time.</p>
21    pub creation_time: ::std::option::Option<::aws_smithy_types::DateTime>,
22    /// <p>The last modified time.</p>
23    pub last_modified_time: ::std::option::Option<::aws_smithy_types::DateTime>,
24    /// <p>The failure reason.</p>
25    pub failure_reason: ::std::option::Option<::std::string::String>,
26    /// <p>The ID of the security group that authorizes traffic between the <code>RSessionGateway</code> apps and the <code>RStudioServerPro</code> app.</p>
27    pub security_group_id_for_domain_boundary: ::std::option::Option<::std::string::String>,
28    /// <p>The domain's authentication mode.</p>
29    pub auth_mode: ::std::option::Option<crate::types::AuthMode>,
30    /// <p>Settings which are applied to UserProfiles in this domain if settings are not explicitly specified in a given UserProfile.</p>
31    pub default_user_settings: ::std::option::Option<crate::types::UserSettings>,
32    /// <p>A collection of <code>Domain</code> settings.</p>
33    pub domain_settings: ::std::option::Option<crate::types::DomainSettings>,
34    /// <p>Specifies the VPC used for non-EFS traffic. The default value is <code>PublicInternetOnly</code>.</p>
35    /// <ul>
36    /// <li>
37    /// <p><code>PublicInternetOnly</code> - Non-EFS traffic is through a VPC managed by Amazon SageMaker AI, which allows direct internet access</p></li>
38    /// <li>
39    /// <p><code>VpcOnly</code> - All traffic is through the specified VPC and subnets</p></li>
40    /// </ul>
41    pub app_network_access_type: ::std::option::Option<crate::types::AppNetworkAccessType>,
42    /// <p>Use <code>KmsKeyId</code>.</p>
43    #[deprecated(note = "This property is deprecated, use KmsKeyId instead.")]
44    pub home_efs_file_system_kms_key_id: ::std::option::Option<::std::string::String>,
45    /// <p>The VPC subnets that the domain uses for communication.</p>
46    pub subnet_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
47    /// <p>The domain's URL.</p>
48    pub url: ::std::option::Option<::std::string::String>,
49    /// <p>The ID of the Amazon Virtual Private Cloud (VPC) that the domain uses for communication.</p>
50    pub vpc_id: ::std::option::Option<::std::string::String>,
51    /// <p>The Amazon Web Services KMS customer managed key used to encrypt the EFS volume attached to the domain.</p>
52    pub kms_key_id: ::std::option::Option<::std::string::String>,
53    /// <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.</p>
54    pub app_security_group_management: ::std::option::Option<crate::types::AppSecurityGroupManagement>,
55    /// <p>Indicates whether custom tag propagation is supported for the domain.</p>
56    pub tag_propagation: ::std::option::Option<crate::types::TagPropagation>,
57    /// <p>The default settings for shared spaces that users create in the domain.</p>
58    pub default_space_settings: ::std::option::Option<crate::types::DefaultSpaceSettings>,
59    _request_id: Option<String>,
60}
61impl DescribeDomainOutput {
62    /// <p>The domain's Amazon Resource Name (ARN).</p>
63    pub fn domain_arn(&self) -> ::std::option::Option<&str> {
64        self.domain_arn.as_deref()
65    }
66    /// <p>The domain ID.</p>
67    pub fn domain_id(&self) -> ::std::option::Option<&str> {
68        self.domain_id.as_deref()
69    }
70    /// <p>The domain name.</p>
71    pub fn domain_name(&self) -> ::std::option::Option<&str> {
72        self.domain_name.as_deref()
73    }
74    /// <p>The ID of the Amazon Elastic File System managed by this Domain.</p>
75    pub fn home_efs_file_system_id(&self) -> ::std::option::Option<&str> {
76        self.home_efs_file_system_id.as_deref()
77    }
78    /// <p>The IAM Identity Center managed application instance ID.</p>
79    pub fn single_sign_on_managed_application_instance_id(&self) -> ::std::option::Option<&str> {
80        self.single_sign_on_managed_application_instance_id.as_deref()
81    }
82    /// <p>The ARN of the application managed by SageMaker AI in IAM Identity Center. This value is only returned for domains created after October 1, 2023.</p>
83    pub fn single_sign_on_application_arn(&self) -> ::std::option::Option<&str> {
84        self.single_sign_on_application_arn.as_deref()
85    }
86    /// <p>The status.</p>
87    pub fn status(&self) -> ::std::option::Option<&crate::types::DomainStatus> {
88        self.status.as_ref()
89    }
90    /// <p>The creation time.</p>
91    pub fn creation_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
92        self.creation_time.as_ref()
93    }
94    /// <p>The last modified time.</p>
95    pub fn last_modified_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
96        self.last_modified_time.as_ref()
97    }
98    /// <p>The failure reason.</p>
99    pub fn failure_reason(&self) -> ::std::option::Option<&str> {
100        self.failure_reason.as_deref()
101    }
102    /// <p>The ID of the security group that authorizes traffic between the <code>RSessionGateway</code> apps and the <code>RStudioServerPro</code> app.</p>
103    pub fn security_group_id_for_domain_boundary(&self) -> ::std::option::Option<&str> {
104        self.security_group_id_for_domain_boundary.as_deref()
105    }
106    /// <p>The domain's authentication mode.</p>
107    pub fn auth_mode(&self) -> ::std::option::Option<&crate::types::AuthMode> {
108        self.auth_mode.as_ref()
109    }
110    /// <p>Settings which are applied to UserProfiles in this domain if settings are not explicitly specified in a given UserProfile.</p>
111    pub fn default_user_settings(&self) -> ::std::option::Option<&crate::types::UserSettings> {
112        self.default_user_settings.as_ref()
113    }
114    /// <p>A collection of <code>Domain</code> settings.</p>
115    pub fn domain_settings(&self) -> ::std::option::Option<&crate::types::DomainSettings> {
116        self.domain_settings.as_ref()
117    }
118    /// <p>Specifies the VPC used for non-EFS traffic. The default value is <code>PublicInternetOnly</code>.</p>
119    /// <ul>
120    /// <li>
121    /// <p><code>PublicInternetOnly</code> - Non-EFS traffic is through a VPC managed by Amazon SageMaker AI, which allows direct internet access</p></li>
122    /// <li>
123    /// <p><code>VpcOnly</code> - All traffic is through the specified VPC and subnets</p></li>
124    /// </ul>
125    pub fn app_network_access_type(&self) -> ::std::option::Option<&crate::types::AppNetworkAccessType> {
126        self.app_network_access_type.as_ref()
127    }
128    /// <p>Use <code>KmsKeyId</code>.</p>
129    #[deprecated(note = "This property is deprecated, use KmsKeyId instead.")]
130    pub fn home_efs_file_system_kms_key_id(&self) -> ::std::option::Option<&str> {
131        self.home_efs_file_system_kms_key_id.as_deref()
132    }
133    /// <p>The VPC subnets that the domain uses for communication.</p>
134    ///
135    /// 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()`.
136    pub fn subnet_ids(&self) -> &[::std::string::String] {
137        self.subnet_ids.as_deref().unwrap_or_default()
138    }
139    /// <p>The domain's URL.</p>
140    pub fn url(&self) -> ::std::option::Option<&str> {
141        self.url.as_deref()
142    }
143    /// <p>The ID of the Amazon Virtual Private Cloud (VPC) that the domain uses for communication.</p>
144    pub fn vpc_id(&self) -> ::std::option::Option<&str> {
145        self.vpc_id.as_deref()
146    }
147    /// <p>The Amazon Web Services KMS customer managed key used to encrypt the EFS volume attached to the domain.</p>
148    pub fn kms_key_id(&self) -> ::std::option::Option<&str> {
149        self.kms_key_id.as_deref()
150    }
151    /// <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.</p>
152    pub fn app_security_group_management(&self) -> ::std::option::Option<&crate::types::AppSecurityGroupManagement> {
153        self.app_security_group_management.as_ref()
154    }
155    /// <p>Indicates whether custom tag propagation is supported for the domain.</p>
156    pub fn tag_propagation(&self) -> ::std::option::Option<&crate::types::TagPropagation> {
157        self.tag_propagation.as_ref()
158    }
159    /// <p>The default settings for shared spaces that users create in the domain.</p>
160    pub fn default_space_settings(&self) -> ::std::option::Option<&crate::types::DefaultSpaceSettings> {
161        self.default_space_settings.as_ref()
162    }
163}
164impl ::aws_types::request_id::RequestId for DescribeDomainOutput {
165    fn request_id(&self) -> Option<&str> {
166        self._request_id.as_deref()
167    }
168}
169impl DescribeDomainOutput {
170    /// Creates a new builder-style object to manufacture [`DescribeDomainOutput`](crate::operation::describe_domain::DescribeDomainOutput).
171    pub fn builder() -> crate::operation::describe_domain::builders::DescribeDomainOutputBuilder {
172        crate::operation::describe_domain::builders::DescribeDomainOutputBuilder::default()
173    }
174}
175
176/// A builder for [`DescribeDomainOutput`](crate::operation::describe_domain::DescribeDomainOutput).
177#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
178#[non_exhaustive]
179pub struct DescribeDomainOutputBuilder {
180    pub(crate) domain_arn: ::std::option::Option<::std::string::String>,
181    pub(crate) domain_id: ::std::option::Option<::std::string::String>,
182    pub(crate) domain_name: ::std::option::Option<::std::string::String>,
183    pub(crate) home_efs_file_system_id: ::std::option::Option<::std::string::String>,
184    pub(crate) single_sign_on_managed_application_instance_id: ::std::option::Option<::std::string::String>,
185    pub(crate) single_sign_on_application_arn: ::std::option::Option<::std::string::String>,
186    pub(crate) status: ::std::option::Option<crate::types::DomainStatus>,
187    pub(crate) creation_time: ::std::option::Option<::aws_smithy_types::DateTime>,
188    pub(crate) last_modified_time: ::std::option::Option<::aws_smithy_types::DateTime>,
189    pub(crate) failure_reason: ::std::option::Option<::std::string::String>,
190    pub(crate) security_group_id_for_domain_boundary: ::std::option::Option<::std::string::String>,
191    pub(crate) auth_mode: ::std::option::Option<crate::types::AuthMode>,
192    pub(crate) default_user_settings: ::std::option::Option<crate::types::UserSettings>,
193    pub(crate) domain_settings: ::std::option::Option<crate::types::DomainSettings>,
194    pub(crate) app_network_access_type: ::std::option::Option<crate::types::AppNetworkAccessType>,
195    pub(crate) home_efs_file_system_kms_key_id: ::std::option::Option<::std::string::String>,
196    pub(crate) subnet_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
197    pub(crate) url: ::std::option::Option<::std::string::String>,
198    pub(crate) vpc_id: ::std::option::Option<::std::string::String>,
199    pub(crate) kms_key_id: ::std::option::Option<::std::string::String>,
200    pub(crate) app_security_group_management: ::std::option::Option<crate::types::AppSecurityGroupManagement>,
201    pub(crate) tag_propagation: ::std::option::Option<crate::types::TagPropagation>,
202    pub(crate) default_space_settings: ::std::option::Option<crate::types::DefaultSpaceSettings>,
203    _request_id: Option<String>,
204}
205impl DescribeDomainOutputBuilder {
206    /// <p>The domain's Amazon Resource Name (ARN).</p>
207    pub fn domain_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
208        self.domain_arn = ::std::option::Option::Some(input.into());
209        self
210    }
211    /// <p>The domain's Amazon Resource Name (ARN).</p>
212    pub fn set_domain_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
213        self.domain_arn = input;
214        self
215    }
216    /// <p>The domain's Amazon Resource Name (ARN).</p>
217    pub fn get_domain_arn(&self) -> &::std::option::Option<::std::string::String> {
218        &self.domain_arn
219    }
220    /// <p>The domain ID.</p>
221    pub fn domain_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
222        self.domain_id = ::std::option::Option::Some(input.into());
223        self
224    }
225    /// <p>The domain ID.</p>
226    pub fn set_domain_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
227        self.domain_id = input;
228        self
229    }
230    /// <p>The domain ID.</p>
231    pub fn get_domain_id(&self) -> &::std::option::Option<::std::string::String> {
232        &self.domain_id
233    }
234    /// <p>The domain name.</p>
235    pub fn domain_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
236        self.domain_name = ::std::option::Option::Some(input.into());
237        self
238    }
239    /// <p>The domain name.</p>
240    pub fn set_domain_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
241        self.domain_name = input;
242        self
243    }
244    /// <p>The domain name.</p>
245    pub fn get_domain_name(&self) -> &::std::option::Option<::std::string::String> {
246        &self.domain_name
247    }
248    /// <p>The ID of the Amazon Elastic File System managed by this Domain.</p>
249    pub fn home_efs_file_system_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
250        self.home_efs_file_system_id = ::std::option::Option::Some(input.into());
251        self
252    }
253    /// <p>The ID of the Amazon Elastic File System managed by this Domain.</p>
254    pub fn set_home_efs_file_system_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
255        self.home_efs_file_system_id = input;
256        self
257    }
258    /// <p>The ID of the Amazon Elastic File System managed by this Domain.</p>
259    pub fn get_home_efs_file_system_id(&self) -> &::std::option::Option<::std::string::String> {
260        &self.home_efs_file_system_id
261    }
262    /// <p>The IAM Identity Center managed application instance ID.</p>
263    pub fn single_sign_on_managed_application_instance_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
264        self.single_sign_on_managed_application_instance_id = ::std::option::Option::Some(input.into());
265        self
266    }
267    /// <p>The IAM Identity Center managed application instance ID.</p>
268    pub fn set_single_sign_on_managed_application_instance_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
269        self.single_sign_on_managed_application_instance_id = input;
270        self
271    }
272    /// <p>The IAM Identity Center managed application instance ID.</p>
273    pub fn get_single_sign_on_managed_application_instance_id(&self) -> &::std::option::Option<::std::string::String> {
274        &self.single_sign_on_managed_application_instance_id
275    }
276    /// <p>The ARN of the application managed by SageMaker AI in IAM Identity Center. This value is only returned for domains created after October 1, 2023.</p>
277    pub fn single_sign_on_application_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
278        self.single_sign_on_application_arn = ::std::option::Option::Some(input.into());
279        self
280    }
281    /// <p>The ARN of the application managed by SageMaker AI in IAM Identity Center. This value is only returned for domains created after October 1, 2023.</p>
282    pub fn set_single_sign_on_application_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
283        self.single_sign_on_application_arn = input;
284        self
285    }
286    /// <p>The ARN of the application managed by SageMaker AI in IAM Identity Center. This value is only returned for domains created after October 1, 2023.</p>
287    pub fn get_single_sign_on_application_arn(&self) -> &::std::option::Option<::std::string::String> {
288        &self.single_sign_on_application_arn
289    }
290    /// <p>The status.</p>
291    pub fn status(mut self, input: crate::types::DomainStatus) -> Self {
292        self.status = ::std::option::Option::Some(input);
293        self
294    }
295    /// <p>The status.</p>
296    pub fn set_status(mut self, input: ::std::option::Option<crate::types::DomainStatus>) -> Self {
297        self.status = input;
298        self
299    }
300    /// <p>The status.</p>
301    pub fn get_status(&self) -> &::std::option::Option<crate::types::DomainStatus> {
302        &self.status
303    }
304    /// <p>The creation time.</p>
305    pub fn creation_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
306        self.creation_time = ::std::option::Option::Some(input);
307        self
308    }
309    /// <p>The creation time.</p>
310    pub fn set_creation_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
311        self.creation_time = input;
312        self
313    }
314    /// <p>The creation time.</p>
315    pub fn get_creation_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
316        &self.creation_time
317    }
318    /// <p>The last modified time.</p>
319    pub fn last_modified_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
320        self.last_modified_time = ::std::option::Option::Some(input);
321        self
322    }
323    /// <p>The last modified time.</p>
324    pub fn set_last_modified_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
325        self.last_modified_time = input;
326        self
327    }
328    /// <p>The last modified time.</p>
329    pub fn get_last_modified_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
330        &self.last_modified_time
331    }
332    /// <p>The failure reason.</p>
333    pub fn failure_reason(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
334        self.failure_reason = ::std::option::Option::Some(input.into());
335        self
336    }
337    /// <p>The failure reason.</p>
338    pub fn set_failure_reason(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
339        self.failure_reason = input;
340        self
341    }
342    /// <p>The failure reason.</p>
343    pub fn get_failure_reason(&self) -> &::std::option::Option<::std::string::String> {
344        &self.failure_reason
345    }
346    /// <p>The ID of the security group that authorizes traffic between the <code>RSessionGateway</code> apps and the <code>RStudioServerPro</code> app.</p>
347    pub fn security_group_id_for_domain_boundary(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
348        self.security_group_id_for_domain_boundary = ::std::option::Option::Some(input.into());
349        self
350    }
351    /// <p>The ID of the security group that authorizes traffic between the <code>RSessionGateway</code> apps and the <code>RStudioServerPro</code> app.</p>
352    pub fn set_security_group_id_for_domain_boundary(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
353        self.security_group_id_for_domain_boundary = input;
354        self
355    }
356    /// <p>The ID of the security group that authorizes traffic between the <code>RSessionGateway</code> apps and the <code>RStudioServerPro</code> app.</p>
357    pub fn get_security_group_id_for_domain_boundary(&self) -> &::std::option::Option<::std::string::String> {
358        &self.security_group_id_for_domain_boundary
359    }
360    /// <p>The domain's authentication mode.</p>
361    pub fn auth_mode(mut self, input: crate::types::AuthMode) -> Self {
362        self.auth_mode = ::std::option::Option::Some(input);
363        self
364    }
365    /// <p>The domain's authentication mode.</p>
366    pub fn set_auth_mode(mut self, input: ::std::option::Option<crate::types::AuthMode>) -> Self {
367        self.auth_mode = input;
368        self
369    }
370    /// <p>The domain's authentication mode.</p>
371    pub fn get_auth_mode(&self) -> &::std::option::Option<crate::types::AuthMode> {
372        &self.auth_mode
373    }
374    /// <p>Settings which are applied to UserProfiles in this domain if settings are not explicitly specified in a given UserProfile.</p>
375    pub fn default_user_settings(mut self, input: crate::types::UserSettings) -> Self {
376        self.default_user_settings = ::std::option::Option::Some(input);
377        self
378    }
379    /// <p>Settings which are applied to UserProfiles in this domain if settings are not explicitly specified in a given UserProfile.</p>
380    pub fn set_default_user_settings(mut self, input: ::std::option::Option<crate::types::UserSettings>) -> Self {
381        self.default_user_settings = input;
382        self
383    }
384    /// <p>Settings which are applied to UserProfiles in this domain if settings are not explicitly specified in a given UserProfile.</p>
385    pub fn get_default_user_settings(&self) -> &::std::option::Option<crate::types::UserSettings> {
386        &self.default_user_settings
387    }
388    /// <p>A collection of <code>Domain</code> settings.</p>
389    pub fn domain_settings(mut self, input: crate::types::DomainSettings) -> Self {
390        self.domain_settings = ::std::option::Option::Some(input);
391        self
392    }
393    /// <p>A collection of <code>Domain</code> settings.</p>
394    pub fn set_domain_settings(mut self, input: ::std::option::Option<crate::types::DomainSettings>) -> Self {
395        self.domain_settings = input;
396        self
397    }
398    /// <p>A collection of <code>Domain</code> settings.</p>
399    pub fn get_domain_settings(&self) -> &::std::option::Option<crate::types::DomainSettings> {
400        &self.domain_settings
401    }
402    /// <p>Specifies the VPC used for non-EFS traffic. The default value is <code>PublicInternetOnly</code>.</p>
403    /// <ul>
404    /// <li>
405    /// <p><code>PublicInternetOnly</code> - Non-EFS traffic is through a VPC managed by Amazon SageMaker AI, which allows direct internet access</p></li>
406    /// <li>
407    /// <p><code>VpcOnly</code> - All traffic is through the specified VPC and subnets</p></li>
408    /// </ul>
409    pub fn app_network_access_type(mut self, input: crate::types::AppNetworkAccessType) -> Self {
410        self.app_network_access_type = ::std::option::Option::Some(input);
411        self
412    }
413    /// <p>Specifies the VPC used for non-EFS traffic. The default value is <code>PublicInternetOnly</code>.</p>
414    /// <ul>
415    /// <li>
416    /// <p><code>PublicInternetOnly</code> - Non-EFS traffic is through a VPC managed by Amazon SageMaker AI, which allows direct internet access</p></li>
417    /// <li>
418    /// <p><code>VpcOnly</code> - All traffic is through the specified VPC and subnets</p></li>
419    /// </ul>
420    pub fn set_app_network_access_type(mut self, input: ::std::option::Option<crate::types::AppNetworkAccessType>) -> Self {
421        self.app_network_access_type = input;
422        self
423    }
424    /// <p>Specifies the VPC used for non-EFS traffic. The default value is <code>PublicInternetOnly</code>.</p>
425    /// <ul>
426    /// <li>
427    /// <p><code>PublicInternetOnly</code> - Non-EFS traffic is through a VPC managed by Amazon SageMaker AI, which allows direct internet access</p></li>
428    /// <li>
429    /// <p><code>VpcOnly</code> - All traffic is through the specified VPC and subnets</p></li>
430    /// </ul>
431    pub fn get_app_network_access_type(&self) -> &::std::option::Option<crate::types::AppNetworkAccessType> {
432        &self.app_network_access_type
433    }
434    /// <p>Use <code>KmsKeyId</code>.</p>
435    #[deprecated(note = "This property is deprecated, use KmsKeyId instead.")]
436    pub fn home_efs_file_system_kms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
437        self.home_efs_file_system_kms_key_id = ::std::option::Option::Some(input.into());
438        self
439    }
440    /// <p>Use <code>KmsKeyId</code>.</p>
441    #[deprecated(note = "This property is deprecated, use KmsKeyId instead.")]
442    pub fn set_home_efs_file_system_kms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
443        self.home_efs_file_system_kms_key_id = input;
444        self
445    }
446    /// <p>Use <code>KmsKeyId</code>.</p>
447    #[deprecated(note = "This property is deprecated, use KmsKeyId instead.")]
448    pub fn get_home_efs_file_system_kms_key_id(&self) -> &::std::option::Option<::std::string::String> {
449        &self.home_efs_file_system_kms_key_id
450    }
451    /// Appends an item to `subnet_ids`.
452    ///
453    /// To override the contents of this collection use [`set_subnet_ids`](Self::set_subnet_ids).
454    ///
455    /// <p>The VPC subnets that the domain uses for communication.</p>
456    pub fn subnet_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
457        let mut v = self.subnet_ids.unwrap_or_default();
458        v.push(input.into());
459        self.subnet_ids = ::std::option::Option::Some(v);
460        self
461    }
462    /// <p>The VPC subnets that the domain uses for communication.</p>
463    pub fn set_subnet_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
464        self.subnet_ids = input;
465        self
466    }
467    /// <p>The VPC subnets that the domain uses for communication.</p>
468    pub fn get_subnet_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
469        &self.subnet_ids
470    }
471    /// <p>The domain's URL.</p>
472    pub fn url(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
473        self.url = ::std::option::Option::Some(input.into());
474        self
475    }
476    /// <p>The domain's URL.</p>
477    pub fn set_url(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
478        self.url = input;
479        self
480    }
481    /// <p>The domain's URL.</p>
482    pub fn get_url(&self) -> &::std::option::Option<::std::string::String> {
483        &self.url
484    }
485    /// <p>The ID of the Amazon Virtual Private Cloud (VPC) that the domain uses for communication.</p>
486    pub fn vpc_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
487        self.vpc_id = ::std::option::Option::Some(input.into());
488        self
489    }
490    /// <p>The ID of the Amazon Virtual Private Cloud (VPC) that the domain uses for communication.</p>
491    pub fn set_vpc_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
492        self.vpc_id = input;
493        self
494    }
495    /// <p>The ID of the Amazon Virtual Private Cloud (VPC) that the domain uses for communication.</p>
496    pub fn get_vpc_id(&self) -> &::std::option::Option<::std::string::String> {
497        &self.vpc_id
498    }
499    /// <p>The Amazon Web Services KMS customer managed key used to encrypt the EFS volume attached to the domain.</p>
500    pub fn kms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
501        self.kms_key_id = ::std::option::Option::Some(input.into());
502        self
503    }
504    /// <p>The Amazon Web Services KMS customer managed key used to encrypt the EFS volume attached to the domain.</p>
505    pub fn set_kms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
506        self.kms_key_id = input;
507        self
508    }
509    /// <p>The Amazon Web Services KMS customer managed key used to encrypt the EFS volume attached to the domain.</p>
510    pub fn get_kms_key_id(&self) -> &::std::option::Option<::std::string::String> {
511        &self.kms_key_id
512    }
513    /// <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.</p>
514    pub fn app_security_group_management(mut self, input: crate::types::AppSecurityGroupManagement) -> Self {
515        self.app_security_group_management = ::std::option::Option::Some(input);
516        self
517    }
518    /// <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.</p>
519    pub fn set_app_security_group_management(mut self, input: ::std::option::Option<crate::types::AppSecurityGroupManagement>) -> Self {
520        self.app_security_group_management = input;
521        self
522    }
523    /// <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.</p>
524    pub fn get_app_security_group_management(&self) -> &::std::option::Option<crate::types::AppSecurityGroupManagement> {
525        &self.app_security_group_management
526    }
527    /// <p>Indicates whether custom tag propagation is supported for the domain.</p>
528    pub fn tag_propagation(mut self, input: crate::types::TagPropagation) -> Self {
529        self.tag_propagation = ::std::option::Option::Some(input);
530        self
531    }
532    /// <p>Indicates whether custom tag propagation is supported for the domain.</p>
533    pub fn set_tag_propagation(mut self, input: ::std::option::Option<crate::types::TagPropagation>) -> Self {
534        self.tag_propagation = input;
535        self
536    }
537    /// <p>Indicates whether custom tag propagation is supported for the domain.</p>
538    pub fn get_tag_propagation(&self) -> &::std::option::Option<crate::types::TagPropagation> {
539        &self.tag_propagation
540    }
541    /// <p>The default settings for shared spaces that users create in the domain.</p>
542    pub fn default_space_settings(mut self, input: crate::types::DefaultSpaceSettings) -> Self {
543        self.default_space_settings = ::std::option::Option::Some(input);
544        self
545    }
546    /// <p>The default settings for shared spaces that users create in the domain.</p>
547    pub fn set_default_space_settings(mut self, input: ::std::option::Option<crate::types::DefaultSpaceSettings>) -> Self {
548        self.default_space_settings = input;
549        self
550    }
551    /// <p>The default settings for shared spaces that users create in the domain.</p>
552    pub fn get_default_space_settings(&self) -> &::std::option::Option<crate::types::DefaultSpaceSettings> {
553        &self.default_space_settings
554    }
555    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
556        self._request_id = Some(request_id.into());
557        self
558    }
559
560    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
561        self._request_id = request_id;
562        self
563    }
564    /// Consumes the builder and constructs a [`DescribeDomainOutput`](crate::operation::describe_domain::DescribeDomainOutput).
565    pub fn build(self) -> crate::operation::describe_domain::DescribeDomainOutput {
566        crate::operation::describe_domain::DescribeDomainOutput {
567            domain_arn: self.domain_arn,
568            domain_id: self.domain_id,
569            domain_name: self.domain_name,
570            home_efs_file_system_id: self.home_efs_file_system_id,
571            single_sign_on_managed_application_instance_id: self.single_sign_on_managed_application_instance_id,
572            single_sign_on_application_arn: self.single_sign_on_application_arn,
573            status: self.status,
574            creation_time: self.creation_time,
575            last_modified_time: self.last_modified_time,
576            failure_reason: self.failure_reason,
577            security_group_id_for_domain_boundary: self.security_group_id_for_domain_boundary,
578            auth_mode: self.auth_mode,
579            default_user_settings: self.default_user_settings,
580            domain_settings: self.domain_settings,
581            app_network_access_type: self.app_network_access_type,
582            home_efs_file_system_kms_key_id: self.home_efs_file_system_kms_key_id,
583            subnet_ids: self.subnet_ids,
584            url: self.url,
585            vpc_id: self.vpc_id,
586            kms_key_id: self.kms_key_id,
587            app_security_group_management: self.app_security_group_management,
588            tag_propagation: self.tag_propagation,
589            default_space_settings: self.default_space_settings,
590            _request_id: self._request_id,
591        }
592    }
593}