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