Class: AWSCDK::EMR::CfnStudioProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
emr/cfn_studio_props.rb

Overview

Properties for defining a CfnStudio.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(auth_mode:, default_s3_location:, engine_security_group_id:, name:, service_role:, subnet_ids:, vpc_id:, workspace_security_group_id:, description: nil, encryption_key_arn: nil, idc_instance_arn: nil, idc_user_assignment: nil, idp_auth_url: nil, idp_relay_state_parameter_name: nil, tags: nil, trusted_identity_propagation_enabled: nil, user_role: nil) ⇒ CfnStudioProps

Returns a new instance of CfnStudioProps.

Parameters:

  • auth_mode (String)

    Specifies whether the Studio authenticates users using SSO or IAM.

  • default_s3_location (String, AWSCDK::Interfaces::AWSS3::IBucketRef)

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

  • engine_security_group_id (String, AWSCDK::Interfaces::AWSEC2::ISecurityGroupRef)

    The ID of the Amazon EMR Studio Engine security group.

  • name (String)

    A descriptive name for the Amazon EMR Studio.

  • service_role (String, AWSCDK::Interfaces::AWSIAM::IRoleRef)

    The Amazon Resource Name (ARN) of the IAM role that will be assumed by the Amazon EMR Studio.

  • subnet_ids (Array<String, AWSCDK::Interfaces::AWSEC2::ISubnetRef>)

    A list of subnet IDs to associate with the Amazon EMR Studio.

  • vpc_id (String, AWSCDK::Interfaces::AWSEC2::IVPCRef)

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

  • workspace_security_group_id (String, AWSCDK::Interfaces::AWSEC2::ISecurityGroupRef)

    The ID of the Workspace security group associated with the Amazon EMR Studio.

  • description (String, nil) (defaults to: nil)

    A detailed description of the Amazon EMR Studio.

  • encryption_key_arn (String, AWSCDK::Interfaces::AWSKMS::IKeyRef, nil) (defaults to: nil)

    The AWS key identifier (ARN) used to encrypt Amazon EMR Studio workspace and notebook files when backed up to Amazon S3.

  • idc_instance_arn (String, nil) (defaults to: nil)

    The ARN of the IAM Identity Center instance the Studio application belongs to.

  • idc_user_assignment (String, nil) (defaults to: nil)

    Indicates whether the Studio has REQUIRED or OPTIONAL IAM Identity Center user assignment.

  • idp_auth_url (String, nil) (defaults to: nil)

    Your identity provider's authentication endpoint.

  • idp_relay_state_parameter_name (String, nil) (defaults to: nil)

    The name of your identity provider's RelayState parameter.

  • tags (Array<AWSCDK::CfnTag>, nil) (defaults to: nil)

    An array of key-value pairs to apply to this resource.

  • trusted_identity_propagation_enabled (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    Indicates whether the Studio has Trusted identity propagation enabled.

  • user_role (String, AWSCDK::Interfaces::AWSIAM::IRoleRef, nil) (defaults to: nil)

    The Amazon Resource Name (ARN) of the IAM user role that will be assumed by users and groups logged in to a Studio.



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
# File 'emr/cfn_studio_props.rb', line 26

def initialize(auth_mode:, default_s3_location:, engine_security_group_id:, name:, service_role:, subnet_ids:, vpc_id:, workspace_security_group_id:, description: nil, encryption_key_arn: nil, idc_instance_arn: nil, idc_user_assignment: nil, idp_auth_url: nil, idp_relay_state_parameter_name: nil, tags: nil, trusted_identity_propagation_enabled: nil, user_role: nil)
  @auth_mode = auth_mode
  Jsii::Type.check_type(@auth_mode, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "authMode")
  @default_s3_location = default_s3_location
  Jsii::Type.check_type(@default_s3_location, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoic3RyaW5nIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5pbnRlcmZhY2VzLmF3c19zMy5JQnVja2V0UmVmIn1dfX0=")), "defaultS3Location")
  @engine_security_group_id = engine_security_group_id
  Jsii::Type.check_type(@engine_security_group_id, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoic3RyaW5nIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5pbnRlcmZhY2VzLmF3c19lYzIuSVNlY3VyaXR5R3JvdXBSZWYifV19fQ==")), "engineSecurityGroupId")
  @name = name
  Jsii::Type.check_type(@name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "name")
  @service_role = service_role
  Jsii::Type.check_type(@service_role, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoic3RyaW5nIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5pbnRlcmZhY2VzLmF3c19pYW0uSVJvbGVSZWYifV19fQ==")), "serviceRole")
  @subnet_ids = subnet_ids
  Jsii::Type.check_type(@subnet_ids, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InVuaW9uIjp7InR5cGVzIjpbeyJwcmltaXRpdmUiOiJzdHJpbmcifSx7ImZxbiI6ImF3cy1jZGstbGliLmludGVyZmFjZXMuYXdzX2VjMi5JU3VibmV0UmVmIn1dfX0sImtpbmQiOiJhcnJheSJ9fQ==")), "subnetIds")
  @vpc_id = vpc_id
  Jsii::Type.check_type(@vpc_id, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoic3RyaW5nIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5pbnRlcmZhY2VzLmF3c19lYzIuSVZQQ1JlZiJ9XX19")), "vpcId")
  @workspace_security_group_id = workspace_security_group_id
  Jsii::Type.check_type(@workspace_security_group_id, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoic3RyaW5nIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5pbnRlcmZhY2VzLmF3c19lYzIuSVNlY3VyaXR5R3JvdXBSZWYifV19fQ==")), "workspaceSecurityGroupId")
  @description = description
  Jsii::Type.check_type(@description, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "description") unless @description.nil?
  @encryption_key_arn = encryption_key_arn
  Jsii::Type.check_type(@encryption_key_arn, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoic3RyaW5nIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5pbnRlcmZhY2VzLmF3c19rbXMuSUtleVJlZiJ9XX19")), "encryptionKeyArn") unless @encryption_key_arn.nil?
  @idc_instance_arn = idc_instance_arn
  Jsii::Type.check_type(@idc_instance_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "idcInstanceArn") unless @idc_instance_arn.nil?
  @idc_user_assignment = idc_user_assignment
  Jsii::Type.check_type(@idc_user_assignment, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "idcUserAssignment") unless @idc_user_assignment.nil?
  @idp_auth_url = idp_auth_url
  Jsii::Type.check_type(@idp_auth_url, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "idpAuthUrl") unless @idp_auth_url.nil?
  @idp_relay_state_parameter_name = idp_relay_state_parameter_name
  Jsii::Type.check_type(@idp_relay_state_parameter_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "idpRelayStateParameterName") unless @idp_relay_state_parameter_name.nil?
  @tags = tags.is_a?(Array) ? tags.map { |jsii_v0| jsii_v0.is_a?(Hash) ? ::AWSCDK::CfnTag.new(**jsii_v0.transform_keys(&:to_sym)) : jsii_v0 } : tags
  Jsii::Type.check_type(@tags, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLkNmblRhZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "tags") unless @tags.nil?
  @trusted_identity_propagation_enabled = trusted_identity_propagation_enabled
  Jsii::Type.check_type(@trusted_identity_propagation_enabled, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "trustedIdentityPropagationEnabled") unless @trusted_identity_propagation_enabled.nil?
  @user_role = user_role
  Jsii::Type.check_type(@user_role, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoic3RyaW5nIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5pbnRlcmZhY2VzLmF3c19pYW0uSVJvbGVSZWYifV19fQ==")), "userRole") unless @user_role.nil?
end

Instance Attribute Details

#auth_modeString (readonly)

Specifies whether the Studio authenticates users using SSO or IAM.



67
68
69
# File 'emr/cfn_studio_props.rb', line 67

def auth_mode
  @auth_mode
end

#default_s3_locationString, AWSCDK::Interfaces::AWSS3::IBucketRef (readonly)

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



72
73
74
# File 'emr/cfn_studio_props.rb', line 72

def default_s3_location
  @default_s3_location
end

#descriptionString? (readonly)

A detailed description of the Amazon EMR Studio.



115
116
117
# File 'emr/cfn_studio_props.rb', line 115

def description
  @description
end

#encryption_key_arnString, ... (readonly)

The AWS key identifier (ARN) used to encrypt Amazon EMR Studio workspace and notebook files when backed up to Amazon S3.



120
121
122
# File 'emr/cfn_studio_props.rb', line 120

def encryption_key_arn
  @encryption_key_arn
end

#engine_security_group_idString, AWSCDK::Interfaces::AWSEC2::ISecurityGroupRef (readonly)

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 .



79
80
81
# File 'emr/cfn_studio_props.rb', line 79

def engine_security_group_id
  @engine_security_group_id
end

#idc_instance_arnString? (readonly)

The ARN of the IAM Identity Center instance the Studio application belongs to.



125
126
127
# File 'emr/cfn_studio_props.rb', line 125

def idc_instance_arn
  @idc_instance_arn
end

#idc_user_assignmentString? (readonly)

Indicates whether the Studio has REQUIRED or OPTIONAL IAM Identity Center user assignment.

If the value is set to REQUIRED , users must be explicitly assigned to the Studio application to access the Studio.



132
133
134
# File 'emr/cfn_studio_props.rb', line 132

def idc_user_assignment
  @idc_user_assignment
end

#idp_auth_urlString? (readonly)

Your identity provider's authentication endpoint.

Amazon EMR Studio redirects federated users to this endpoint for authentication when logging in to a Studio with the Studio URL.



139
140
141
# File 'emr/cfn_studio_props.rb', line 139

def idp_auth_url
  @idp_auth_url
end

#idp_relay_state_parameter_nameString? (readonly)

The name of your identity provider's RelayState parameter.



144
145
146
# File 'emr/cfn_studio_props.rb', line 144

def idp_relay_state_parameter_name
  @idp_relay_state_parameter_name
end

#nameString (readonly)

A descriptive name for the Amazon EMR Studio.



84
85
86
# File 'emr/cfn_studio_props.rb', line 84

def name
  @name
end

#service_roleString, AWSCDK::Interfaces::AWSIAM::IRoleRef (readonly)

The Amazon Resource Name (ARN) of the IAM role that will be assumed by the Amazon EMR Studio.

The service role provides a way for Amazon EMR Studio to interoperate with other AWS services.



91
92
93
# File 'emr/cfn_studio_props.rb', line 91

def service_role
  @service_role
end

#subnet_idsArray<String, AWSCDK::Interfaces::AWSEC2::ISubnetRef> (readonly)

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.



98
99
100
# File 'emr/cfn_studio_props.rb', line 98

def subnet_ids
  @subnet_ids
end

#tagsArray<AWSCDK::CfnTag>? (readonly)

An array of key-value pairs to apply to this resource.

For more information, see Tag .



151
152
153
# File 'emr/cfn_studio_props.rb', line 151

def tags
  @tags
end

#trusted_identity_propagation_enabledBoolean, ... (readonly)

Indicates whether the Studio has Trusted identity propagation enabled.

The default value is false .



158
159
160
# File 'emr/cfn_studio_props.rb', line 158

def trusted_identity_propagation_enabled
  @trusted_identity_propagation_enabled
end

#user_roleString, ... (readonly)

The Amazon Resource Name (ARN) of the IAM user role that will be assumed by users and groups logged in to a Studio.

The permissions attached to this IAM role can be scoped down for each user or group using session policies. You only need to specify UserRole when you set AuthMode to SSO .



165
166
167
# File 'emr/cfn_studio_props.rb', line 165

def user_role
  @user_role
end

#vpc_idString, AWSCDK::Interfaces::AWSEC2::IVPCRef (readonly)

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



103
104
105
# File 'emr/cfn_studio_props.rb', line 103

def vpc_id
  @vpc_id
end

#workspace_security_group_idString, AWSCDK::Interfaces::AWSEC2::ISecurityGroupRef (readonly)

The ID of the Workspace security group associated with the Amazon EMR Studio.

The Workspace security group allows outbound network traffic to resources in the Engine security group and to the internet.



110
111
112
# File 'emr/cfn_studio_props.rb', line 110

def workspace_security_group_id
  @workspace_security_group_id
end

Class Method Details

.jsii_propertiesObject



167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
# File 'emr/cfn_studio_props.rb', line 167

def self.jsii_properties
  {
    :auth_mode => "authMode",
    :default_s3_location => "defaultS3Location",
    :engine_security_group_id => "engineSecurityGroupId",
    :name => "name",
    :service_role => "serviceRole",
    :subnet_ids => "subnetIds",
    :vpc_id => "vpcId",
    :workspace_security_group_id => "workspaceSecurityGroupId",
    :description => "description",
    :encryption_key_arn => "encryptionKeyArn",
    :idc_instance_arn => "idcInstanceArn",
    :idc_user_assignment => "idcUserAssignment",
    :idp_auth_url => "idpAuthUrl",
    :idp_relay_state_parameter_name => "idpRelayStateParameterName",
    :tags => "tags",
    :trusted_identity_propagation_enabled => "trustedIdentityPropagationEnabled",
    :user_role => "userRole",
  }
end

Instance Method Details

#to_jsiiObject



189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
# File 'emr/cfn_studio_props.rb', line 189

def to_jsii
  result = {}
  result.merge!({
    "authMode" => @auth_mode,
    "defaultS3Location" => @default_s3_location,
    "engineSecurityGroupId" => @engine_security_group_id,
    "name" => @name,
    "serviceRole" => @service_role,
    "subnetIds" => @subnet_ids,
    "vpcId" => @vpc_id,
    "workspaceSecurityGroupId" => @workspace_security_group_id,
    "description" => @description,
    "encryptionKeyArn" => @encryption_key_arn,
    "idcInstanceArn" => @idc_instance_arn,
    "idcUserAssignment" => @idc_user_assignment,
    "idpAuthUrl" => @idp_auth_url,
    "idpRelayStateParameterName" => @idp_relay_state_parameter_name,
    "tags" => @tags,
    "trustedIdentityPropagationEnabled" => @trusted_identity_propagation_enabled,
    "userRole" => @user_role,
  })
  result.compact
end