aws_sdk_emr/operation/create_studio/_create_studio_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 CreateStudioInput {
6 /// <p>A descriptive name for the Amazon EMR Studio.</p>
7 pub name: ::std::option::Option<::std::string::String>,
8 /// <p>A detailed description of the Amazon EMR Studio.</p>
9 pub description: ::std::option::Option<::std::string::String>,
10 /// <p>Specifies whether the Studio authenticates users using IAM or IAM Identity Center.</p>
11 pub auth_mode: ::std::option::Option<crate::types::AuthMode>,
12 /// <p>The ID of the Amazon Virtual Private Cloud (Amazon VPC) to associate with the Studio.</p>
13 pub vpc_id: ::std::option::Option<::std::string::String>,
14 /// <p>A list of subnet IDs to associate with the Amazon EMR Studio. A Studio can have a maximum of 5 subnets. The subnets must belong to the VPC specified by <code>VpcId</code>. Studio users can create a Workspace in any of the specified subnets.</p>
15 pub subnet_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
16 /// <p>The IAM role that the Amazon EMR Studio assumes. The service role provides a way for Amazon EMR Studio to interoperate with other Amazon Web Services services.</p>
17 pub service_role: ::std::option::Option<::std::string::String>,
18 /// <p>The IAM user role that users and groups assume when logged in to an Amazon EMR Studio. Only specify a <code>UserRole</code> when you use IAM Identity Center authentication. The permissions attached to the <code>UserRole</code> can be scoped down for each user or group using session policies.</p>
19 pub user_role: ::std::option::Option<::std::string::String>,
20 /// <p>The ID of the Amazon EMR Studio Workspace security group. The Workspace security group allows outbound network traffic to resources in the Engine security group, and it must be in the same VPC specified by <code>VpcId</code>.</p>
21 pub workspace_security_group_id: ::std::option::Option<::std::string::String>,
22 /// <p>The ID of the Amazon EMR Studio Engine security group. The Engine security group allows inbound network traffic from the Workspace security group, and it must be in the same VPC specified by <code>VpcId</code>.</p>
23 pub engine_security_group_id: ::std::option::Option<::std::string::String>,
24 /// <p>The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook files.</p>
25 pub default_s3_location: ::std::option::Option<::std::string::String>,
26 /// <p>The authentication endpoint of your identity provider (IdP). Specify this value when you use IAM authentication and want to let federated users log in to a Studio with the Studio URL and credentials from your IdP. Amazon EMR Studio redirects users to this endpoint to enter credentials.</p>
27 pub idp_auth_url: ::std::option::Option<::std::string::String>,
28 /// <p>The name that your identity provider (IdP) uses for its <code>RelayState</code> parameter. For example, <code>RelayState</code> or <code>TargetSource</code>. Specify this value when you use IAM authentication and want to let federated users log in to a Studio using the Studio URL. The <code>RelayState</code> parameter differs by IdP.</p>
29 pub idp_relay_state_parameter_name: ::std::option::Option<::std::string::String>,
30 /// <p>A list of tags to associate with the Amazon EMR Studio. Tags are user-defined key-value pairs that consist of a required key string with a maximum of 128 characters, and an optional value string with a maximum of 256 characters.</p>
31 pub tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
32 /// <p>A Boolean indicating whether to enable Trusted identity propagation for the Studio. The default value is <code>false</code>.</p>
33 pub trusted_identity_propagation_enabled: ::std::option::Option<bool>,
34 /// <p>Specifies whether IAM Identity Center user assignment is <code>REQUIRED</code> or <code>OPTIONAL</code>. If the value is set to <code>REQUIRED</code>, users must be explicitly assigned to the Studio application to access the Studio.</p>
35 pub idc_user_assignment: ::std::option::Option<crate::types::IdcUserAssignment>,
36 /// <p>The ARN of the IAM Identity Center instance to create the Studio application.</p>
37 pub idc_instance_arn: ::std::option::Option<::std::string::String>,
38 /// <p>The KMS key identifier (ARN) used to encrypt Amazon EMR Studio workspace and notebook files when backed up to Amazon S3.</p>
39 pub encryption_key_arn: ::std::option::Option<::std::string::String>,
40}
41impl CreateStudioInput {
42 /// <p>A descriptive name for the Amazon EMR Studio.</p>
43 pub fn name(&self) -> ::std::option::Option<&str> {
44 self.name.as_deref()
45 }
46 /// <p>A detailed description of the Amazon EMR Studio.</p>
47 pub fn description(&self) -> ::std::option::Option<&str> {
48 self.description.as_deref()
49 }
50 /// <p>Specifies whether the Studio authenticates users using IAM or IAM Identity Center.</p>
51 pub fn auth_mode(&self) -> ::std::option::Option<&crate::types::AuthMode> {
52 self.auth_mode.as_ref()
53 }
54 /// <p>The ID of the Amazon Virtual Private Cloud (Amazon VPC) to associate with the Studio.</p>
55 pub fn vpc_id(&self) -> ::std::option::Option<&str> {
56 self.vpc_id.as_deref()
57 }
58 /// <p>A list of subnet IDs to associate with the Amazon EMR Studio. A Studio can have a maximum of 5 subnets. The subnets must belong to the VPC specified by <code>VpcId</code>. Studio users can create a Workspace in any of the specified subnets.</p>
59 ///
60 /// 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()`.
61 pub fn subnet_ids(&self) -> &[::std::string::String] {
62 self.subnet_ids.as_deref().unwrap_or_default()
63 }
64 /// <p>The IAM role that the Amazon EMR Studio assumes. The service role provides a way for Amazon EMR Studio to interoperate with other Amazon Web Services services.</p>
65 pub fn service_role(&self) -> ::std::option::Option<&str> {
66 self.service_role.as_deref()
67 }
68 /// <p>The IAM user role that users and groups assume when logged in to an Amazon EMR Studio. Only specify a <code>UserRole</code> when you use IAM Identity Center authentication. The permissions attached to the <code>UserRole</code> can be scoped down for each user or group using session policies.</p>
69 pub fn user_role(&self) -> ::std::option::Option<&str> {
70 self.user_role.as_deref()
71 }
72 /// <p>The ID of the Amazon EMR Studio Workspace security group. The Workspace security group allows outbound network traffic to resources in the Engine security group, and it must be in the same VPC specified by <code>VpcId</code>.</p>
73 pub fn workspace_security_group_id(&self) -> ::std::option::Option<&str> {
74 self.workspace_security_group_id.as_deref()
75 }
76 /// <p>The ID of the Amazon EMR Studio Engine security group. The Engine security group allows inbound network traffic from the Workspace security group, and it must be in the same VPC specified by <code>VpcId</code>.</p>
77 pub fn engine_security_group_id(&self) -> ::std::option::Option<&str> {
78 self.engine_security_group_id.as_deref()
79 }
80 /// <p>The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook files.</p>
81 pub fn default_s3_location(&self) -> ::std::option::Option<&str> {
82 self.default_s3_location.as_deref()
83 }
84 /// <p>The authentication endpoint of your identity provider (IdP). Specify this value when you use IAM authentication and want to let federated users log in to a Studio with the Studio URL and credentials from your IdP. Amazon EMR Studio redirects users to this endpoint to enter credentials.</p>
85 pub fn idp_auth_url(&self) -> ::std::option::Option<&str> {
86 self.idp_auth_url.as_deref()
87 }
88 /// <p>The name that your identity provider (IdP) uses for its <code>RelayState</code> parameter. For example, <code>RelayState</code> or <code>TargetSource</code>. Specify this value when you use IAM authentication and want to let federated users log in to a Studio using the Studio URL. The <code>RelayState</code> parameter differs by IdP.</p>
89 pub fn idp_relay_state_parameter_name(&self) -> ::std::option::Option<&str> {
90 self.idp_relay_state_parameter_name.as_deref()
91 }
92 /// <p>A list of tags to associate with the Amazon EMR Studio. Tags are user-defined key-value pairs that consist of a required key string with a maximum of 128 characters, and an optional value string with a maximum of 256 characters.</p>
93 ///
94 /// 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()`.
95 pub fn tags(&self) -> &[crate::types::Tag] {
96 self.tags.as_deref().unwrap_or_default()
97 }
98 /// <p>A Boolean indicating whether to enable Trusted identity propagation for the Studio. The default value is <code>false</code>.</p>
99 pub fn trusted_identity_propagation_enabled(&self) -> ::std::option::Option<bool> {
100 self.trusted_identity_propagation_enabled
101 }
102 /// <p>Specifies whether IAM Identity Center user assignment is <code>REQUIRED</code> or <code>OPTIONAL</code>. If the value is set to <code>REQUIRED</code>, users must be explicitly assigned to the Studio application to access the Studio.</p>
103 pub fn idc_user_assignment(&self) -> ::std::option::Option<&crate::types::IdcUserAssignment> {
104 self.idc_user_assignment.as_ref()
105 }
106 /// <p>The ARN of the IAM Identity Center instance to create the Studio application.</p>
107 pub fn idc_instance_arn(&self) -> ::std::option::Option<&str> {
108 self.idc_instance_arn.as_deref()
109 }
110 /// <p>The KMS key identifier (ARN) used to encrypt Amazon EMR Studio workspace and notebook files when backed up to Amazon S3.</p>
111 pub fn encryption_key_arn(&self) -> ::std::option::Option<&str> {
112 self.encryption_key_arn.as_deref()
113 }
114}
115impl CreateStudioInput {
116 /// Creates a new builder-style object to manufacture [`CreateStudioInput`](crate::operation::create_studio::CreateStudioInput).
117 pub fn builder() -> crate::operation::create_studio::builders::CreateStudioInputBuilder {
118 crate::operation::create_studio::builders::CreateStudioInputBuilder::default()
119 }
120}
121
122/// A builder for [`CreateStudioInput`](crate::operation::create_studio::CreateStudioInput).
123#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
124#[non_exhaustive]
125pub struct CreateStudioInputBuilder {
126 pub(crate) name: ::std::option::Option<::std::string::String>,
127 pub(crate) description: ::std::option::Option<::std::string::String>,
128 pub(crate) auth_mode: ::std::option::Option<crate::types::AuthMode>,
129 pub(crate) vpc_id: ::std::option::Option<::std::string::String>,
130 pub(crate) subnet_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
131 pub(crate) service_role: ::std::option::Option<::std::string::String>,
132 pub(crate) user_role: ::std::option::Option<::std::string::String>,
133 pub(crate) workspace_security_group_id: ::std::option::Option<::std::string::String>,
134 pub(crate) engine_security_group_id: ::std::option::Option<::std::string::String>,
135 pub(crate) default_s3_location: ::std::option::Option<::std::string::String>,
136 pub(crate) idp_auth_url: ::std::option::Option<::std::string::String>,
137 pub(crate) idp_relay_state_parameter_name: ::std::option::Option<::std::string::String>,
138 pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
139 pub(crate) trusted_identity_propagation_enabled: ::std::option::Option<bool>,
140 pub(crate) idc_user_assignment: ::std::option::Option<crate::types::IdcUserAssignment>,
141 pub(crate) idc_instance_arn: ::std::option::Option<::std::string::String>,
142 pub(crate) encryption_key_arn: ::std::option::Option<::std::string::String>,
143}
144impl CreateStudioInputBuilder {
145 /// <p>A descriptive name for the Amazon EMR Studio.</p>
146 /// This field is required.
147 pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
148 self.name = ::std::option::Option::Some(input.into());
149 self
150 }
151 /// <p>A descriptive name for the Amazon EMR Studio.</p>
152 pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
153 self.name = input;
154 self
155 }
156 /// <p>A descriptive name for the Amazon EMR Studio.</p>
157 pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
158 &self.name
159 }
160 /// <p>A detailed description of the Amazon EMR Studio.</p>
161 pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
162 self.description = ::std::option::Option::Some(input.into());
163 self
164 }
165 /// <p>A detailed description of the Amazon EMR Studio.</p>
166 pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
167 self.description = input;
168 self
169 }
170 /// <p>A detailed description of the Amazon EMR Studio.</p>
171 pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
172 &self.description
173 }
174 /// <p>Specifies whether the Studio authenticates users using IAM or IAM Identity Center.</p>
175 /// This field is required.
176 pub fn auth_mode(mut self, input: crate::types::AuthMode) -> Self {
177 self.auth_mode = ::std::option::Option::Some(input);
178 self
179 }
180 /// <p>Specifies whether the Studio authenticates users using IAM or IAM Identity Center.</p>
181 pub fn set_auth_mode(mut self, input: ::std::option::Option<crate::types::AuthMode>) -> Self {
182 self.auth_mode = input;
183 self
184 }
185 /// <p>Specifies whether the Studio authenticates users using IAM or IAM Identity Center.</p>
186 pub fn get_auth_mode(&self) -> &::std::option::Option<crate::types::AuthMode> {
187 &self.auth_mode
188 }
189 /// <p>The ID of the Amazon Virtual Private Cloud (Amazon VPC) to associate with the Studio.</p>
190 /// This field is required.
191 pub fn vpc_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
192 self.vpc_id = ::std::option::Option::Some(input.into());
193 self
194 }
195 /// <p>The ID of the Amazon Virtual Private Cloud (Amazon VPC) to associate with the Studio.</p>
196 pub fn set_vpc_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
197 self.vpc_id = input;
198 self
199 }
200 /// <p>The ID of the Amazon Virtual Private Cloud (Amazon VPC) to associate with the Studio.</p>
201 pub fn get_vpc_id(&self) -> &::std::option::Option<::std::string::String> {
202 &self.vpc_id
203 }
204 /// Appends an item to `subnet_ids`.
205 ///
206 /// To override the contents of this collection use [`set_subnet_ids`](Self::set_subnet_ids).
207 ///
208 /// <p>A list of subnet IDs to associate with the Amazon EMR Studio. A Studio can have a maximum of 5 subnets. The subnets must belong to the VPC specified by <code>VpcId</code>. Studio users can create a Workspace in any of the specified subnets.</p>
209 pub fn subnet_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
210 let mut v = self.subnet_ids.unwrap_or_default();
211 v.push(input.into());
212 self.subnet_ids = ::std::option::Option::Some(v);
213 self
214 }
215 /// <p>A list of subnet IDs to associate with the Amazon EMR Studio. A Studio can have a maximum of 5 subnets. The subnets must belong to the VPC specified by <code>VpcId</code>. Studio users can create a Workspace in any of the specified subnets.</p>
216 pub fn set_subnet_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
217 self.subnet_ids = input;
218 self
219 }
220 /// <p>A list of subnet IDs to associate with the Amazon EMR Studio. A Studio can have a maximum of 5 subnets. The subnets must belong to the VPC specified by <code>VpcId</code>. Studio users can create a Workspace in any of the specified subnets.</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 IAM role that the Amazon EMR Studio assumes. The service role provides a way for Amazon EMR Studio to interoperate with other Amazon Web Services services.</p>
225 /// This field is required.
226 pub fn service_role(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
227 self.service_role = ::std::option::Option::Some(input.into());
228 self
229 }
230 /// <p>The IAM role that the Amazon EMR Studio assumes. The service role provides a way for Amazon EMR Studio to interoperate with other Amazon Web Services services.</p>
231 pub fn set_service_role(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
232 self.service_role = input;
233 self
234 }
235 /// <p>The IAM role that the Amazon EMR Studio assumes. The service role provides a way for Amazon EMR Studio to interoperate with other Amazon Web Services services.</p>
236 pub fn get_service_role(&self) -> &::std::option::Option<::std::string::String> {
237 &self.service_role
238 }
239 /// <p>The IAM user role that users and groups assume when logged in to an Amazon EMR Studio. Only specify a <code>UserRole</code> when you use IAM Identity Center authentication. The permissions attached to the <code>UserRole</code> can be scoped down for each user or group using session policies.</p>
240 pub fn user_role(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
241 self.user_role = ::std::option::Option::Some(input.into());
242 self
243 }
244 /// <p>The IAM user role that users and groups assume when logged in to an Amazon EMR Studio. Only specify a <code>UserRole</code> when you use IAM Identity Center authentication. The permissions attached to the <code>UserRole</code> can be scoped down for each user or group using session policies.</p>
245 pub fn set_user_role(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
246 self.user_role = input;
247 self
248 }
249 /// <p>The IAM user role that users and groups assume when logged in to an Amazon EMR Studio. Only specify a <code>UserRole</code> when you use IAM Identity Center authentication. The permissions attached to the <code>UserRole</code> can be scoped down for each user or group using session policies.</p>
250 pub fn get_user_role(&self) -> &::std::option::Option<::std::string::String> {
251 &self.user_role
252 }
253 /// <p>The ID of the Amazon EMR Studio Workspace security group. The Workspace security group allows outbound network traffic to resources in the Engine security group, and it must be in the same VPC specified by <code>VpcId</code>.</p>
254 /// This field is required.
255 pub fn workspace_security_group_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
256 self.workspace_security_group_id = ::std::option::Option::Some(input.into());
257 self
258 }
259 /// <p>The ID of the Amazon EMR Studio Workspace security group. The Workspace security group allows outbound network traffic to resources in the Engine security group, and it must be in the same VPC specified by <code>VpcId</code>.</p>
260 pub fn set_workspace_security_group_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
261 self.workspace_security_group_id = input;
262 self
263 }
264 /// <p>The ID of the Amazon EMR Studio Workspace security group. The Workspace security group allows outbound network traffic to resources in the Engine security group, and it must be in the same VPC specified by <code>VpcId</code>.</p>
265 pub fn get_workspace_security_group_id(&self) -> &::std::option::Option<::std::string::String> {
266 &self.workspace_security_group_id
267 }
268 /// <p>The ID of the Amazon EMR Studio Engine security group. The Engine security group allows inbound network traffic from the Workspace security group, and it must be in the same VPC specified by <code>VpcId</code>.</p>
269 /// This field is required.
270 pub fn engine_security_group_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
271 self.engine_security_group_id = ::std::option::Option::Some(input.into());
272 self
273 }
274 /// <p>The ID of the Amazon EMR Studio Engine security group. The Engine security group allows inbound network traffic from the Workspace security group, and it must be in the same VPC specified by <code>VpcId</code>.</p>
275 pub fn set_engine_security_group_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
276 self.engine_security_group_id = input;
277 self
278 }
279 /// <p>The ID of the Amazon EMR Studio Engine security group. The Engine security group allows inbound network traffic from the Workspace security group, and it must be in the same VPC specified by <code>VpcId</code>.</p>
280 pub fn get_engine_security_group_id(&self) -> &::std::option::Option<::std::string::String> {
281 &self.engine_security_group_id
282 }
283 /// <p>The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook files.</p>
284 /// This field is required.
285 pub fn default_s3_location(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
286 self.default_s3_location = ::std::option::Option::Some(input.into());
287 self
288 }
289 /// <p>The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook files.</p>
290 pub fn set_default_s3_location(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
291 self.default_s3_location = input;
292 self
293 }
294 /// <p>The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook files.</p>
295 pub fn get_default_s3_location(&self) -> &::std::option::Option<::std::string::String> {
296 &self.default_s3_location
297 }
298 /// <p>The authentication endpoint of your identity provider (IdP). Specify this value when you use IAM authentication and want to let federated users log in to a Studio with the Studio URL and credentials from your IdP. Amazon EMR Studio redirects users to this endpoint to enter credentials.</p>
299 pub fn idp_auth_url(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
300 self.idp_auth_url = ::std::option::Option::Some(input.into());
301 self
302 }
303 /// <p>The authentication endpoint of your identity provider (IdP). Specify this value when you use IAM authentication and want to let federated users log in to a Studio with the Studio URL and credentials from your IdP. Amazon EMR Studio redirects users to this endpoint to enter credentials.</p>
304 pub fn set_idp_auth_url(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
305 self.idp_auth_url = input;
306 self
307 }
308 /// <p>The authentication endpoint of your identity provider (IdP). Specify this value when you use IAM authentication and want to let federated users log in to a Studio with the Studio URL and credentials from your IdP. Amazon EMR Studio redirects users to this endpoint to enter credentials.</p>
309 pub fn get_idp_auth_url(&self) -> &::std::option::Option<::std::string::String> {
310 &self.idp_auth_url
311 }
312 /// <p>The name that your identity provider (IdP) uses for its <code>RelayState</code> parameter. For example, <code>RelayState</code> or <code>TargetSource</code>. Specify this value when you use IAM authentication and want to let federated users log in to a Studio using the Studio URL. The <code>RelayState</code> parameter differs by IdP.</p>
313 pub fn idp_relay_state_parameter_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
314 self.idp_relay_state_parameter_name = ::std::option::Option::Some(input.into());
315 self
316 }
317 /// <p>The name that your identity provider (IdP) uses for its <code>RelayState</code> parameter. For example, <code>RelayState</code> or <code>TargetSource</code>. Specify this value when you use IAM authentication and want to let federated users log in to a Studio using the Studio URL. The <code>RelayState</code> parameter differs by IdP.</p>
318 pub fn set_idp_relay_state_parameter_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
319 self.idp_relay_state_parameter_name = input;
320 self
321 }
322 /// <p>The name that your identity provider (IdP) uses for its <code>RelayState</code> parameter. For example, <code>RelayState</code> or <code>TargetSource</code>. Specify this value when you use IAM authentication and want to let federated users log in to a Studio using the Studio URL. The <code>RelayState</code> parameter differs by IdP.</p>
323 pub fn get_idp_relay_state_parameter_name(&self) -> &::std::option::Option<::std::string::String> {
324 &self.idp_relay_state_parameter_name
325 }
326 /// Appends an item to `tags`.
327 ///
328 /// To override the contents of this collection use [`set_tags`](Self::set_tags).
329 ///
330 /// <p>A list of tags to associate with the Amazon EMR Studio. Tags are user-defined key-value pairs that consist of a required key string with a maximum of 128 characters, and an optional value string with a maximum of 256 characters.</p>
331 pub fn tags(mut self, input: crate::types::Tag) -> Self {
332 let mut v = self.tags.unwrap_or_default();
333 v.push(input);
334 self.tags = ::std::option::Option::Some(v);
335 self
336 }
337 /// <p>A list of tags to associate with the Amazon EMR Studio. Tags are user-defined key-value pairs that consist of a required key string with a maximum of 128 characters, and an optional value string with a maximum of 256 characters.</p>
338 pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
339 self.tags = input;
340 self
341 }
342 /// <p>A list of tags to associate with the Amazon EMR Studio. Tags are user-defined key-value pairs that consist of a required key string with a maximum of 128 characters, and an optional value string with a maximum of 256 characters.</p>
343 pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
344 &self.tags
345 }
346 /// <p>A Boolean indicating whether to enable Trusted identity propagation for the Studio. The default value is <code>false</code>.</p>
347 pub fn trusted_identity_propagation_enabled(mut self, input: bool) -> Self {
348 self.trusted_identity_propagation_enabled = ::std::option::Option::Some(input);
349 self
350 }
351 /// <p>A Boolean indicating whether to enable Trusted identity propagation for the Studio. The default value is <code>false</code>.</p>
352 pub fn set_trusted_identity_propagation_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
353 self.trusted_identity_propagation_enabled = input;
354 self
355 }
356 /// <p>A Boolean indicating whether to enable Trusted identity propagation for the Studio. The default value is <code>false</code>.</p>
357 pub fn get_trusted_identity_propagation_enabled(&self) -> &::std::option::Option<bool> {
358 &self.trusted_identity_propagation_enabled
359 }
360 /// <p>Specifies whether IAM Identity Center user assignment is <code>REQUIRED</code> or <code>OPTIONAL</code>. If the value is set to <code>REQUIRED</code>, users must be explicitly assigned to the Studio application to access the Studio.</p>
361 pub fn idc_user_assignment(mut self, input: crate::types::IdcUserAssignment) -> Self {
362 self.idc_user_assignment = ::std::option::Option::Some(input);
363 self
364 }
365 /// <p>Specifies whether IAM Identity Center user assignment is <code>REQUIRED</code> or <code>OPTIONAL</code>. If the value is set to <code>REQUIRED</code>, users must be explicitly assigned to the Studio application to access the Studio.</p>
366 pub fn set_idc_user_assignment(mut self, input: ::std::option::Option<crate::types::IdcUserAssignment>) -> Self {
367 self.idc_user_assignment = input;
368 self
369 }
370 /// <p>Specifies whether IAM Identity Center user assignment is <code>REQUIRED</code> or <code>OPTIONAL</code>. If the value is set to <code>REQUIRED</code>, users must be explicitly assigned to the Studio application to access the Studio.</p>
371 pub fn get_idc_user_assignment(&self) -> &::std::option::Option<crate::types::IdcUserAssignment> {
372 &self.idc_user_assignment
373 }
374 /// <p>The ARN of the IAM Identity Center instance to create the Studio application.</p>
375 pub fn idc_instance_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
376 self.idc_instance_arn = ::std::option::Option::Some(input.into());
377 self
378 }
379 /// <p>The ARN of the IAM Identity Center instance to create the Studio application.</p>
380 pub fn set_idc_instance_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
381 self.idc_instance_arn = input;
382 self
383 }
384 /// <p>The ARN of the IAM Identity Center instance to create the Studio application.</p>
385 pub fn get_idc_instance_arn(&self) -> &::std::option::Option<::std::string::String> {
386 &self.idc_instance_arn
387 }
388 /// <p>The KMS key identifier (ARN) used to encrypt Amazon EMR Studio workspace and notebook files when backed up to Amazon S3.</p>
389 pub fn encryption_key_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
390 self.encryption_key_arn = ::std::option::Option::Some(input.into());
391 self
392 }
393 /// <p>The KMS key identifier (ARN) used to encrypt Amazon EMR Studio workspace and notebook files when backed up to Amazon S3.</p>
394 pub fn set_encryption_key_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
395 self.encryption_key_arn = input;
396 self
397 }
398 /// <p>The KMS key identifier (ARN) used to encrypt Amazon EMR Studio workspace and notebook files when backed up to Amazon S3.</p>
399 pub fn get_encryption_key_arn(&self) -> &::std::option::Option<::std::string::String> {
400 &self.encryption_key_arn
401 }
402 /// Consumes the builder and constructs a [`CreateStudioInput`](crate::operation::create_studio::CreateStudioInput).
403 pub fn build(
404 self,
405 ) -> ::std::result::Result<crate::operation::create_studio::CreateStudioInput, ::aws_smithy_types::error::operation::BuildError> {
406 ::std::result::Result::Ok(crate::operation::create_studio::CreateStudioInput {
407 name: self.name,
408 description: self.description,
409 auth_mode: self.auth_mode,
410 vpc_id: self.vpc_id,
411 subnet_ids: self.subnet_ids,
412 service_role: self.service_role,
413 user_role: self.user_role,
414 workspace_security_group_id: self.workspace_security_group_id,
415 engine_security_group_id: self.engine_security_group_id,
416 default_s3_location: self.default_s3_location,
417 idp_auth_url: self.idp_auth_url,
418 idp_relay_state_parameter_name: self.idp_relay_state_parameter_name,
419 tags: self.tags,
420 trusted_identity_propagation_enabled: self.trusted_identity_propagation_enabled,
421 idc_user_assignment: self.idc_user_assignment,
422 idc_instance_arn: self.idc_instance_arn,
423 encryption_key_arn: self.encryption_key_arn,
424 })
425 }
426}