/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include namespace Aws { namespace EMR { namespace Model { /** */ class CreateStudioRequest : public EMRRequest { public: AWS_EMR_API CreateStudioRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateStudio"; } AWS_EMR_API Aws::String SerializePayload() const override; AWS_EMR_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

A descriptive name for the Amazon EMR Studio.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

A descriptive name for the Amazon EMR Studio.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

A descriptive name for the Amazon EMR Studio.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

A descriptive name for the Amazon EMR Studio.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

A descriptive name for the Amazon EMR Studio.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

A descriptive name for the Amazon EMR Studio.

*/ inline CreateStudioRequest& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

A descriptive name for the Amazon EMR Studio.

*/ inline CreateStudioRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

A descriptive name for the Amazon EMR Studio.

*/ inline CreateStudioRequest& WithName(const char* value) { SetName(value); return *this;} /** *

A detailed description of the Amazon EMR Studio.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

A detailed description of the Amazon EMR Studio.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

A detailed description of the Amazon EMR Studio.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

A detailed description of the Amazon EMR Studio.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

A detailed description of the Amazon EMR Studio.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

A detailed description of the Amazon EMR Studio.

*/ inline CreateStudioRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A detailed description of the Amazon EMR Studio.

*/ inline CreateStudioRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

A detailed description of the Amazon EMR Studio.

*/ inline CreateStudioRequest& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

Specifies whether the Studio authenticates users using IAM or IAM Identity * Center.

*/ inline const AuthMode& GetAuthMode() const{ return m_authMode; } /** *

Specifies whether the Studio authenticates users using IAM or IAM Identity * Center.

*/ inline bool AuthModeHasBeenSet() const { return m_authModeHasBeenSet; } /** *

Specifies whether the Studio authenticates users using IAM or IAM Identity * Center.

*/ inline void SetAuthMode(const AuthMode& value) { m_authModeHasBeenSet = true; m_authMode = value; } /** *

Specifies whether the Studio authenticates users using IAM or IAM Identity * Center.

*/ inline void SetAuthMode(AuthMode&& value) { m_authModeHasBeenSet = true; m_authMode = std::move(value); } /** *

Specifies whether the Studio authenticates users using IAM or IAM Identity * Center.

*/ inline CreateStudioRequest& WithAuthMode(const AuthMode& value) { SetAuthMode(value); return *this;} /** *

Specifies whether the Studio authenticates users using IAM or IAM Identity * Center.

*/ inline CreateStudioRequest& WithAuthMode(AuthMode&& value) { SetAuthMode(std::move(value)); return *this;} /** *

The ID of the Amazon Virtual Private Cloud (Amazon VPC) to associate with the * Studio.

*/ inline const Aws::String& GetVpcId() const{ return m_vpcId; } /** *

The ID of the Amazon Virtual Private Cloud (Amazon VPC) to associate with the * Studio.

*/ inline bool VpcIdHasBeenSet() const { return m_vpcIdHasBeenSet; } /** *

The ID of the Amazon Virtual Private Cloud (Amazon VPC) to associate with the * Studio.

*/ inline void SetVpcId(const Aws::String& value) { m_vpcIdHasBeenSet = true; m_vpcId = value; } /** *

The ID of the Amazon Virtual Private Cloud (Amazon VPC) to associate with the * Studio.

*/ inline void SetVpcId(Aws::String&& value) { m_vpcIdHasBeenSet = true; m_vpcId = std::move(value); } /** *

The ID of the Amazon Virtual Private Cloud (Amazon VPC) to associate with the * Studio.

*/ inline void SetVpcId(const char* value) { m_vpcIdHasBeenSet = true; m_vpcId.assign(value); } /** *

The ID of the Amazon Virtual Private Cloud (Amazon VPC) to associate with the * Studio.

*/ inline CreateStudioRequest& WithVpcId(const Aws::String& value) { SetVpcId(value); return *this;} /** *

The ID of the Amazon Virtual Private Cloud (Amazon VPC) to associate with the * Studio.

*/ inline CreateStudioRequest& WithVpcId(Aws::String&& value) { SetVpcId(std::move(value)); return *this;} /** *

The ID of the Amazon Virtual Private Cloud (Amazon VPC) to associate with the * Studio.

*/ inline CreateStudioRequest& WithVpcId(const char* value) { SetVpcId(value); return *this;} /** *

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 * VpcId. Studio users can create a Workspace in any of the specified * subnets.

*/ inline const Aws::Vector& GetSubnetIds() const{ return m_subnetIds; } /** *

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 * VpcId. Studio users can create a Workspace in any of the specified * subnets.

*/ inline bool SubnetIdsHasBeenSet() const { return m_subnetIdsHasBeenSet; } /** *

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 * VpcId. Studio users can create a Workspace in any of the specified * subnets.

*/ inline void SetSubnetIds(const Aws::Vector& value) { m_subnetIdsHasBeenSet = true; m_subnetIds = value; } /** *

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 * VpcId. Studio users can create a Workspace in any of the specified * subnets.

*/ inline void SetSubnetIds(Aws::Vector&& value) { m_subnetIdsHasBeenSet = true; m_subnetIds = std::move(value); } /** *

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 * VpcId. Studio users can create a Workspace in any of the specified * subnets.

*/ inline CreateStudioRequest& WithSubnetIds(const Aws::Vector& value) { SetSubnetIds(value); return *this;} /** *

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 * VpcId. Studio users can create a Workspace in any of the specified * subnets.

*/ inline CreateStudioRequest& WithSubnetIds(Aws::Vector&& value) { SetSubnetIds(std::move(value)); return *this;} /** *

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 * VpcId. Studio users can create a Workspace in any of the specified * subnets.

*/ inline CreateStudioRequest& AddSubnetIds(const Aws::String& value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(value); return *this; } /** *

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 * VpcId. Studio users can create a Workspace in any of the specified * subnets.

*/ inline CreateStudioRequest& AddSubnetIds(Aws::String&& value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(std::move(value)); return *this; } /** *

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 * VpcId. Studio users can create a Workspace in any of the specified * subnets.

*/ inline CreateStudioRequest& AddSubnetIds(const char* value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(value); return *this; } /** *

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.

*/ inline const Aws::String& GetServiceRole() const{ return m_serviceRole; } /** *

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.

*/ inline bool ServiceRoleHasBeenSet() const { return m_serviceRoleHasBeenSet; } /** *

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.

*/ inline void SetServiceRole(const Aws::String& value) { m_serviceRoleHasBeenSet = true; m_serviceRole = value; } /** *

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.

*/ inline void SetServiceRole(Aws::String&& value) { m_serviceRoleHasBeenSet = true; m_serviceRole = std::move(value); } /** *

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.

*/ inline void SetServiceRole(const char* value) { m_serviceRoleHasBeenSet = true; m_serviceRole.assign(value); } /** *

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.

*/ inline CreateStudioRequest& WithServiceRole(const Aws::String& value) { SetServiceRole(value); return *this;} /** *

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.

*/ inline CreateStudioRequest& WithServiceRole(Aws::String&& value) { SetServiceRole(std::move(value)); return *this;} /** *

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.

*/ inline CreateStudioRequest& WithServiceRole(const char* value) { SetServiceRole(value); return *this;} /** *

The IAM user role that users and groups assume when logged in to an Amazon * EMR Studio. Only specify a UserRole when you use IAM Identity * Center authentication. The permissions attached to the UserRole can * be scoped down for each user or group using session policies.

*/ inline const Aws::String& GetUserRole() const{ return m_userRole; } /** *

The IAM user role that users and groups assume when logged in to an Amazon * EMR Studio. Only specify a UserRole when you use IAM Identity * Center authentication. The permissions attached to the UserRole can * be scoped down for each user or group using session policies.

*/ inline bool UserRoleHasBeenSet() const { return m_userRoleHasBeenSet; } /** *

The IAM user role that users and groups assume when logged in to an Amazon * EMR Studio. Only specify a UserRole when you use IAM Identity * Center authentication. The permissions attached to the UserRole can * be scoped down for each user or group using session policies.

*/ inline void SetUserRole(const Aws::String& value) { m_userRoleHasBeenSet = true; m_userRole = value; } /** *

The IAM user role that users and groups assume when logged in to an Amazon * EMR Studio. Only specify a UserRole when you use IAM Identity * Center authentication. The permissions attached to the UserRole can * be scoped down for each user or group using session policies.

*/ inline void SetUserRole(Aws::String&& value) { m_userRoleHasBeenSet = true; m_userRole = std::move(value); } /** *

The IAM user role that users and groups assume when logged in to an Amazon * EMR Studio. Only specify a UserRole when you use IAM Identity * Center authentication. The permissions attached to the UserRole can * be scoped down for each user or group using session policies.

*/ inline void SetUserRole(const char* value) { m_userRoleHasBeenSet = true; m_userRole.assign(value); } /** *

The IAM user role that users and groups assume when logged in to an Amazon * EMR Studio. Only specify a UserRole when you use IAM Identity * Center authentication. The permissions attached to the UserRole can * be scoped down for each user or group using session policies.

*/ inline CreateStudioRequest& WithUserRole(const Aws::String& value) { SetUserRole(value); return *this;} /** *

The IAM user role that users and groups assume when logged in to an Amazon * EMR Studio. Only specify a UserRole when you use IAM Identity * Center authentication. The permissions attached to the UserRole can * be scoped down for each user or group using session policies.

*/ inline CreateStudioRequest& WithUserRole(Aws::String&& value) { SetUserRole(std::move(value)); return *this;} /** *

The IAM user role that users and groups assume when logged in to an Amazon * EMR Studio. Only specify a UserRole when you use IAM Identity * Center authentication. The permissions attached to the UserRole can * be scoped down for each user or group using session policies.

*/ inline CreateStudioRequest& WithUserRole(const char* value) { SetUserRole(value); return *this;} /** *

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 * VpcId.

*/ inline const Aws::String& GetWorkspaceSecurityGroupId() const{ return m_workspaceSecurityGroupId; } /** *

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 * VpcId.

*/ inline bool WorkspaceSecurityGroupIdHasBeenSet() const { return m_workspaceSecurityGroupIdHasBeenSet; } /** *

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 * VpcId.

*/ inline void SetWorkspaceSecurityGroupId(const Aws::String& value) { m_workspaceSecurityGroupIdHasBeenSet = true; m_workspaceSecurityGroupId = value; } /** *

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 * VpcId.

*/ inline void SetWorkspaceSecurityGroupId(Aws::String&& value) { m_workspaceSecurityGroupIdHasBeenSet = true; m_workspaceSecurityGroupId = std::move(value); } /** *

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 * VpcId.

*/ inline void SetWorkspaceSecurityGroupId(const char* value) { m_workspaceSecurityGroupIdHasBeenSet = true; m_workspaceSecurityGroupId.assign(value); } /** *

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 * VpcId.

*/ inline CreateStudioRequest& WithWorkspaceSecurityGroupId(const Aws::String& value) { SetWorkspaceSecurityGroupId(value); return *this;} /** *

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 * VpcId.

*/ inline CreateStudioRequest& WithWorkspaceSecurityGroupId(Aws::String&& value) { SetWorkspaceSecurityGroupId(std::move(value)); return *this;} /** *

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 * VpcId.

*/ inline CreateStudioRequest& WithWorkspaceSecurityGroupId(const char* value) { SetWorkspaceSecurityGroupId(value); return *this;} /** *

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 VpcId.

*/ inline const Aws::String& GetEngineSecurityGroupId() const{ return m_engineSecurityGroupId; } /** *

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 VpcId.

*/ inline bool EngineSecurityGroupIdHasBeenSet() const { return m_engineSecurityGroupIdHasBeenSet; } /** *

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 VpcId.

*/ inline void SetEngineSecurityGroupId(const Aws::String& value) { m_engineSecurityGroupIdHasBeenSet = true; m_engineSecurityGroupId = value; } /** *

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 VpcId.

*/ inline void SetEngineSecurityGroupId(Aws::String&& value) { m_engineSecurityGroupIdHasBeenSet = true; m_engineSecurityGroupId = std::move(value); } /** *

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 VpcId.

*/ inline void SetEngineSecurityGroupId(const char* value) { m_engineSecurityGroupIdHasBeenSet = true; m_engineSecurityGroupId.assign(value); } /** *

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 VpcId.

*/ inline CreateStudioRequest& WithEngineSecurityGroupId(const Aws::String& value) { SetEngineSecurityGroupId(value); return *this;} /** *

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 VpcId.

*/ inline CreateStudioRequest& WithEngineSecurityGroupId(Aws::String&& value) { SetEngineSecurityGroupId(std::move(value)); return *this;} /** *

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 VpcId.

*/ inline CreateStudioRequest& WithEngineSecurityGroupId(const char* value) { SetEngineSecurityGroupId(value); return *this;} /** *

The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook * files.

*/ inline const Aws::String& GetDefaultS3Location() const{ return m_defaultS3Location; } /** *

The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook * files.

*/ inline bool DefaultS3LocationHasBeenSet() const { return m_defaultS3LocationHasBeenSet; } /** *

The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook * files.

*/ inline void SetDefaultS3Location(const Aws::String& value) { m_defaultS3LocationHasBeenSet = true; m_defaultS3Location = value; } /** *

The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook * files.

*/ inline void SetDefaultS3Location(Aws::String&& value) { m_defaultS3LocationHasBeenSet = true; m_defaultS3Location = std::move(value); } /** *

The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook * files.

*/ inline void SetDefaultS3Location(const char* value) { m_defaultS3LocationHasBeenSet = true; m_defaultS3Location.assign(value); } /** *

The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook * files.

*/ inline CreateStudioRequest& WithDefaultS3Location(const Aws::String& value) { SetDefaultS3Location(value); return *this;} /** *

The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook * files.

*/ inline CreateStudioRequest& WithDefaultS3Location(Aws::String&& value) { SetDefaultS3Location(std::move(value)); return *this;} /** *

The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook * files.

*/ inline CreateStudioRequest& WithDefaultS3Location(const char* value) { SetDefaultS3Location(value); return *this;} /** *

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.

*/ inline const Aws::String& GetIdpAuthUrl() const{ return m_idpAuthUrl; } /** *

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.

*/ inline bool IdpAuthUrlHasBeenSet() const { return m_idpAuthUrlHasBeenSet; } /** *

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.

*/ inline void SetIdpAuthUrl(const Aws::String& value) { m_idpAuthUrlHasBeenSet = true; m_idpAuthUrl = value; } /** *

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.

*/ inline void SetIdpAuthUrl(Aws::String&& value) { m_idpAuthUrlHasBeenSet = true; m_idpAuthUrl = std::move(value); } /** *

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.

*/ inline void SetIdpAuthUrl(const char* value) { m_idpAuthUrlHasBeenSet = true; m_idpAuthUrl.assign(value); } /** *

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.

*/ inline CreateStudioRequest& WithIdpAuthUrl(const Aws::String& value) { SetIdpAuthUrl(value); return *this;} /** *

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.

*/ inline CreateStudioRequest& WithIdpAuthUrl(Aws::String&& value) { SetIdpAuthUrl(std::move(value)); return *this;} /** *

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.

*/ inline CreateStudioRequest& WithIdpAuthUrl(const char* value) { SetIdpAuthUrl(value); return *this;} /** *

The name that your identity provider (IdP) uses for its * RelayState parameter. For example, RelayState or * TargetSource. Specify this value when you use IAM authentication * and want to let federated users log in to a Studio using the Studio URL. The * RelayState parameter differs by IdP.

*/ inline const Aws::String& GetIdpRelayStateParameterName() const{ return m_idpRelayStateParameterName; } /** *

The name that your identity provider (IdP) uses for its * RelayState parameter. For example, RelayState or * TargetSource. Specify this value when you use IAM authentication * and want to let federated users log in to a Studio using the Studio URL. The * RelayState parameter differs by IdP.

*/ inline bool IdpRelayStateParameterNameHasBeenSet() const { return m_idpRelayStateParameterNameHasBeenSet; } /** *

The name that your identity provider (IdP) uses for its * RelayState parameter. For example, RelayState or * TargetSource. Specify this value when you use IAM authentication * and want to let federated users log in to a Studio using the Studio URL. The * RelayState parameter differs by IdP.

*/ inline void SetIdpRelayStateParameterName(const Aws::String& value) { m_idpRelayStateParameterNameHasBeenSet = true; m_idpRelayStateParameterName = value; } /** *

The name that your identity provider (IdP) uses for its * RelayState parameter. For example, RelayState or * TargetSource. Specify this value when you use IAM authentication * and want to let federated users log in to a Studio using the Studio URL. The * RelayState parameter differs by IdP.

*/ inline void SetIdpRelayStateParameterName(Aws::String&& value) { m_idpRelayStateParameterNameHasBeenSet = true; m_idpRelayStateParameterName = std::move(value); } /** *

The name that your identity provider (IdP) uses for its * RelayState parameter. For example, RelayState or * TargetSource. Specify this value when you use IAM authentication * and want to let federated users log in to a Studio using the Studio URL. The * RelayState parameter differs by IdP.

*/ inline void SetIdpRelayStateParameterName(const char* value) { m_idpRelayStateParameterNameHasBeenSet = true; m_idpRelayStateParameterName.assign(value); } /** *

The name that your identity provider (IdP) uses for its * RelayState parameter. For example, RelayState or * TargetSource. Specify this value when you use IAM authentication * and want to let federated users log in to a Studio using the Studio URL. The * RelayState parameter differs by IdP.

*/ inline CreateStudioRequest& WithIdpRelayStateParameterName(const Aws::String& value) { SetIdpRelayStateParameterName(value); return *this;} /** *

The name that your identity provider (IdP) uses for its * RelayState parameter. For example, RelayState or * TargetSource. Specify this value when you use IAM authentication * and want to let federated users log in to a Studio using the Studio URL. The * RelayState parameter differs by IdP.

*/ inline CreateStudioRequest& WithIdpRelayStateParameterName(Aws::String&& value) { SetIdpRelayStateParameterName(std::move(value)); return *this;} /** *

The name that your identity provider (IdP) uses for its * RelayState parameter. For example, RelayState or * TargetSource. Specify this value when you use IAM authentication * and want to let federated users log in to a Studio using the Studio URL. The * RelayState parameter differs by IdP.

*/ inline CreateStudioRequest& WithIdpRelayStateParameterName(const char* value) { SetIdpRelayStateParameterName(value); return *this;} /** *

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.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

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.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

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.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

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.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

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.

*/ inline CreateStudioRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

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.

*/ inline CreateStudioRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

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.

*/ inline CreateStudioRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

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.

*/ inline CreateStudioRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } private: Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; AuthMode m_authMode; bool m_authModeHasBeenSet = false; Aws::String m_vpcId; bool m_vpcIdHasBeenSet = false; Aws::Vector m_subnetIds; bool m_subnetIdsHasBeenSet = false; Aws::String m_serviceRole; bool m_serviceRoleHasBeenSet = false; Aws::String m_userRole; bool m_userRoleHasBeenSet = false; Aws::String m_workspaceSecurityGroupId; bool m_workspaceSecurityGroupIdHasBeenSet = false; Aws::String m_engineSecurityGroupId; bool m_engineSecurityGroupIdHasBeenSet = false; Aws::String m_defaultS3Location; bool m_defaultS3LocationHasBeenSet = false; Aws::String m_idpAuthUrl; bool m_idpAuthUrlHasBeenSet = false; Aws::String m_idpRelayStateParameterName; bool m_idpRelayStateParameterNameHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace EMR } // namespace Aws