aws-sdk-emr 1.36.0 → 1.41.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -26,6 +26,7 @@ module Aws::EMR
26
26
  Application = Shapes::StructureShape.new(name: 'Application')
27
27
  ApplicationList = Shapes::ListShape.new(name: 'ApplicationList')
28
28
  ArnType = Shapes::StringShape.new(name: 'ArnType')
29
+ AuthMode = Shapes::StringShape.new(name: 'AuthMode')
29
30
  AutoScalingPolicy = Shapes::StructureShape.new(name: 'AutoScalingPolicy')
30
31
  AutoScalingPolicyDescription = Shapes::StructureShape.new(name: 'AutoScalingPolicyDescription')
31
32
  AutoScalingPolicyState = Shapes::StringShape.new(name: 'AutoScalingPolicyState')
@@ -65,9 +66,14 @@ module Aws::EMR
65
66
  ConfigurationList = Shapes::ListShape.new(name: 'ConfigurationList')
66
67
  CreateSecurityConfigurationInput = Shapes::StructureShape.new(name: 'CreateSecurityConfigurationInput')
67
68
  CreateSecurityConfigurationOutput = Shapes::StructureShape.new(name: 'CreateSecurityConfigurationOutput')
69
+ CreateStudioInput = Shapes::StructureShape.new(name: 'CreateStudioInput')
70
+ CreateStudioOutput = Shapes::StructureShape.new(name: 'CreateStudioOutput')
71
+ CreateStudioSessionMappingInput = Shapes::StructureShape.new(name: 'CreateStudioSessionMappingInput')
68
72
  Date = Shapes::TimestampShape.new(name: 'Date')
69
73
  DeleteSecurityConfigurationInput = Shapes::StructureShape.new(name: 'DeleteSecurityConfigurationInput')
70
74
  DeleteSecurityConfigurationOutput = Shapes::StructureShape.new(name: 'DeleteSecurityConfigurationOutput')
75
+ DeleteStudioInput = Shapes::StructureShape.new(name: 'DeleteStudioInput')
76
+ DeleteStudioSessionMappingInput = Shapes::StructureShape.new(name: 'DeleteStudioSessionMappingInput')
71
77
  DescribeClusterInput = Shapes::StructureShape.new(name: 'DescribeClusterInput')
72
78
  DescribeClusterOutput = Shapes::StructureShape.new(name: 'DescribeClusterOutput')
73
79
  DescribeJobFlowsInput = Shapes::StructureShape.new(name: 'DescribeJobFlowsInput')
@@ -78,6 +84,8 @@ module Aws::EMR
78
84
  DescribeSecurityConfigurationOutput = Shapes::StructureShape.new(name: 'DescribeSecurityConfigurationOutput')
79
85
  DescribeStepInput = Shapes::StructureShape.new(name: 'DescribeStepInput')
80
86
  DescribeStepOutput = Shapes::StructureShape.new(name: 'DescribeStepOutput')
87
+ DescribeStudioInput = Shapes::StructureShape.new(name: 'DescribeStudioInput')
88
+ DescribeStudioOutput = Shapes::StructureShape.new(name: 'DescribeStudioOutput')
81
89
  EC2InstanceIdsList = Shapes::ListShape.new(name: 'EC2InstanceIdsList')
82
90
  EC2InstanceIdsToTerminateList = Shapes::ListShape.new(name: 'EC2InstanceIdsToTerminateList')
83
91
  EbsBlockDevice = Shapes::StructureShape.new(name: 'EbsBlockDevice')
@@ -97,8 +105,11 @@ module Aws::EMR
97
105
  GetBlockPublicAccessConfigurationOutput = Shapes::StructureShape.new(name: 'GetBlockPublicAccessConfigurationOutput')
98
106
  GetManagedScalingPolicyInput = Shapes::StructureShape.new(name: 'GetManagedScalingPolicyInput')
99
107
  GetManagedScalingPolicyOutput = Shapes::StructureShape.new(name: 'GetManagedScalingPolicyOutput')
108
+ GetStudioSessionMappingInput = Shapes::StructureShape.new(name: 'GetStudioSessionMappingInput')
109
+ GetStudioSessionMappingOutput = Shapes::StructureShape.new(name: 'GetStudioSessionMappingOutput')
100
110
  HadoopJarStepConfig = Shapes::StructureShape.new(name: 'HadoopJarStepConfig')
101
111
  HadoopStepConfig = Shapes::StructureShape.new(name: 'HadoopStepConfig')
112
+ IdentityType = Shapes::StringShape.new(name: 'IdentityType')
102
113
  Instance = Shapes::StructureShape.new(name: 'Instance')
103
114
  InstanceCollectionType = Shapes::StringShape.new(name: 'InstanceCollectionType')
104
115
  InstanceFleet = Shapes::StructureShape.new(name: 'InstanceFleet')
@@ -176,6 +187,10 @@ module Aws::EMR
176
187
  ListSecurityConfigurationsOutput = Shapes::StructureShape.new(name: 'ListSecurityConfigurationsOutput')
177
188
  ListStepsInput = Shapes::StructureShape.new(name: 'ListStepsInput')
178
189
  ListStepsOutput = Shapes::StructureShape.new(name: 'ListStepsOutput')
190
+ ListStudioSessionMappingsInput = Shapes::StructureShape.new(name: 'ListStudioSessionMappingsInput')
191
+ ListStudioSessionMappingsOutput = Shapes::StructureShape.new(name: 'ListStudioSessionMappingsOutput')
192
+ ListStudiosInput = Shapes::StructureShape.new(name: 'ListStudiosInput')
193
+ ListStudiosOutput = Shapes::StructureShape.new(name: 'ListStudiosOutput')
179
194
  Long = Shapes::IntegerShape.new(name: 'Long')
180
195
  ManagedScalingPolicy = Shapes::StructureShape.new(name: 'ManagedScalingPolicy')
181
196
  Marker = Shapes::StringShape.new(name: 'Marker')
@@ -195,6 +210,9 @@ module Aws::EMR
195
210
  OnDemandProvisioningAllocationStrategy = Shapes::StringShape.new(name: 'OnDemandProvisioningAllocationStrategy')
196
211
  OnDemandProvisioningSpecification = Shapes::StructureShape.new(name: 'OnDemandProvisioningSpecification')
197
212
  OptionalArnType = Shapes::StringShape.new(name: 'OptionalArnType')
213
+ PlacementGroupConfig = Shapes::StructureShape.new(name: 'PlacementGroupConfig')
214
+ PlacementGroupConfigList = Shapes::ListShape.new(name: 'PlacementGroupConfigList')
215
+ PlacementGroupStrategy = Shapes::StringShape.new(name: 'PlacementGroupStrategy')
198
216
  PlacementType = Shapes::StructureShape.new(name: 'PlacementType')
199
217
  Port = Shapes::IntegerShape.new(name: 'Port')
200
218
  PortRange = Shapes::StructureShape.new(name: 'PortRange')
@@ -225,6 +243,9 @@ module Aws::EMR
225
243
  SecurityConfigurationList = Shapes::ListShape.new(name: 'SecurityConfigurationList')
226
244
  SecurityConfigurationSummary = Shapes::StructureShape.new(name: 'SecurityConfigurationSummary')
227
245
  SecurityGroupsList = Shapes::ListShape.new(name: 'SecurityGroupsList')
246
+ SessionMappingDetail = Shapes::StructureShape.new(name: 'SessionMappingDetail')
247
+ SessionMappingSummary = Shapes::StructureShape.new(name: 'SessionMappingSummary')
248
+ SessionMappingSummaryList = Shapes::ListShape.new(name: 'SessionMappingSummaryList')
228
249
  SetTerminationProtectionInput = Shapes::StructureShape.new(name: 'SetTerminationProtectionInput')
229
250
  SetVisibleToAllUsersInput = Shapes::StructureShape.new(name: 'SetVisibleToAllUsersInput')
230
251
  ShrinkPolicy = Shapes::StructureShape.new(name: 'ShrinkPolicy')
@@ -257,12 +278,17 @@ module Aws::EMR
257
278
  String = Shapes::StringShape.new(name: 'String')
258
279
  StringList = Shapes::ListShape.new(name: 'StringList')
259
280
  StringMap = Shapes::MapShape.new(name: 'StringMap')
281
+ Studio = Shapes::StructureShape.new(name: 'Studio')
282
+ StudioSummary = Shapes::StructureShape.new(name: 'StudioSummary')
283
+ StudioSummaryList = Shapes::ListShape.new(name: 'StudioSummaryList')
284
+ SubnetIdList = Shapes::ListShape.new(name: 'SubnetIdList')
260
285
  SupportedProductConfig = Shapes::StructureShape.new(name: 'SupportedProductConfig')
261
286
  SupportedProductsList = Shapes::ListShape.new(name: 'SupportedProductsList')
262
287
  Tag = Shapes::StructureShape.new(name: 'Tag')
263
288
  TagList = Shapes::ListShape.new(name: 'TagList')
264
289
  TerminateJobFlowsInput = Shapes::StructureShape.new(name: 'TerminateJobFlowsInput')
265
290
  Unit = Shapes::StringShape.new(name: 'Unit')
291
+ UpdateStudioSessionMappingInput = Shapes::StructureShape.new(name: 'UpdateStudioSessionMappingInput')
266
292
  VolumeSpecification = Shapes::StructureShape.new(name: 'VolumeSpecification')
267
293
  WholeNumber = Shapes::IntegerShape.new(name: 'WholeNumber')
268
294
  XmlString = Shapes::StringShape.new(name: 'XmlString')
@@ -400,6 +426,7 @@ module Aws::EMR
400
426
  Cluster.add_member(:cluster_arn, Shapes::ShapeRef.new(shape: ArnType, location_name: "ClusterArn"))
401
427
  Cluster.add_member(:outpost_arn, Shapes::ShapeRef.new(shape: OptionalArnType, location_name: "OutpostArn"))
402
428
  Cluster.add_member(:step_concurrency_level, Shapes::ShapeRef.new(shape: Integer, location_name: "StepConcurrencyLevel"))
429
+ Cluster.add_member(:placement_groups, Shapes::ShapeRef.new(shape: PlacementGroupConfigList, location_name: "PlacementGroups"))
403
430
  Cluster.struct_class = Types::Cluster
404
431
 
405
432
  ClusterStateChangeReason.add_member(:code, Shapes::ShapeRef.new(shape: ClusterStateChangeReasonCode, location_name: "Code"))
@@ -457,11 +484,44 @@ module Aws::EMR
457
484
  CreateSecurityConfigurationOutput.add_member(:creation_date_time, Shapes::ShapeRef.new(shape: Date, required: true, location_name: "CreationDateTime"))
458
485
  CreateSecurityConfigurationOutput.struct_class = Types::CreateSecurityConfigurationOutput
459
486
 
487
+ CreateStudioInput.add_member(:name, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, required: true, location_name: "Name"))
488
+ CreateStudioInput.add_member(:description, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "Description"))
489
+ CreateStudioInput.add_member(:auth_mode, Shapes::ShapeRef.new(shape: AuthMode, required: true, location_name: "AuthMode"))
490
+ CreateStudioInput.add_member(:vpc_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, required: true, location_name: "VpcId"))
491
+ CreateStudioInput.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: SubnetIdList, required: true, location_name: "SubnetIds"))
492
+ CreateStudioInput.add_member(:service_role, Shapes::ShapeRef.new(shape: XmlString, required: true, location_name: "ServiceRole"))
493
+ CreateStudioInput.add_member(:user_role, Shapes::ShapeRef.new(shape: XmlString, required: true, location_name: "UserRole"))
494
+ CreateStudioInput.add_member(:workspace_security_group_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, required: true, location_name: "WorkspaceSecurityGroupId"))
495
+ CreateStudioInput.add_member(:engine_security_group_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, required: true, location_name: "EngineSecurityGroupId"))
496
+ CreateStudioInput.add_member(:default_s3_location, Shapes::ShapeRef.new(shape: XmlString, location_name: "DefaultS3Location"))
497
+ CreateStudioInput.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags"))
498
+ CreateStudioInput.struct_class = Types::CreateStudioInput
499
+
500
+ CreateStudioOutput.add_member(:studio_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "StudioId"))
501
+ CreateStudioOutput.add_member(:url, Shapes::ShapeRef.new(shape: XmlString, location_name: "Url"))
502
+ CreateStudioOutput.struct_class = Types::CreateStudioOutput
503
+
504
+ CreateStudioSessionMappingInput.add_member(:studio_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, required: true, location_name: "StudioId"))
505
+ CreateStudioSessionMappingInput.add_member(:identity_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "IdentityId"))
506
+ CreateStudioSessionMappingInput.add_member(:identity_name, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "IdentityName"))
507
+ CreateStudioSessionMappingInput.add_member(:identity_type, Shapes::ShapeRef.new(shape: IdentityType, required: true, location_name: "IdentityType"))
508
+ CreateStudioSessionMappingInput.add_member(:session_policy_arn, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, required: true, location_name: "SessionPolicyArn"))
509
+ CreateStudioSessionMappingInput.struct_class = Types::CreateStudioSessionMappingInput
510
+
460
511
  DeleteSecurityConfigurationInput.add_member(:name, Shapes::ShapeRef.new(shape: XmlString, required: true, location_name: "Name"))
461
512
  DeleteSecurityConfigurationInput.struct_class = Types::DeleteSecurityConfigurationInput
462
513
 
463
514
  DeleteSecurityConfigurationOutput.struct_class = Types::DeleteSecurityConfigurationOutput
464
515
 
516
+ DeleteStudioInput.add_member(:studio_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, required: true, location_name: "StudioId"))
517
+ DeleteStudioInput.struct_class = Types::DeleteStudioInput
518
+
519
+ DeleteStudioSessionMappingInput.add_member(:studio_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, required: true, location_name: "StudioId"))
520
+ DeleteStudioSessionMappingInput.add_member(:identity_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "IdentityId"))
521
+ DeleteStudioSessionMappingInput.add_member(:identity_name, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "IdentityName"))
522
+ DeleteStudioSessionMappingInput.add_member(:identity_type, Shapes::ShapeRef.new(shape: IdentityType, required: true, location_name: "IdentityType"))
523
+ DeleteStudioSessionMappingInput.struct_class = Types::DeleteStudioSessionMappingInput
524
+
465
525
  DescribeClusterInput.add_member(:cluster_id, Shapes::ShapeRef.new(shape: ClusterId, required: true, location_name: "ClusterId"))
466
526
  DescribeClusterInput.struct_class = Types::DescribeClusterInput
467
527
 
@@ -498,6 +558,12 @@ module Aws::EMR
498
558
  DescribeStepOutput.add_member(:step, Shapes::ShapeRef.new(shape: Step, location_name: "Step"))
499
559
  DescribeStepOutput.struct_class = Types::DescribeStepOutput
500
560
 
561
+ DescribeStudioInput.add_member(:studio_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, required: true, location_name: "StudioId"))
562
+ DescribeStudioInput.struct_class = Types::DescribeStudioInput
563
+
564
+ DescribeStudioOutput.add_member(:studio, Shapes::ShapeRef.new(shape: Studio, location_name: "Studio"))
565
+ DescribeStudioOutput.struct_class = Types::DescribeStudioOutput
566
+
501
567
  EC2InstanceIdsList.member = Shapes::ShapeRef.new(shape: InstanceId)
502
568
 
503
569
  EC2InstanceIdsToTerminateList.member = Shapes::ShapeRef.new(shape: InstanceId)
@@ -559,6 +625,15 @@ module Aws::EMR
559
625
  GetManagedScalingPolicyOutput.add_member(:managed_scaling_policy, Shapes::ShapeRef.new(shape: ManagedScalingPolicy, location_name: "ManagedScalingPolicy"))
560
626
  GetManagedScalingPolicyOutput.struct_class = Types::GetManagedScalingPolicyOutput
561
627
 
628
+ GetStudioSessionMappingInput.add_member(:studio_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, required: true, location_name: "StudioId"))
629
+ GetStudioSessionMappingInput.add_member(:identity_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "IdentityId"))
630
+ GetStudioSessionMappingInput.add_member(:identity_name, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "IdentityName"))
631
+ GetStudioSessionMappingInput.add_member(:identity_type, Shapes::ShapeRef.new(shape: IdentityType, required: true, location_name: "IdentityType"))
632
+ GetStudioSessionMappingInput.struct_class = Types::GetStudioSessionMappingInput
633
+
634
+ GetStudioSessionMappingOutput.add_member(:session_mapping, Shapes::ShapeRef.new(shape: SessionMappingDetail, location_name: "SessionMapping"))
635
+ GetStudioSessionMappingOutput.struct_class = Types::GetStudioSessionMappingOutput
636
+
562
637
  HadoopJarStepConfig.add_member(:properties, Shapes::ShapeRef.new(shape: KeyValueList, location_name: "Properties"))
563
638
  HadoopJarStepConfig.add_member(:jar, Shapes::ShapeRef.new(shape: XmlString, required: true, location_name: "Jar"))
564
639
  HadoopJarStepConfig.add_member(:main_class, Shapes::ShapeRef.new(shape: XmlString, location_name: "MainClass"))
@@ -915,6 +990,22 @@ module Aws::EMR
915
990
  ListStepsOutput.add_member(:marker, Shapes::ShapeRef.new(shape: Marker, location_name: "Marker"))
916
991
  ListStepsOutput.struct_class = Types::ListStepsOutput
917
992
 
993
+ ListStudioSessionMappingsInput.add_member(:studio_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "StudioId"))
994
+ ListStudioSessionMappingsInput.add_member(:identity_type, Shapes::ShapeRef.new(shape: IdentityType, location_name: "IdentityType"))
995
+ ListStudioSessionMappingsInput.add_member(:marker, Shapes::ShapeRef.new(shape: Marker, location_name: "Marker"))
996
+ ListStudioSessionMappingsInput.struct_class = Types::ListStudioSessionMappingsInput
997
+
998
+ ListStudioSessionMappingsOutput.add_member(:session_mappings, Shapes::ShapeRef.new(shape: SessionMappingSummaryList, location_name: "SessionMappings"))
999
+ ListStudioSessionMappingsOutput.add_member(:marker, Shapes::ShapeRef.new(shape: Marker, location_name: "Marker"))
1000
+ ListStudioSessionMappingsOutput.struct_class = Types::ListStudioSessionMappingsOutput
1001
+
1002
+ ListStudiosInput.add_member(:marker, Shapes::ShapeRef.new(shape: Marker, location_name: "Marker"))
1003
+ ListStudiosInput.struct_class = Types::ListStudiosInput
1004
+
1005
+ ListStudiosOutput.add_member(:studios, Shapes::ShapeRef.new(shape: StudioSummaryList, location_name: "Studios"))
1006
+ ListStudiosOutput.add_member(:marker, Shapes::ShapeRef.new(shape: Marker, location_name: "Marker"))
1007
+ ListStudiosOutput.struct_class = Types::ListStudiosOutput
1008
+
918
1009
  ManagedScalingPolicy.add_member(:compute_limits, Shapes::ShapeRef.new(shape: ComputeLimits, location_name: "ComputeLimits"))
919
1010
  ManagedScalingPolicy.struct_class = Types::ManagedScalingPolicy
920
1011
 
@@ -969,6 +1060,12 @@ module Aws::EMR
969
1060
  OnDemandProvisioningSpecification.add_member(:allocation_strategy, Shapes::ShapeRef.new(shape: OnDemandProvisioningAllocationStrategy, required: true, location_name: "AllocationStrategy"))
970
1061
  OnDemandProvisioningSpecification.struct_class = Types::OnDemandProvisioningSpecification
971
1062
 
1063
+ PlacementGroupConfig.add_member(:instance_role, Shapes::ShapeRef.new(shape: InstanceRoleType, required: true, location_name: "InstanceRole"))
1064
+ PlacementGroupConfig.add_member(:placement_strategy, Shapes::ShapeRef.new(shape: PlacementGroupStrategy, location_name: "PlacementStrategy"))
1065
+ PlacementGroupConfig.struct_class = Types::PlacementGroupConfig
1066
+
1067
+ PlacementGroupConfigList.member = Shapes::ShapeRef.new(shape: PlacementGroupConfig)
1068
+
972
1069
  PlacementType.add_member(:availability_zone, Shapes::ShapeRef.new(shape: XmlString, location_name: "AvailabilityZone"))
973
1070
  PlacementType.add_member(:availability_zones, Shapes::ShapeRef.new(shape: XmlStringMaxLen256List, location_name: "AvailabilityZones"))
974
1071
  PlacementType.struct_class = Types::PlacementType
@@ -1044,6 +1141,7 @@ module Aws::EMR
1044
1141
  RunJobFlowInput.add_member(:kerberos_attributes, Shapes::ShapeRef.new(shape: KerberosAttributes, location_name: "KerberosAttributes"))
1045
1142
  RunJobFlowInput.add_member(:step_concurrency_level, Shapes::ShapeRef.new(shape: Integer, location_name: "StepConcurrencyLevel"))
1046
1143
  RunJobFlowInput.add_member(:managed_scaling_policy, Shapes::ShapeRef.new(shape: ManagedScalingPolicy, location_name: "ManagedScalingPolicy"))
1144
+ RunJobFlowInput.add_member(:placement_group_configs, Shapes::ShapeRef.new(shape: PlacementGroupConfigList, location_name: "PlacementGroupConfigs"))
1047
1145
  RunJobFlowInput.struct_class = Types::RunJobFlowInput
1048
1146
 
1049
1147
  RunJobFlowOutput.add_member(:job_flow_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "JobFlowId"))
@@ -1081,6 +1179,25 @@ module Aws::EMR
1081
1179
 
1082
1180
  SecurityGroupsList.member = Shapes::ShapeRef.new(shape: XmlStringMaxLen256)
1083
1181
 
1182
+ SessionMappingDetail.add_member(:studio_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "StudioId"))
1183
+ SessionMappingDetail.add_member(:identity_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "IdentityId"))
1184
+ SessionMappingDetail.add_member(:identity_name, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "IdentityName"))
1185
+ SessionMappingDetail.add_member(:identity_type, Shapes::ShapeRef.new(shape: IdentityType, location_name: "IdentityType"))
1186
+ SessionMappingDetail.add_member(:session_policy_arn, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "SessionPolicyArn"))
1187
+ SessionMappingDetail.add_member(:creation_time, Shapes::ShapeRef.new(shape: Date, location_name: "CreationTime"))
1188
+ SessionMappingDetail.add_member(:last_modified_time, Shapes::ShapeRef.new(shape: Date, location_name: "LastModifiedTime"))
1189
+ SessionMappingDetail.struct_class = Types::SessionMappingDetail
1190
+
1191
+ SessionMappingSummary.add_member(:studio_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "StudioId"))
1192
+ SessionMappingSummary.add_member(:identity_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "IdentityId"))
1193
+ SessionMappingSummary.add_member(:identity_name, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "IdentityName"))
1194
+ SessionMappingSummary.add_member(:identity_type, Shapes::ShapeRef.new(shape: IdentityType, location_name: "IdentityType"))
1195
+ SessionMappingSummary.add_member(:session_policy_arn, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "SessionPolicyArn"))
1196
+ SessionMappingSummary.add_member(:creation_time, Shapes::ShapeRef.new(shape: Date, location_name: "CreationTime"))
1197
+ SessionMappingSummary.struct_class = Types::SessionMappingSummary
1198
+
1199
+ SessionMappingSummaryList.member = Shapes::ShapeRef.new(shape: SessionMappingSummary)
1200
+
1084
1201
  SetTerminationProtectionInput.add_member(:job_flow_ids, Shapes::ShapeRef.new(shape: XmlStringList, required: true, location_name: "JobFlowIds"))
1085
1202
  SetTerminationProtectionInput.add_member(:termination_protected, Shapes::ShapeRef.new(shape: Boolean, required: true, location_name: "TerminationProtected"))
1086
1203
  SetTerminationProtectionInput.struct_class = Types::SetTerminationProtectionInput
@@ -1180,6 +1297,35 @@ module Aws::EMR
1180
1297
  StringMap.key = Shapes::ShapeRef.new(shape: String)
1181
1298
  StringMap.value = Shapes::ShapeRef.new(shape: String)
1182
1299
 
1300
+ Studio.add_member(:studio_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "StudioId"))
1301
+ Studio.add_member(:studio_arn, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "StudioArn"))
1302
+ Studio.add_member(:name, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "Name"))
1303
+ Studio.add_member(:description, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "Description"))
1304
+ Studio.add_member(:auth_mode, Shapes::ShapeRef.new(shape: AuthMode, location_name: "AuthMode"))
1305
+ Studio.add_member(:vpc_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "VpcId"))
1306
+ Studio.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: SubnetIdList, location_name: "SubnetIds"))
1307
+ Studio.add_member(:service_role, Shapes::ShapeRef.new(shape: XmlString, location_name: "ServiceRole"))
1308
+ Studio.add_member(:user_role, Shapes::ShapeRef.new(shape: XmlString, location_name: "UserRole"))
1309
+ Studio.add_member(:workspace_security_group_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "WorkspaceSecurityGroupId"))
1310
+ Studio.add_member(:engine_security_group_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "EngineSecurityGroupId"))
1311
+ Studio.add_member(:url, Shapes::ShapeRef.new(shape: XmlString, location_name: "Url"))
1312
+ Studio.add_member(:creation_time, Shapes::ShapeRef.new(shape: Date, location_name: "CreationTime"))
1313
+ Studio.add_member(:default_s3_location, Shapes::ShapeRef.new(shape: XmlString, location_name: "DefaultS3Location"))
1314
+ Studio.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags"))
1315
+ Studio.struct_class = Types::Studio
1316
+
1317
+ StudioSummary.add_member(:studio_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "StudioId"))
1318
+ StudioSummary.add_member(:name, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "Name"))
1319
+ StudioSummary.add_member(:vpc_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "VpcId"))
1320
+ StudioSummary.add_member(:description, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "Description"))
1321
+ StudioSummary.add_member(:url, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "Url"))
1322
+ StudioSummary.add_member(:creation_time, Shapes::ShapeRef.new(shape: Date, location_name: "CreationTime"))
1323
+ StudioSummary.struct_class = Types::StudioSummary
1324
+
1325
+ StudioSummaryList.member = Shapes::ShapeRef.new(shape: StudioSummary)
1326
+
1327
+ SubnetIdList.member = Shapes::ShapeRef.new(shape: String)
1328
+
1183
1329
  SupportedProductConfig.add_member(:name, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "Name"))
1184
1330
  SupportedProductConfig.add_member(:args, Shapes::ShapeRef.new(shape: XmlStringList, location_name: "Args"))
1185
1331
  SupportedProductConfig.struct_class = Types::SupportedProductConfig
@@ -1195,6 +1341,13 @@ module Aws::EMR
1195
1341
  TerminateJobFlowsInput.add_member(:job_flow_ids, Shapes::ShapeRef.new(shape: XmlStringList, required: true, location_name: "JobFlowIds"))
1196
1342
  TerminateJobFlowsInput.struct_class = Types::TerminateJobFlowsInput
1197
1343
 
1344
+ UpdateStudioSessionMappingInput.add_member(:studio_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, required: true, location_name: "StudioId"))
1345
+ UpdateStudioSessionMappingInput.add_member(:identity_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "IdentityId"))
1346
+ UpdateStudioSessionMappingInput.add_member(:identity_name, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, location_name: "IdentityName"))
1347
+ UpdateStudioSessionMappingInput.add_member(:identity_type, Shapes::ShapeRef.new(shape: IdentityType, required: true, location_name: "IdentityType"))
1348
+ UpdateStudioSessionMappingInput.add_member(:session_policy_arn, Shapes::ShapeRef.new(shape: XmlStringMaxLen256, required: true, location_name: "SessionPolicyArn"))
1349
+ UpdateStudioSessionMappingInput.struct_class = Types::UpdateStudioSessionMappingInput
1350
+
1198
1351
  VolumeSpecification.add_member(:volume_type, Shapes::ShapeRef.new(shape: String, required: true, location_name: "VolumeType"))
1199
1352
  VolumeSpecification.add_member(:iops, Shapes::ShapeRef.new(shape: Integer, location_name: "Iops"))
1200
1353
  VolumeSpecification.add_member(:size_in_gb, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "SizeInGB"))
@@ -1281,6 +1434,26 @@ module Aws::EMR
1281
1434
  o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
1282
1435
  end)
1283
1436
 
1437
+ api.add_operation(:create_studio, Seahorse::Model::Operation.new.tap do |o|
1438
+ o.name = "CreateStudio"
1439
+ o.http_method = "POST"
1440
+ o.http_request_uri = "/"
1441
+ o.input = Shapes::ShapeRef.new(shape: CreateStudioInput)
1442
+ o.output = Shapes::ShapeRef.new(shape: CreateStudioOutput)
1443
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
1444
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
1445
+ end)
1446
+
1447
+ api.add_operation(:create_studio_session_mapping, Seahorse::Model::Operation.new.tap do |o|
1448
+ o.name = "CreateStudioSessionMapping"
1449
+ o.http_method = "POST"
1450
+ o.http_request_uri = "/"
1451
+ o.input = Shapes::ShapeRef.new(shape: CreateStudioSessionMappingInput)
1452
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
1453
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerError)
1454
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
1455
+ end)
1456
+
1284
1457
  api.add_operation(:delete_security_configuration, Seahorse::Model::Operation.new.tap do |o|
1285
1458
  o.name = "DeleteSecurityConfiguration"
1286
1459
  o.http_method = "POST"
@@ -1291,6 +1464,26 @@ module Aws::EMR
1291
1464
  o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
1292
1465
  end)
1293
1466
 
1467
+ api.add_operation(:delete_studio, Seahorse::Model::Operation.new.tap do |o|
1468
+ o.name = "DeleteStudio"
1469
+ o.http_method = "POST"
1470
+ o.http_request_uri = "/"
1471
+ o.input = Shapes::ShapeRef.new(shape: DeleteStudioInput)
1472
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
1473
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
1474
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
1475
+ end)
1476
+
1477
+ api.add_operation(:delete_studio_session_mapping, Seahorse::Model::Operation.new.tap do |o|
1478
+ o.name = "DeleteStudioSessionMapping"
1479
+ o.http_method = "POST"
1480
+ o.http_request_uri = "/"
1481
+ o.input = Shapes::ShapeRef.new(shape: DeleteStudioSessionMappingInput)
1482
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
1483
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerError)
1484
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
1485
+ end)
1486
+
1294
1487
  api.add_operation(:describe_cluster, Seahorse::Model::Operation.new.tap do |o|
1295
1488
  o.name = "DescribeCluster"
1296
1489
  o.http_method = "POST"
@@ -1341,6 +1534,16 @@ module Aws::EMR
1341
1534
  o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
1342
1535
  end)
1343
1536
 
1537
+ api.add_operation(:describe_studio, Seahorse::Model::Operation.new.tap do |o|
1538
+ o.name = "DescribeStudio"
1539
+ o.http_method = "POST"
1540
+ o.http_request_uri = "/"
1541
+ o.input = Shapes::ShapeRef.new(shape: DescribeStudioInput)
1542
+ o.output = Shapes::ShapeRef.new(shape: DescribeStudioOutput)
1543
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
1544
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
1545
+ end)
1546
+
1344
1547
  api.add_operation(:get_block_public_access_configuration, Seahorse::Model::Operation.new.tap do |o|
1345
1548
  o.name = "GetBlockPublicAccessConfiguration"
1346
1549
  o.http_method = "POST"
@@ -1359,6 +1562,16 @@ module Aws::EMR
1359
1562
  o.output = Shapes::ShapeRef.new(shape: GetManagedScalingPolicyOutput)
1360
1563
  end)
1361
1564
 
1565
+ api.add_operation(:get_studio_session_mapping, Seahorse::Model::Operation.new.tap do |o|
1566
+ o.name = "GetStudioSessionMapping"
1567
+ o.http_method = "POST"
1568
+ o.http_request_uri = "/"
1569
+ o.input = Shapes::ShapeRef.new(shape: GetStudioSessionMappingInput)
1570
+ o.output = Shapes::ShapeRef.new(shape: GetStudioSessionMappingOutput)
1571
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerError)
1572
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
1573
+ end)
1574
+
1362
1575
  api.add_operation(:list_bootstrap_actions, Seahorse::Model::Operation.new.tap do |o|
1363
1576
  o.name = "ListBootstrapActions"
1364
1577
  o.http_method = "POST"
@@ -1479,6 +1692,36 @@ module Aws::EMR
1479
1692
  )
1480
1693
  end)
1481
1694
 
1695
+ api.add_operation(:list_studio_session_mappings, Seahorse::Model::Operation.new.tap do |o|
1696
+ o.name = "ListStudioSessionMappings"
1697
+ o.http_method = "POST"
1698
+ o.http_request_uri = "/"
1699
+ o.input = Shapes::ShapeRef.new(shape: ListStudioSessionMappingsInput)
1700
+ o.output = Shapes::ShapeRef.new(shape: ListStudioSessionMappingsOutput)
1701
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerError)
1702
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
1703
+ o[:pager] = Aws::Pager.new(
1704
+ tokens: {
1705
+ "marker" => "marker"
1706
+ }
1707
+ )
1708
+ end)
1709
+
1710
+ api.add_operation(:list_studios, Seahorse::Model::Operation.new.tap do |o|
1711
+ o.name = "ListStudios"
1712
+ o.http_method = "POST"
1713
+ o.http_request_uri = "/"
1714
+ o.input = Shapes::ShapeRef.new(shape: ListStudiosInput)
1715
+ o.output = Shapes::ShapeRef.new(shape: ListStudiosOutput)
1716
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
1717
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
1718
+ o[:pager] = Aws::Pager.new(
1719
+ tokens: {
1720
+ "marker" => "marker"
1721
+ }
1722
+ )
1723
+ end)
1724
+
1482
1725
  api.add_operation(:modify_cluster, Seahorse::Model::Operation.new.tap do |o|
1483
1726
  o.name = "ModifyCluster"
1484
1727
  o.http_method = "POST"
@@ -1615,6 +1858,16 @@ module Aws::EMR
1615
1858
  o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
1616
1859
  o.errors << Shapes::ShapeRef.new(shape: InternalServerError)
1617
1860
  end)
1861
+
1862
+ api.add_operation(:update_studio_session_mapping, Seahorse::Model::Operation.new.tap do |o|
1863
+ o.name = "UpdateStudioSessionMapping"
1864
+ o.http_method = "POST"
1865
+ o.http_request_uri = "/"
1866
+ o.input = Shapes::ShapeRef.new(shape: UpdateStudioSessionMappingInput)
1867
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
1868
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerError)
1869
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
1870
+ end)
1618
1871
  end
1619
1872
 
1620
1873
  end
@@ -307,7 +307,7 @@ module Aws::EMR
307
307
  #
308
308
  # @!attribute [rw] tags
309
309
  # A list of tags to associate with a cluster and propagate to EC2
310
- # instances. Tags are user-defined key/value pairs that consist of a
310
+ # instances. Tags are user-defined key-value pairs that consist of a
311
311
  # required key string with a maximum of 128 characters, and an
312
312
  # optional value string with a maximum of 256 characters.
313
313
  # @return [Array<Types::Tag>]
@@ -547,8 +547,8 @@ module Aws::EMR
547
547
  # }
548
548
  #
549
549
  # @!attribute [rw] block_public_security_group_rules
550
- # Indicates whether EMR block public access is enabled (`true`) or
551
- # disabled (`false`). By default, the value is `false` for accounts
550
+ # Indicates whether Amazon EMR block public access is enabled (`true`)
551
+ # or disabled (`false`). By default, the value is `false` for accounts
552
552
  # that have created EMR clusters before July 2019. For accounts
553
553
  # created after this, the default is `true`.
554
554
  # @return [Boolean]
@@ -683,7 +683,7 @@ module Aws::EMR
683
683
  # }
684
684
  #
685
685
  # @!attribute [rw] cluster_id
686
- # The `ClusterID` for which specified steps will be canceled. Use
686
+ # The `ClusterID` for the specified steps that will be canceled. Use
687
687
  # RunJobFlow and ListClusters to get ClusterIDs.
688
688
  # @return [String]
689
689
  #
@@ -693,7 +693,7 @@ module Aws::EMR
693
693
  # @return [Array<String>]
694
694
  #
695
695
  # @!attribute [rw] step_cancellation_option
696
- # The option to choose for cancelling `RUNNING` steps. By default, the
696
+ # The option to choose to cancel `RUNNING` steps. By default, the
697
697
  # value is `SEND_INTERRUPT`.
698
698
  # @return [String]
699
699
  #
@@ -951,13 +951,13 @@ module Aws::EMR
951
951
  # to terminate the instance was submitted. This option is only
952
952
  # available with Amazon EMR 5.1.0 and later and is the default for
953
953
  # clusters created using that version. `TERMINATE_AT_TASK_COMPLETION`
954
- # indicates that Amazon EMR blacklists and drains tasks from nodes
955
- # before terminating the Amazon EC2 instances, regardless of the
956
- # instance-hour boundary. With either behavior, Amazon EMR removes the
957
- # least active nodes first and blocks instance termination if it could
958
- # lead to HDFS corruption. `TERMINATE_AT_TASK_COMPLETION` is available
959
- # only in Amazon EMR version 4.1.0 and later, and is the default for
960
- # versions of Amazon EMR earlier than 5.1.0.
954
+ # indicates that Amazon EMR adds nodes to a deny list and drains tasks
955
+ # from nodes before terminating the Amazon EC2 instances, regardless
956
+ # of the instance-hour boundary. With either behavior, Amazon EMR
957
+ # removes the least active nodes first and blocks instance termination
958
+ # if it could lead to HDFS corruption. `TERMINATE_AT_TASK_COMPLETION`
959
+ # is available only in Amazon EMR version 4.1.0 and later, and is the
960
+ # default for versions of Amazon EMR earlier than 5.1.0.
961
961
  # @return [String]
962
962
  #
963
963
  # @!attribute [rw] custom_ami_id
@@ -966,9 +966,9 @@ module Aws::EMR
966
966
  # @return [String]
967
967
  #
968
968
  # @!attribute [rw] ebs_root_volume_size
969
- # The size, in GiB, of the EBS root device volume of the Linux AMI
970
- # that is used for each EC2 instance. Available in Amazon EMR version
971
- # 4.x and later.
969
+ # The size, in GiB, of the Amazon EBS root device volume of the Linux
970
+ # AMI that is used for each EC2 instance. Available in Amazon EMR
971
+ # version 4.x and later.
972
972
  # @return [Integer]
973
973
  #
974
974
  # @!attribute [rw] repo_upgrade_on_boot
@@ -980,7 +980,8 @@ module Aws::EMR
980
980
  # @!attribute [rw] kerberos_attributes
981
981
  # Attributes for Kerberos configuration when Kerberos authentication
982
982
  # is enabled using a security configuration. For more information see
983
- # [Use Kerberos Authentication][1] in the *EMR Management Guide*.
983
+ # [Use Kerberos Authentication][1] in the *Amazon EMR Management
984
+ # Guide*.
984
985
  #
985
986
  #
986
987
  #
@@ -1000,6 +1001,10 @@ module Aws::EMR
1000
1001
  # Specifies the number of steps that can be executed concurrently.
1001
1002
  # @return [Integer]
1002
1003
  #
1004
+ # @!attribute [rw] placement_groups
1005
+ # Placement group configured for an Amazon EMR cluster.
1006
+ # @return [Array<Types::PlacementGroupConfig>]
1007
+ #
1003
1008
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/Cluster AWS API Documentation
1004
1009
  #
1005
1010
  class Cluster < Struct.new(
@@ -1031,7 +1036,8 @@ module Aws::EMR
1031
1036
  :kerberos_attributes,
1032
1037
  :cluster_arn,
1033
1038
  :outpost_arn,
1034
- :step_concurrency_level)
1039
+ :step_concurrency_level,
1040
+ :placement_groups)
1035
1041
  SENSITIVE = []
1036
1042
  include Aws::Structure
1037
1043
  end
@@ -1133,7 +1139,7 @@ module Aws::EMR
1133
1139
  # @return [Time]
1134
1140
  #
1135
1141
  # @!attribute [rw] ready_date_time
1136
- # The date and time when the cluster was ready to execute steps.
1142
+ # The date and time when the cluster was ready to run steps.
1137
1143
  # @return [Time]
1138
1144
  #
1139
1145
  # @!attribute [rw] end_date_time
@@ -1195,7 +1201,7 @@ module Aws::EMR
1195
1201
  # @return [String]
1196
1202
  #
1197
1203
  # @!attribute [rw] minimum_capacity_units
1198
- # The lower boundary of EC2 units. It is measured through VCPU cores
1204
+ # The lower boundary of EC2 units. It is measured through vCPU cores
1199
1205
  # or instances for instance groups and measured through units for
1200
1206
  # instance fleets. Managed scaling activities are not allowed beyond
1201
1207
  # this boundary. The limit only applies to the core and task nodes.
@@ -1203,7 +1209,7 @@ module Aws::EMR
1203
1209
  # @return [Integer]
1204
1210
  #
1205
1211
  # @!attribute [rw] maximum_capacity_units
1206
- # The upper boundary of EC2 units. It is measured through VCPU cores
1212
+ # The upper boundary of EC2 units. It is measured through vCPU cores
1207
1213
  # or instances for instance groups and measured through units for
1208
1214
  # instance fleets. Managed scaling activities are not allowed beyond
1209
1215
  # this boundary. The limit only applies to the core and task nodes.
@@ -1212,15 +1218,15 @@ module Aws::EMR
1212
1218
  #
1213
1219
  # @!attribute [rw] maximum_on_demand_capacity_units
1214
1220
  # The upper boundary of On-Demand EC2 units. It is measured through
1215
- # VCPU cores or instances for instance groups and measured through
1221
+ # vCPU cores or instances for instance groups and measured through
1216
1222
  # units for instance fleets. The On-Demand units are not allowed to
1217
1223
  # scale beyond this boundary. The parameter is used to split capacity
1218
- # allocation between On-Demand and Spot instances.
1224
+ # allocation between On-Demand and Spot Instances.
1219
1225
  # @return [Integer]
1220
1226
  #
1221
1227
  # @!attribute [rw] maximum_core_capacity_units
1222
1228
  # The upper boundary of EC2 units for core node type in a cluster. It
1223
- # is measured through VCPU cores or instances for instance groups and
1229
+ # is measured through vCPU cores or instances for instance groups and
1224
1230
  # measured through units for instance fleets. The core units are not
1225
1231
  # allowed to scale beyond this boundary. The parameter is used to
1226
1232
  # split capacity allocation between core and task nodes.
@@ -1346,6 +1352,189 @@ module Aws::EMR
1346
1352
  include Aws::Structure
1347
1353
  end
1348
1354
 
1355
+ # @note When making an API call, you may pass CreateStudioInput
1356
+ # data as a hash:
1357
+ #
1358
+ # {
1359
+ # name: "XmlStringMaxLen256", # required
1360
+ # description: "XmlStringMaxLen256",
1361
+ # auth_mode: "SSO", # required, accepts SSO, IAM
1362
+ # vpc_id: "XmlStringMaxLen256", # required
1363
+ # subnet_ids: ["String"], # required
1364
+ # service_role: "XmlString", # required
1365
+ # user_role: "XmlString", # required
1366
+ # workspace_security_group_id: "XmlStringMaxLen256", # required
1367
+ # engine_security_group_id: "XmlStringMaxLen256", # required
1368
+ # default_s3_location: "XmlString",
1369
+ # tags: [
1370
+ # {
1371
+ # key: "String",
1372
+ # value: "String",
1373
+ # },
1374
+ # ],
1375
+ # }
1376
+ #
1377
+ # @!attribute [rw] name
1378
+ # A descriptive name for the Amazon EMR Studio.
1379
+ # @return [String]
1380
+ #
1381
+ # @!attribute [rw] description
1382
+ # A detailed description of the Studio.
1383
+ # @return [String]
1384
+ #
1385
+ # @!attribute [rw] auth_mode
1386
+ # Specifies whether the Studio authenticates users using single
1387
+ # sign-on (SSO) or IAM. Amazon EMR Studio currently only supports SSO
1388
+ # authentication.
1389
+ # @return [String]
1390
+ #
1391
+ # @!attribute [rw] vpc_id
1392
+ # The ID of the Amazon Virtual Private Cloud (Amazon VPC) to associate
1393
+ # with the Studio.
1394
+ # @return [String]
1395
+ #
1396
+ # @!attribute [rw] subnet_ids
1397
+ # A list of subnet IDs to associate with the Studio. The subnets must
1398
+ # belong to the VPC specified by `VpcId`. Studio users can create a
1399
+ # Workspace in any of the specified subnets.
1400
+ # @return [Array<String>]
1401
+ #
1402
+ # @!attribute [rw] service_role
1403
+ # The IAM role that will be assumed by the Amazon EMR Studio. The
1404
+ # service role provides a way for Amazon EMR Studio to interoperate
1405
+ # with other AWS services.
1406
+ # @return [String]
1407
+ #
1408
+ # @!attribute [rw] user_role
1409
+ # The IAM user role that will be assumed by users and groups logged in
1410
+ # to a Studio. The permissions attached to this IAM role can be scoped
1411
+ # down for each user or group using session policies.
1412
+ # @return [String]
1413
+ #
1414
+ # @!attribute [rw] workspace_security_group_id
1415
+ # The ID of the Amazon EMR Studio Workspace security group. The
1416
+ # Workspace security group allows outbound network traffic to
1417
+ # resources in the Engine security group, and it must be in the same
1418
+ # VPC specified by `VpcId`.
1419
+ # @return [String]
1420
+ #
1421
+ # @!attribute [rw] engine_security_group_id
1422
+ # The ID of the Amazon EMR Studio Engine security group. The Engine
1423
+ # security group allows inbound network traffic from the Workspace
1424
+ # security group, and it must be in the same VPC specified by `VpcId`.
1425
+ # @return [String]
1426
+ #
1427
+ # @!attribute [rw] default_s3_location
1428
+ # The default Amazon S3 location to back up EMR Studio Workspaces and
1429
+ # notebook files. A Studio user can select an alternative Amazon S3
1430
+ # location when creating a Workspace.
1431
+ # @return [String]
1432
+ #
1433
+ # @!attribute [rw] tags
1434
+ # A list of tags to associate with the Studio. Tags are user-defined
1435
+ # key-value pairs that consist of a required key string with a maximum
1436
+ # of 128 characters, and an optional value string with a maximum of
1437
+ # 256 characters.
1438
+ # @return [Array<Types::Tag>]
1439
+ #
1440
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateStudioInput AWS API Documentation
1441
+ #
1442
+ class CreateStudioInput < Struct.new(
1443
+ :name,
1444
+ :description,
1445
+ :auth_mode,
1446
+ :vpc_id,
1447
+ :subnet_ids,
1448
+ :service_role,
1449
+ :user_role,
1450
+ :workspace_security_group_id,
1451
+ :engine_security_group_id,
1452
+ :default_s3_location,
1453
+ :tags)
1454
+ SENSITIVE = []
1455
+ include Aws::Structure
1456
+ end
1457
+
1458
+ # @!attribute [rw] studio_id
1459
+ # The ID of the Amazon EMR Studio.
1460
+ # @return [String]
1461
+ #
1462
+ # @!attribute [rw] url
1463
+ # The unique Studio access URL.
1464
+ # @return [String]
1465
+ #
1466
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateStudioOutput AWS API Documentation
1467
+ #
1468
+ class CreateStudioOutput < Struct.new(
1469
+ :studio_id,
1470
+ :url)
1471
+ SENSITIVE = []
1472
+ include Aws::Structure
1473
+ end
1474
+
1475
+ # @note When making an API call, you may pass CreateStudioSessionMappingInput
1476
+ # data as a hash:
1477
+ #
1478
+ # {
1479
+ # studio_id: "XmlStringMaxLen256", # required
1480
+ # identity_id: "XmlStringMaxLen256",
1481
+ # identity_name: "XmlStringMaxLen256",
1482
+ # identity_type: "USER", # required, accepts USER, GROUP
1483
+ # session_policy_arn: "XmlStringMaxLen256", # required
1484
+ # }
1485
+ #
1486
+ # @!attribute [rw] studio_id
1487
+ # The ID of the Amazon EMR Studio to which the user or group will be
1488
+ # mapped.
1489
+ # @return [String]
1490
+ #
1491
+ # @!attribute [rw] identity_id
1492
+ # The globally unique identifier (GUID) of the user or group from the
1493
+ # AWS SSO Identity Store. For more information, see [UserId][1] and
1494
+ # [GroupId][2] in the *AWS SSO Identity Store API Reference*. Either
1495
+ # `IdentityName` or `IdentityId` must be specified.
1496
+ #
1497
+ #
1498
+ #
1499
+ # [1]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId
1500
+ # [2]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId
1501
+ # @return [String]
1502
+ #
1503
+ # @!attribute [rw] identity_name
1504
+ # The name of the user or group. For more information, see
1505
+ # [UserName][1] and [DisplayName][2] in the *AWS SSO Identity Store
1506
+ # API Reference*. Either `IdentityName` or `IdentityId` must be
1507
+ # specified.
1508
+ #
1509
+ #
1510
+ #
1511
+ # [1]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId
1512
+ # [2]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName
1513
+ # @return [String]
1514
+ #
1515
+ # @!attribute [rw] identity_type
1516
+ # Specifies whether the identity to map to the Studio is a user or a
1517
+ # group.
1518
+ # @return [String]
1519
+ #
1520
+ # @!attribute [rw] session_policy_arn
1521
+ # The Amazon Resource Name (ARN) for the session policy that will be
1522
+ # applied to the user or group. Session policies refine Studio user
1523
+ # permissions without the need to use multiple IAM user roles.
1524
+ # @return [String]
1525
+ #
1526
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateStudioSessionMappingInput AWS API Documentation
1527
+ #
1528
+ class CreateStudioSessionMappingInput < Struct.new(
1529
+ :studio_id,
1530
+ :identity_id,
1531
+ :identity_name,
1532
+ :identity_type,
1533
+ :session_policy_arn)
1534
+ SENSITIVE = []
1535
+ include Aws::Structure
1536
+ end
1537
+
1349
1538
  # @note When making an API call, you may pass DeleteSecurityConfigurationInput
1350
1539
  # data as a hash:
1351
1540
  #
@@ -1369,6 +1558,79 @@ module Aws::EMR
1369
1558
  #
1370
1559
  class DeleteSecurityConfigurationOutput < Aws::EmptyStructure; end
1371
1560
 
1561
+ # @note When making an API call, you may pass DeleteStudioInput
1562
+ # data as a hash:
1563
+ #
1564
+ # {
1565
+ # studio_id: "XmlStringMaxLen256", # required
1566
+ # }
1567
+ #
1568
+ # @!attribute [rw] studio_id
1569
+ # The ID of the Amazon EMR Studio.
1570
+ # @return [String]
1571
+ #
1572
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteStudioInput AWS API Documentation
1573
+ #
1574
+ class DeleteStudioInput < Struct.new(
1575
+ :studio_id)
1576
+ SENSITIVE = []
1577
+ include Aws::Structure
1578
+ end
1579
+
1580
+ # @note When making an API call, you may pass DeleteStudioSessionMappingInput
1581
+ # data as a hash:
1582
+ #
1583
+ # {
1584
+ # studio_id: "XmlStringMaxLen256", # required
1585
+ # identity_id: "XmlStringMaxLen256",
1586
+ # identity_name: "XmlStringMaxLen256",
1587
+ # identity_type: "USER", # required, accepts USER, GROUP
1588
+ # }
1589
+ #
1590
+ # @!attribute [rw] studio_id
1591
+ # The ID of the Amazon EMR Studio.
1592
+ # @return [String]
1593
+ #
1594
+ # @!attribute [rw] identity_id
1595
+ # The globally unique identifier (GUID) of the user or group to remove
1596
+ # from the Amazon EMR Studio. For more information, see [UserId][1]
1597
+ # and [GroupId][2] in the *AWS SSO Identity Store API Reference*.
1598
+ # Either `IdentityName` or `IdentityId` must be specified.
1599
+ #
1600
+ #
1601
+ #
1602
+ # [1]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId
1603
+ # [2]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId
1604
+ # @return [String]
1605
+ #
1606
+ # @!attribute [rw] identity_name
1607
+ # The name of the user name or group to remove from the Studio. For
1608
+ # more information, see [UserName][1] and [DisplayName][2] in the *AWS
1609
+ # SSO Identity Store API Reference*. Either `IdentityName` or
1610
+ # `IdentityId` must be specified.
1611
+ #
1612
+ #
1613
+ #
1614
+ # [1]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId
1615
+ # [2]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName
1616
+ # @return [String]
1617
+ #
1618
+ # @!attribute [rw] identity_type
1619
+ # Specifies whether the identity to delete from the Studio is a user
1620
+ # or a group.
1621
+ # @return [String]
1622
+ #
1623
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteStudioSessionMappingInput AWS API Documentation
1624
+ #
1625
+ class DeleteStudioSessionMappingInput < Struct.new(
1626
+ :studio_id,
1627
+ :identity_id,
1628
+ :identity_name,
1629
+ :identity_type)
1630
+ SENSITIVE = []
1631
+ include Aws::Structure
1632
+ end
1633
+
1372
1634
  # This input determines which cluster to describe.
1373
1635
  #
1374
1636
  # @note When making an API call, you may pass DescribeClusterInput
@@ -1570,6 +1832,37 @@ module Aws::EMR
1570
1832
  include Aws::Structure
1571
1833
  end
1572
1834
 
1835
+ # @note When making an API call, you may pass DescribeStudioInput
1836
+ # data as a hash:
1837
+ #
1838
+ # {
1839
+ # studio_id: "XmlStringMaxLen256", # required
1840
+ # }
1841
+ #
1842
+ # @!attribute [rw] studio_id
1843
+ # The Amazon EMR Studio ID.
1844
+ # @return [String]
1845
+ #
1846
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStudioInput AWS API Documentation
1847
+ #
1848
+ class DescribeStudioInput < Struct.new(
1849
+ :studio_id)
1850
+ SENSITIVE = []
1851
+ include Aws::Structure
1852
+ end
1853
+
1854
+ # @!attribute [rw] studio
1855
+ # The Amazon EMR Studio details.
1856
+ # @return [Types::Studio]
1857
+ #
1858
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStudioOutput AWS API Documentation
1859
+ #
1860
+ class DescribeStudioOutput < Struct.new(
1861
+ :studio)
1862
+ SENSITIVE = []
1863
+ include Aws::Structure
1864
+ end
1865
+
1573
1866
  # Configuration of requested EBS block device associated with the
1574
1867
  # instance group.
1575
1868
  #
@@ -1831,9 +2124,9 @@ module Aws::EMR
1831
2124
  # @return [String]
1832
2125
  #
1833
2126
  # @!attribute [rw] message
1834
- # The descriptive message including the error the EMR service has
1835
- # identified as the cause of step failure. This is text from an error
1836
- # log that describes the root cause of the failure.
2127
+ # The descriptive message including the error the Amazon EMR service
2128
+ # has identified as the cause of step failure. This is text from an
2129
+ # error log that describes the root cause of the failure.
1837
2130
  # @return [String]
1838
2131
  #
1839
2132
  # @!attribute [rw] log_file
@@ -1931,6 +2224,72 @@ module Aws::EMR
1931
2224
  include Aws::Structure
1932
2225
  end
1933
2226
 
2227
+ # @note When making an API call, you may pass GetStudioSessionMappingInput
2228
+ # data as a hash:
2229
+ #
2230
+ # {
2231
+ # studio_id: "XmlStringMaxLen256", # required
2232
+ # identity_id: "XmlStringMaxLen256",
2233
+ # identity_name: "XmlStringMaxLen256",
2234
+ # identity_type: "USER", # required, accepts USER, GROUP
2235
+ # }
2236
+ #
2237
+ # @!attribute [rw] studio_id
2238
+ # The ID of the Amazon EMR Studio.
2239
+ # @return [String]
2240
+ #
2241
+ # @!attribute [rw] identity_id
2242
+ # The globally unique identifier (GUID) of the user or group. For more
2243
+ # information, see [UserId][1] and [GroupId][2] in the *AWS SSO
2244
+ # Identity Store API Reference*. Either `IdentityName` or `IdentityId`
2245
+ # must be specified.
2246
+ #
2247
+ #
2248
+ #
2249
+ # [1]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId
2250
+ # [2]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId
2251
+ # @return [String]
2252
+ #
2253
+ # @!attribute [rw] identity_name
2254
+ # The name of the user or group to fetch. For more information, see
2255
+ # [UserName][1] and [DisplayName][2] in the *AWS SSO Identity Store
2256
+ # API Reference*. Either `IdentityName` or `IdentityId` must be
2257
+ # specified.
2258
+ #
2259
+ #
2260
+ #
2261
+ # [1]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId
2262
+ # [2]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName
2263
+ # @return [String]
2264
+ #
2265
+ # @!attribute [rw] identity_type
2266
+ # Specifies whether the identity to fetch is a user or a group.
2267
+ # @return [String]
2268
+ #
2269
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetStudioSessionMappingInput AWS API Documentation
2270
+ #
2271
+ class GetStudioSessionMappingInput < Struct.new(
2272
+ :studio_id,
2273
+ :identity_id,
2274
+ :identity_name,
2275
+ :identity_type)
2276
+ SENSITIVE = []
2277
+ include Aws::Structure
2278
+ end
2279
+
2280
+ # @!attribute [rw] session_mapping
2281
+ # The session mapping details for the specified Amazon EMR Studio and
2282
+ # identity, including session policy ARN and creation time.
2283
+ # @return [Types::SessionMappingDetail]
2284
+ #
2285
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetStudioSessionMappingOutput AWS API Documentation
2286
+ #
2287
+ class GetStudioSessionMappingOutput < Struct.new(
2288
+ :session_mapping)
2289
+ SENSITIVE = []
2290
+ include Aws::Structure
2291
+ end
2292
+
1934
2293
  # A job flow step consisting of a JAR file whose main function will be
1935
2294
  # executed. The main function submits a job for Hadoop to execute and
1936
2295
  # waits for the job to finish or fail.
@@ -1991,7 +2350,7 @@ module Aws::EMR
1991
2350
  #
1992
2351
  # @!attribute [rw] properties
1993
2352
  # The list of Java properties that are set when the step runs. You can
1994
- # use these properties to pass key value pairs to your main function.
2353
+ # use these properties to pass key-value pairs to your main function.
1995
2354
  # @return [Hash<String,String>]
1996
2355
  #
1997
2356
  # @!attribute [rw] main_class
@@ -2090,7 +2449,7 @@ module Aws::EMR
2090
2449
  # Describes an instance fleet, which is a group of EC2 instances that
2091
2450
  # host a particular node type (master, core, or task) in an Amazon EMR
2092
2451
  # cluster. Instance fleets can consist of a mix of instance types and
2093
- # On-Demand and Spot instances, which are provisioned to meet a defined
2452
+ # On-Demand and Spot Instances, which are provisioned to meet a defined
2094
2453
  # target capacity.
2095
2454
  #
2096
2455
  # <note markdown="1"> The instance fleet configuration is available only in Amazon EMR
@@ -2117,11 +2476,11 @@ module Aws::EMR
2117
2476
  #
2118
2477
  # @!attribute [rw] target_on_demand_capacity
2119
2478
  # The target capacity of On-Demand units for the instance fleet, which
2120
- # determines how many On-Demand instances to provision. When the
2479
+ # determines how many On-Demand Instances to provision. When the
2121
2480
  # instance fleet launches, Amazon EMR tries to provision On-Demand
2122
- # instances as specified by InstanceTypeConfig. Each instance
2481
+ # Instances as specified by InstanceTypeConfig. Each instance
2123
2482
  # configuration has a specified `WeightedCapacity`. When an On-Demand
2124
- # instance is provisioned, the `WeightedCapacity` units count toward
2483
+ # Instance is provisioned, the `WeightedCapacity` units count toward
2125
2484
  # the target capacity. Amazon EMR provisions instances until the
2126
2485
  # target capacity is totally fulfilled, even if this results in an
2127
2486
  # overage. For example, if there are 2 units remaining to fulfill
@@ -2131,7 +2490,7 @@ module Aws::EMR
2131
2490
  # InstanceFleet$ProvisionedOnDemandCapacity to determine the Spot
2132
2491
  # capacity units that have been provisioned for the instance fleet.
2133
2492
  #
2134
- # <note markdown="1"> If not specified or set to 0, only Spot instances are provisioned
2493
+ # <note markdown="1"> If not specified or set to 0, only Spot Instances are provisioned
2135
2494
  # for the instance fleet using `TargetSpotCapacity`. At least one of
2136
2495
  # `TargetSpotCapacity` and `TargetOnDemandCapacity` should be greater
2137
2496
  # than 0. For a master instance fleet, only one of
@@ -2278,11 +2637,11 @@ module Aws::EMR
2278
2637
  #
2279
2638
  # @!attribute [rw] target_on_demand_capacity
2280
2639
  # The target capacity of On-Demand units for the instance fleet, which
2281
- # determines how many On-Demand instances to provision. When the
2640
+ # determines how many On-Demand Instances to provision. When the
2282
2641
  # instance fleet launches, Amazon EMR tries to provision On-Demand
2283
- # instances as specified by InstanceTypeConfig. Each instance
2642
+ # Instances as specified by InstanceTypeConfig. Each instance
2284
2643
  # configuration has a specified `WeightedCapacity`. When an On-Demand
2285
- # instance is provisioned, the `WeightedCapacity` units count toward
2644
+ # Instance is provisioned, the `WeightedCapacity` units count toward
2286
2645
  # the target capacity. Amazon EMR provisions instances until the
2287
2646
  # target capacity is totally fulfilled, even if this results in an
2288
2647
  # overage. For example, if there are 2 units remaining to fulfill
@@ -2290,7 +2649,7 @@ module Aws::EMR
2290
2649
  # `WeightedCapacity` of 5 units, the instance is provisioned, and the
2291
2650
  # target capacity is exceeded by 3 units.
2292
2651
  #
2293
- # <note markdown="1"> If not specified or set to 0, only Spot instances are provisioned
2652
+ # <note markdown="1"> If not specified or set to 0, only Spot Instances are provisioned
2294
2653
  # for the instance fleet using `TargetSpotCapacity`. At least one of
2295
2654
  # `TargetSpotCapacity` and `TargetOnDemandCapacity` should be greater
2296
2655
  # than 0. For a master instance fleet, only one of
@@ -2302,10 +2661,10 @@ module Aws::EMR
2302
2661
  #
2303
2662
  # @!attribute [rw] target_spot_capacity
2304
2663
  # The target capacity of Spot units for the instance fleet, which
2305
- # determines how many Spot instances to provision. When the instance
2306
- # fleet launches, Amazon EMR tries to provision Spot instances as
2664
+ # determines how many Spot Instances to provision. When the instance
2665
+ # fleet launches, Amazon EMR tries to provision Spot Instances as
2307
2666
  # specified by InstanceTypeConfig. Each instance configuration has a
2308
- # specified `WeightedCapacity`. When a Spot instance is provisioned,
2667
+ # specified `WeightedCapacity`. When a Spot Instance is provisioned,
2309
2668
  # the `WeightedCapacity` units count toward the target capacity.
2310
2669
  # Amazon EMR provisions instances until the target capacity is totally
2311
2670
  # fulfilled, even if this results in an overage. For example, if there
@@ -2314,7 +2673,7 @@ module Aws::EMR
2314
2673
  # instance is provisioned, and the target capacity is exceeded by 3
2315
2674
  # units.
2316
2675
  #
2317
- # <note markdown="1"> If not specified or set to 0, only On-Demand instances are
2676
+ # <note markdown="1"> If not specified or set to 0, only On-Demand Instances are
2318
2677
  # provisioned for the instance fleet. At least one of
2319
2678
  # `TargetSpotCapacity` and `TargetOnDemandCapacity` should be greater
2320
2679
  # than 0. For a master instance fleet, only one of
@@ -2386,13 +2745,13 @@ module Aws::EMR
2386
2745
  include Aws::Structure
2387
2746
  end
2388
2747
 
2389
- # The launch specification for Spot instances in the fleet, which
2748
+ # The launch specification for Spot Instances in the fleet, which
2390
2749
  # determines the defined duration, provisioning timeout behavior, and
2391
2750
  # allocation strategy.
2392
2751
  #
2393
2752
  # <note markdown="1"> The instance fleet configuration is available only in Amazon EMR
2394
2753
  # versions 4.8.0 and later, excluding 5.0.x versions. On-Demand and Spot
2395
- # instance allocation strategies are available in Amazon EMR version
2754
+ # Instance allocation strategies are available in Amazon EMR version
2396
2755
  # 5.12.1 and later.
2397
2756
  #
2398
2757
  # </note>
@@ -2413,18 +2772,18 @@ module Aws::EMR
2413
2772
  # }
2414
2773
  #
2415
2774
  # @!attribute [rw] spot_specification
2416
- # The launch specification for Spot instances in the fleet, which
2775
+ # The launch specification for Spot Instances in the fleet, which
2417
2776
  # determines the defined duration, provisioning timeout behavior, and
2418
2777
  # allocation strategy.
2419
2778
  # @return [Types::SpotProvisioningSpecification]
2420
2779
  #
2421
2780
  # @!attribute [rw] on_demand_specification
2422
- # The launch specification for On-Demand instances in the instance
2781
+ # The launch specification for On-Demand Instances in the instance
2423
2782
  # fleet, which determines the allocation strategy.
2424
2783
  #
2425
2784
  # <note markdown="1"> The instance fleet configuration is available only in Amazon EMR
2426
2785
  # versions 4.8.0 and later, excluding 5.0.x versions. On-Demand
2427
- # instances allocation strategy is available in Amazon EMR version
2786
+ # Instances allocation strategy is available in Amazon EMR version
2428
2787
  # 5.12.1 and later.
2429
2788
  #
2430
2789
  # </note>
@@ -2569,7 +2928,7 @@ module Aws::EMR
2569
2928
  # @return [String]
2570
2929
  #
2571
2930
  # @!attribute [rw] bid_price
2572
- # The bid price for each EC2 Spot instance type as defined by
2931
+ # The bid price for each EC2 Spot Instance type as defined by
2573
2932
  # `InstanceType`. Expressed in USD. If neither `BidPrice` nor
2574
2933
  # `BidPriceAsPercentageOfOnDemandPrice` is provided,
2575
2934
  # `BidPriceAsPercentageOfOnDemandPrice` defaults to 100%.
@@ -2751,7 +3110,7 @@ module Aws::EMR
2751
3110
  # @return [String]
2752
3111
  #
2753
3112
  # @!attribute [rw] bid_price
2754
- # The bid price for each EC2 Spot instance type as defined by
3113
+ # The bid price for each EC2 Spot Instance type as defined by
2755
3114
  # `InstanceType`. Expressed in USD. If neither `BidPrice` nor
2756
3115
  # `BidPriceAsPercentageOfOnDemandPrice` is provided,
2757
3116
  # `BidPriceAsPercentageOfOnDemandPrice` defaults to 100%.
@@ -2823,7 +3182,7 @@ module Aws::EMR
2823
3182
  # @return [String]
2824
3183
  #
2825
3184
  # @!attribute [rw] bid_price
2826
- # The bid price for each EC2 Spot instance type as defined by
3185
+ # The bid price for each EC2 Spot Instance type as defined by
2827
3186
  # `InstanceType`. Expressed in USD. If neither `BidPrice` nor
2828
3187
  # `BidPriceAsPercentageOfOnDemandPrice` is provided,
2829
3188
  # `BidPriceAsPercentageOfOnDemandPrice` defaults to 100%.
@@ -2918,7 +3277,7 @@ module Aws::EMR
2918
3277
  # }
2919
3278
  #
2920
3279
  # @!attribute [rw] instance_group_id
2921
- # Unique ID of the instance group to expand or shrink.
3280
+ # Unique ID of the instance group to modify.
2922
3281
  # @return [String]
2923
3282
  #
2924
3283
  # @!attribute [rw] instance_count
@@ -3126,7 +3485,7 @@ module Aws::EMR
3126
3485
  # An instance type configuration for each instance type in an instance
3127
3486
  # fleet, which determines the EC2 instances Amazon EMR attempts to
3128
3487
  # provision to fulfill On-Demand and Spot target capacities. There can
3129
- # be a maximum of 5 instance type configurations in a fleet.
3488
+ # be a maximum of five instance type configurations in a fleet.
3130
3489
  #
3131
3490
  # <note markdown="1"> The instance fleet configuration is available only in Amazon EMR
3132
3491
  # versions 4.8.0 and later, excluding 5.0.x versions.
@@ -3180,7 +3539,7 @@ module Aws::EMR
3180
3539
  # @return [Integer]
3181
3540
  #
3182
3541
  # @!attribute [rw] bid_price
3183
- # The bid price for each EC2 Spot instance type as defined by
3542
+ # The bid price for each EC2 Spot Instance type as defined by
3184
3543
  # `InstanceType`. Expressed in USD. If neither `BidPrice` nor
3185
3544
  # `BidPriceAsPercentageOfOnDemandPrice` is provided,
3186
3545
  # `BidPriceAsPercentageOfOnDemandPrice` defaults to 100%.
@@ -3188,15 +3547,15 @@ module Aws::EMR
3188
3547
  #
3189
3548
  # @!attribute [rw] bid_price_as_percentage_of_on_demand_price
3190
3549
  # The bid price, as a percentage of On-Demand price, for each EC2 Spot
3191
- # instance as defined by `InstanceType`. Expressed as a number (for
3550
+ # Instance as defined by `InstanceType`. Expressed as a number (for
3192
3551
  # example, 20 specifies 20%). If neither `BidPrice` nor
3193
3552
  # `BidPriceAsPercentageOfOnDemandPrice` is provided,
3194
3553
  # `BidPriceAsPercentageOfOnDemandPrice` defaults to 100%.
3195
3554
  # @return [Float]
3196
3555
  #
3197
3556
  # @!attribute [rw] ebs_configuration
3198
- # The configuration of Amazon Elastic Block Storage (EBS) attached to
3199
- # each instance as defined by `InstanceType`.
3557
+ # The configuration of Amazon Elastic Block Storage (Amazon EBS)
3558
+ # attached to each instance as defined by `InstanceType`.
3200
3559
  # @return [Types::EbsConfiguration]
3201
3560
  #
3202
3561
  # @!attribute [rw] configurations
@@ -3239,13 +3598,13 @@ module Aws::EMR
3239
3598
  # @return [Integer]
3240
3599
  #
3241
3600
  # @!attribute [rw] bid_price
3242
- # The bid price for each EC2 Spot instance type as defined by
3601
+ # The bid price for each EC2 Spot Instance type as defined by
3243
3602
  # `InstanceType`. Expressed in USD.
3244
3603
  # @return [String]
3245
3604
  #
3246
3605
  # @!attribute [rw] bid_price_as_percentage_of_on_demand_price
3247
3606
  # The bid price, as a percentage of On-Demand price, for each EC2 Spot
3248
- # instance as defined by `InstanceType`. Expressed as a number (for
3607
+ # Instance as defined by `InstanceType`. Expressed as a number (for
3249
3608
  # example, 20 specifies 20%).
3250
3609
  # @return [Float]
3251
3610
  #
@@ -3256,8 +3615,8 @@ module Aws::EMR
3256
3615
  # @return [Array<Types::Configuration>]
3257
3616
  #
3258
3617
  # @!attribute [rw] ebs_block_devices
3259
- # The configuration of Amazon Elastic Block Storage (EBS) attached to
3260
- # each instance as defined by `InstanceType`.
3618
+ # The configuration of Amazon Elastic Block Storage (Amazon EBS)
3619
+ # attached to each instance as defined by `InstanceType`.
3261
3620
  # @return [Array<Types::EbsBlockDevice>]
3262
3621
  #
3263
3622
  # @!attribute [rw] ebs_optimized
@@ -3363,9 +3722,9 @@ module Aws::EMR
3363
3722
  # @return [Array<Types::BootstrapActionDetail>]
3364
3723
  #
3365
3724
  # @!attribute [rw] supported_products
3366
- # A list of strings set by third party software when the job flow is
3367
- # launched. If you are not using third party software to manage the
3368
- # job flow this value is empty.
3725
+ # A list of strings set by third-party software when the job flow is
3726
+ # launched. If you are not using third-party software to manage the
3727
+ # job flow, this value is empty.
3369
3728
  # @return [Array<String>]
3370
3729
  #
3371
3730
  # @!attribute [rw] visible_to_all_users
@@ -3386,8 +3745,8 @@ module Aws::EMR
3386
3745
  # @return [String]
3387
3746
  #
3388
3747
  # @!attribute [rw] service_role
3389
- # The IAM role that will be assumed by the Amazon EMR service to
3390
- # access AWS resources on your behalf.
3748
+ # The IAM role that is assumed by the Amazon EMR service to access AWS
3749
+ # resources on your behalf.
3391
3750
  # @return [String]
3392
3751
  #
3393
3752
  # @!attribute [rw] auto_scaling_role
@@ -3405,13 +3764,13 @@ module Aws::EMR
3405
3764
  # to terminate the instance was submitted. This option is only
3406
3765
  # available with Amazon EMR 5.1.0 and later and is the default for
3407
3766
  # clusters created using that version. `TERMINATE_AT_TASK_COMPLETION`
3408
- # indicates that Amazon EMR blacklists and drains tasks from nodes
3409
- # before terminating the Amazon EC2 instances, regardless of the
3410
- # instance-hour boundary. With either behavior, Amazon EMR removes the
3411
- # least active nodes first and blocks instance termination if it could
3412
- # lead to HDFS corruption. `TERMINATE_AT_TASK_COMPLETION` available
3413
- # only in Amazon EMR version 4.1.0 and later, and is the default for
3414
- # versions of Amazon EMR earlier than 5.1.0.
3767
+ # indicates that Amazon EMR adds nodes to a deny list and drains tasks
3768
+ # from nodes before terminating the Amazon EC2 instances, regardless
3769
+ # of the instance-hour boundary. With either behavior, Amazon EMR
3770
+ # removes the least active nodes first and blocks instance termination
3771
+ # if it could lead to HDFS corruption. `TERMINATE_AT_TASK_COMPLETION`
3772
+ # available only in Amazon EMR version 4.1.0 and later, and is the
3773
+ # default for versions of Amazon EMR earlier than 5.1.0.
3415
3774
  # @return [String]
3416
3775
  #
3417
3776
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/JobFlowDetail AWS API Documentation
@@ -3478,10 +3837,10 @@ module Aws::EMR
3478
3837
 
3479
3838
  # A description of the Amazon EC2 instance on which the cluster (job
3480
3839
  # flow) runs. A valid JobFlowInstancesConfig must contain either
3481
- # InstanceGroups or InstanceFleets, which is the recommended
3482
- # configuration. They cannot be used together. You may also have
3483
- # MasterInstanceType, SlaveInstanceType, and InstanceCount (all three
3484
- # must be present), but we don't recommend this configuration.
3840
+ # InstanceGroups or InstanceFleets. They cannot be used together. You
3841
+ # may also have MasterInstanceType, SlaveInstanceType, and InstanceCount
3842
+ # (all three must be present), but we don't recommend this
3843
+ # configuration.
3485
3844
  #
3486
3845
  # @note When making an API call, you may pass JobFlowInstancesConfig
3487
3846
  # data as a hash:
@@ -3657,8 +4016,8 @@ module Aws::EMR
3657
4016
  # @return [Array<Types::InstanceFleetConfig>]
3658
4017
  #
3659
4018
  # @!attribute [rw] ec2_key_name
3660
- # The name of the EC2 key pair that can be used to ssh to the master
3661
- # node as the user called "hadoop."
4019
+ # The name of the EC2 key pair that can be used to connect to the
4020
+ # master node using SSH as the user called "hadoop."
3662
4021
  # @return [String]
3663
4022
  #
3664
4023
  # @!attribute [rw] placement
@@ -3678,12 +4037,12 @@ module Aws::EMR
3678
4037
  #
3679
4038
  # @!attribute [rw] hadoop_version
3680
4039
  # Applies only to Amazon EMR release versions earlier than 4.0. The
3681
- # Hadoop version for the cluster. Valid inputs are "0.18"
3682
- # (deprecated), "0.20" (deprecated), "0.20.205" (deprecated),
3683
- # "1.0.3", "2.2.0", or "2.4.0". If you do not set this value,
3684
- # the default of 0.18 is used, unless the `AmiVersion` parameter is
3685
- # set in the RunJobFlow call, in which case the default version of
3686
- # Hadoop for that AMI version is used.
4040
+ # Hadoop version for the cluster. Valid inputs are "0.18" (no longer
4041
+ # maintained), "0.20" (no longer maintained), "0.20.205" (no
4042
+ # longer maintained), "1.0.3", "2.2.0", or "2.4.0". If you do
4043
+ # not set this value, the default of 0.18 is used, unless the
4044
+ # `AmiVersion` parameter is set in the RunJobFlow call, in which case
4045
+ # the default version of Hadoop for that AMI version is used.
3687
4046
  # @return [String]
3688
4047
  #
3689
4048
  # @!attribute [rw] ec2_subnet_id
@@ -3788,17 +4147,17 @@ module Aws::EMR
3788
4147
  #
3789
4148
  # @!attribute [rw] normalized_instance_hours
3790
4149
  # An approximation of the cost of the cluster, represented in
3791
- # m1.small/hours. This value is incremented one time for every hour
3792
- # that an m1.small runs. Larger instances are weighted more, so an
3793
- # Amazon EC2 instance that is roughly four times more expensive would
3794
- # result in the normalized instance hours being incremented by four.
3795
- # This result is only an approximation and does not reflect the actual
3796
- # billing rate.
4150
+ # m1.small/hours. This value is increased one time for every hour that
4151
+ # an m1.small instance runs. Larger instances are weighted more
4152
+ # heavily, so an Amazon EC2 instance that is roughly four times more
4153
+ # expensive would result in the normalized instance hours being
4154
+ # increased incrementally four times. This result is only an
4155
+ # approximation and does not reflect the actual billing rate.
3797
4156
  # @return [Integer]
3798
4157
  #
3799
4158
  # @!attribute [rw] ec2_key_name
3800
- # The name of an Amazon EC2 key pair that can be used to ssh to the
3801
- # master node.
4159
+ # The name of an Amazon EC2 key pair that can be used to connect to
4160
+ # the master node using SSH.
3802
4161
  # @return [String]
3803
4162
  #
3804
4163
  # @!attribute [rw] ec2_subnet_id
@@ -3847,7 +4206,7 @@ module Aws::EMR
3847
4206
 
3848
4207
  # Attributes for Kerberos configuration when Kerberos authentication is
3849
4208
  # enabled using a security configuration. For more information see [Use
3850
- # Kerberos Authentication][1] in the *EMR Management Guide*.
4209
+ # Kerberos Authentication][1] in the *Amazon EMR Management Guide*.
3851
4210
  #
3852
4211
  #
3853
4212
  #
@@ -3903,7 +4262,7 @@ module Aws::EMR
3903
4262
  include Aws::Structure
3904
4263
  end
3905
4264
 
3906
- # A key value pair.
4265
+ # A key-value pair.
3907
4266
  #
3908
4267
  # @note When making an API call, you may pass KeyValue
3909
4268
  # data as a hash:
@@ -3914,7 +4273,7 @@ module Aws::EMR
3914
4273
  # }
3915
4274
  #
3916
4275
  # @!attribute [rw] key
3917
- # The unique identifier of a key value pair.
4276
+ # The unique identifier of a key-value pair.
3918
4277
  # @return [String]
3919
4278
  #
3920
4279
  # @!attribute [rw] value
@@ -4411,6 +4770,96 @@ module Aws::EMR
4411
4770
  include Aws::Structure
4412
4771
  end
4413
4772
 
4773
+ # @note When making an API call, you may pass ListStudioSessionMappingsInput
4774
+ # data as a hash:
4775
+ #
4776
+ # {
4777
+ # studio_id: "XmlStringMaxLen256",
4778
+ # identity_type: "USER", # accepts USER, GROUP
4779
+ # marker: "Marker",
4780
+ # }
4781
+ #
4782
+ # @!attribute [rw] studio_id
4783
+ # The ID of the Amazon EMR Studio.
4784
+ # @return [String]
4785
+ #
4786
+ # @!attribute [rw] identity_type
4787
+ # Specifies whether to return session mappings for users or groups. If
4788
+ # not specified, the results include session mapping details for both
4789
+ # users and groups.
4790
+ # @return [String]
4791
+ #
4792
+ # @!attribute [rw] marker
4793
+ # The pagination token that indicates the set of results to retrieve.
4794
+ # @return [String]
4795
+ #
4796
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudioSessionMappingsInput AWS API Documentation
4797
+ #
4798
+ class ListStudioSessionMappingsInput < Struct.new(
4799
+ :studio_id,
4800
+ :identity_type,
4801
+ :marker)
4802
+ SENSITIVE = []
4803
+ include Aws::Structure
4804
+ end
4805
+
4806
+ # @!attribute [rw] session_mappings
4807
+ # A list of session mapping summary objects. Each object includes
4808
+ # session mapping details such as creation time, identity type (user
4809
+ # or group), and Studio ID.
4810
+ # @return [Array<Types::SessionMappingSummary>]
4811
+ #
4812
+ # @!attribute [rw] marker
4813
+ # The pagination token that indicates the next set of results to
4814
+ # retrieve.
4815
+ # @return [String]
4816
+ #
4817
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudioSessionMappingsOutput AWS API Documentation
4818
+ #
4819
+ class ListStudioSessionMappingsOutput < Struct.new(
4820
+ :session_mappings,
4821
+ :marker)
4822
+ SENSITIVE = []
4823
+ include Aws::Structure
4824
+ end
4825
+
4826
+ # @note When making an API call, you may pass ListStudiosInput
4827
+ # data as a hash:
4828
+ #
4829
+ # {
4830
+ # marker: "Marker",
4831
+ # }
4832
+ #
4833
+ # @!attribute [rw] marker
4834
+ # The pagination token that indicates the set of results to retrieve.
4835
+ # @return [String]
4836
+ #
4837
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudiosInput AWS API Documentation
4838
+ #
4839
+ class ListStudiosInput < Struct.new(
4840
+ :marker)
4841
+ SENSITIVE = []
4842
+ include Aws::Structure
4843
+ end
4844
+
4845
+ # @!attribute [rw] studios
4846
+ # The list of Studio summary objects.
4847
+ # @return [Array<Types::StudioSummary>]
4848
+ #
4849
+ # @!attribute [rw] marker
4850
+ # The pagination token that indicates the next set of results to
4851
+ # retrieve.
4852
+ # @return [String]
4853
+ #
4854
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudiosOutput AWS API Documentation
4855
+ #
4856
+ class ListStudiosOutput < Struct.new(
4857
+ :studios,
4858
+ :marker)
4859
+ SENSITIVE = []
4860
+ include Aws::Structure
4861
+ end
4862
+
4414
4863
  # Managed scaling policy for an Amazon EMR cluster. The policy specifies
4415
4864
  # the limits for resources that can be added or terminated from a
4416
4865
  # cluster. The policy only applies to the core and task nodes. The
@@ -4686,7 +5135,7 @@ module Aws::EMR
4686
5135
  #
4687
5136
  # @!attribute [rw] tags
4688
5137
  # A list of tags associated with a notebook execution. Tags are
4689
- # user-defined key value pairs that consist of a required key string
5138
+ # user-defined key-value pairs that consist of a required key string
4690
5139
  # with a maximum of 128 characters and an optional value string with a
4691
5140
  # maximum of 256 characters.
4692
5141
  # @return [Array<Types::Tag>]
@@ -4779,12 +5228,12 @@ module Aws::EMR
4779
5228
  include Aws::Structure
4780
5229
  end
4781
5230
 
4782
- # The launch specification for On-Demand instances in the instance
5231
+ # The launch specification for On-Demand Instances in the instance
4783
5232
  # fleet, which determines the allocation strategy.
4784
5233
  #
4785
5234
  # <note markdown="1"> The instance fleet configuration is available only in Amazon EMR
4786
5235
  # versions 4.8.0 and later, excluding 5.0.x versions. On-Demand
4787
- # instances allocation strategy is available in Amazon EMR version
5236
+ # Instances allocation strategy is available in Amazon EMR version
4788
5237
  # 5.12.1 and later.
4789
5238
  #
4790
5239
  # </note>
@@ -4797,7 +5246,7 @@ module Aws::EMR
4797
5246
  # }
4798
5247
  #
4799
5248
  # @!attribute [rw] allocation_strategy
4800
- # Specifies the strategy to use in launching On-Demand instance
5249
+ # Specifies the strategy to use in launching On-Demand Instance
4801
5250
  # fleets. Currently, the only option is lowest-price (the default),
4802
5251
  # which launches the lowest price first.
4803
5252
  # @return [String]
@@ -4810,6 +5259,44 @@ module Aws::EMR
4810
5259
  include Aws::Structure
4811
5260
  end
4812
5261
 
5262
+ # Placement group configuration for an Amazon EMR cluster. The
5263
+ # configuration specifies the placement strategy that can be applied to
5264
+ # instance roles during cluster creation.
5265
+ #
5266
+ # To use this configuration, consider attaching managed policy
5267
+ # AmazonElasticMapReducePlacementGroupPolicy to the EMR role.
5268
+ #
5269
+ # @note When making an API call, you may pass PlacementGroupConfig
5270
+ # data as a hash:
5271
+ #
5272
+ # {
5273
+ # instance_role: "MASTER", # required, accepts MASTER, CORE, TASK
5274
+ # placement_strategy: "SPREAD", # accepts SPREAD, PARTITION, CLUSTER, NONE
5275
+ # }
5276
+ #
5277
+ # @!attribute [rw] instance_role
5278
+ # Role of the instance in the cluster.
5279
+ #
5280
+ # Starting with Amazon EMR version 5.23.0, the only supported instance
5281
+ # role is `MASTER`.
5282
+ # @return [String]
5283
+ #
5284
+ # @!attribute [rw] placement_strategy
5285
+ # EC2 Placement Group strategy associated with instance role.
5286
+ #
5287
+ # Starting with Amazon EMR version 5.23.0, the only supported
5288
+ # placement strategy is `SPREAD` for the `MASTER` instance role.
5289
+ # @return [String]
5290
+ #
5291
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PlacementGroupConfig AWS API Documentation
5292
+ #
5293
+ class PlacementGroupConfig < Struct.new(
5294
+ :instance_role,
5295
+ :placement_strategy)
5296
+ SENSITIVE = []
5297
+ include Aws::Structure
5298
+ end
5299
+
4813
5300
  # The Amazon EC2 Availability Zone configuration of the cluster (job
4814
5301
  # flow).
4815
5302
  #
@@ -5394,6 +5881,12 @@ module Aws::EMR
5394
5881
  # maximum_core_capacity_units: 1,
5395
5882
  # },
5396
5883
  # },
5884
+ # placement_group_configs: [
5885
+ # {
5886
+ # instance_role: "MASTER", # required, accepts MASTER, CORE, TASK
5887
+ # placement_strategy: "SPREAD", # accepts SPREAD, PARTITION, CLUSTER, NONE
5888
+ # },
5889
+ # ],
5397
5890
  # }
5398
5891
  #
5399
5892
  # @!attribute [rw] name
@@ -5407,9 +5900,9 @@ module Aws::EMR
5407
5900
  #
5408
5901
  # @!attribute [rw] log_encryption_kms_key_id
5409
5902
  # The AWS KMS customer master key (CMK) used for encrypting log files.
5410
- # If a value is not provided, the logs will remain encrypted by
5411
- # AES-256. This attribute is only available with EMR version 5.30.0
5412
- # and later, excluding EMR 6.0.0.
5903
+ # If a value is not provided, the logs remain encrypted by AES-256.
5904
+ # This attribute is only available with Amazon EMR version 5.30.0 and
5905
+ # later, excluding Amazon EMR 6.0.0.
5413
5906
  # @return [String]
5414
5907
  #
5415
5908
  # @!attribute [rw] additional_info
@@ -5567,11 +6060,11 @@ module Aws::EMR
5567
6060
  # the request to terminate the instance was submitted. This option is
5568
6061
  # only available with Amazon EMR 5.1.0 and later and is the default
5569
6062
  # for clusters created using that version.
5570
- # `TERMINATE_AT_TASK_COMPLETION` indicates that Amazon EMR blacklists
5571
- # and drains tasks from nodes before terminating the Amazon EC2
5572
- # instances, regardless of the instance-hour boundary. With either
5573
- # behavior, Amazon EMR removes the least active nodes first and blocks
5574
- # instance termination if it could lead to HDFS corruption.
6063
+ # `TERMINATE_AT_TASK_COMPLETION` indicates that Amazon EMR adds nodes
6064
+ # to a deny list and drains tasks from nodes before terminating the
6065
+ # Amazon EC2 instances, regardless of the instance-hour boundary. With
6066
+ # either behavior, Amazon EMR removes the least active nodes first and
6067
+ # blocks instance termination if it could lead to HDFS corruption.
5575
6068
  # `TERMINATE_AT_TASK_COMPLETION` available only in Amazon EMR version
5576
6069
  # 4.1.0 and later, and is the default for versions of Amazon EMR
5577
6070
  # earlier than 5.1.0.
@@ -5599,9 +6092,9 @@ module Aws::EMR
5599
6092
  # @return [String]
5600
6093
  #
5601
6094
  # @!attribute [rw] ebs_root_volume_size
5602
- # The size, in GiB, of the EBS root device volume of the Linux AMI
5603
- # that is used for each EC2 instance. Available in Amazon EMR version
5604
- # 4.x and later.
6095
+ # The size, in GiB, of the Amazon EBS root device volume of the Linux
6096
+ # AMI that is used for each EC2 instance. Available in Amazon EMR
6097
+ # version 4.x and later.
5605
6098
  # @return [Integer]
5606
6099
  #
5607
6100
  # @!attribute [rw] repo_upgrade_on_boot
@@ -5616,7 +6109,8 @@ module Aws::EMR
5616
6109
  # @!attribute [rw] kerberos_attributes
5617
6110
  # Attributes for Kerberos configuration when Kerberos authentication
5618
6111
  # is enabled using a security configuration. For more information see
5619
- # [Use Kerberos Authentication][1] in the *EMR Management Guide*.
6112
+ # [Use Kerberos Authentication][1] in the *Amazon EMR Management
6113
+ # Guide*.
5620
6114
  #
5621
6115
  #
5622
6116
  #
@@ -5632,6 +6126,11 @@ module Aws::EMR
5632
6126
  # The specified managed scaling policy for an Amazon EMR cluster.
5633
6127
  # @return [Types::ManagedScalingPolicy]
5634
6128
  #
6129
+ # @!attribute [rw] placement_group_configs
6130
+ # The specified placement group configuration for an Amazon EMR
6131
+ # cluster.
6132
+ # @return [Array<Types::PlacementGroupConfig>]
6133
+ #
5635
6134
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RunJobFlowInput AWS API Documentation
5636
6135
  #
5637
6136
  class RunJobFlowInput < Struct.new(
@@ -5660,7 +6159,8 @@ module Aws::EMR
5660
6159
  :repo_upgrade_on_boot,
5661
6160
  :kerberos_attributes,
5662
6161
  :step_concurrency_level,
5663
- :managed_scaling_policy)
6162
+ :managed_scaling_policy,
6163
+ :placement_group_configs)
5664
6164
  SENSITIVE = []
5665
6165
  include Aws::Structure
5666
6166
  end
@@ -5907,6 +6407,110 @@ module Aws::EMR
5907
6407
  include Aws::Structure
5908
6408
  end
5909
6409
 
6410
+ # Details for an Amazon EMR Studio session mapping including creation
6411
+ # time, user or group ID, Studio ID, and so on.
6412
+ #
6413
+ # @!attribute [rw] studio_id
6414
+ # The ID of the Amazon EMR Studio.
6415
+ # @return [String]
6416
+ #
6417
+ # @!attribute [rw] identity_id
6418
+ # The globally unique identifier (GUID) of the user or group.
6419
+ # @return [String]
6420
+ #
6421
+ # @!attribute [rw] identity_name
6422
+ # The name of the user or group. For more information, see
6423
+ # [UserName][1] and [DisplayName][2] in the *AWS SSO Identity Store
6424
+ # API Reference*.
6425
+ #
6426
+ #
6427
+ #
6428
+ # [1]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId
6429
+ # [2]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName
6430
+ # @return [String]
6431
+ #
6432
+ # @!attribute [rw] identity_type
6433
+ # Specifies whether the identity mapped to the Studio is a user or a
6434
+ # group.
6435
+ # @return [String]
6436
+ #
6437
+ # @!attribute [rw] session_policy_arn
6438
+ # The Amazon Resource Name (ARN) of the session policy associated with
6439
+ # the user or group.
6440
+ # @return [String]
6441
+ #
6442
+ # @!attribute [rw] creation_time
6443
+ # The time the session mapping was created.
6444
+ # @return [Time]
6445
+ #
6446
+ # @!attribute [rw] last_modified_time
6447
+ # The time the session mapping was last modified.
6448
+ # @return [Time]
6449
+ #
6450
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SessionMappingDetail AWS API Documentation
6451
+ #
6452
+ class SessionMappingDetail < Struct.new(
6453
+ :studio_id,
6454
+ :identity_id,
6455
+ :identity_name,
6456
+ :identity_type,
6457
+ :session_policy_arn,
6458
+ :creation_time,
6459
+ :last_modified_time)
6460
+ SENSITIVE = []
6461
+ include Aws::Structure
6462
+ end
6463
+
6464
+ # Details for an Amazon EMR Studio session mapping. The details do not
6465
+ # include the time the session mapping was last modified.
6466
+ #
6467
+ # @!attribute [rw] studio_id
6468
+ # The ID of the Amazon EMR Studio.
6469
+ # @return [String]
6470
+ #
6471
+ # @!attribute [rw] identity_id
6472
+ # The globally unique identifier (GUID) of the user or group from the
6473
+ # AWS SSO Identity Store.
6474
+ # @return [String]
6475
+ #
6476
+ # @!attribute [rw] identity_name
6477
+ # The name of the user or group. For more information, see
6478
+ # [UserName][1] and [DisplayName][2] in the *AWS SSO Identity Store
6479
+ # API Reference*.
6480
+ #
6481
+ #
6482
+ #
6483
+ # [1]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId
6484
+ # [2]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName
6485
+ # @return [String]
6486
+ #
6487
+ # @!attribute [rw] identity_type
6488
+ # Specifies whether the identity mapped to the Studio is a user or a
6489
+ # group.
6490
+ # @return [String]
6491
+ #
6492
+ # @!attribute [rw] session_policy_arn
6493
+ # The Amazon Resource Name (ARN) of the session policy associated with
6494
+ # the user or group.
6495
+ # @return [String]
6496
+ #
6497
+ # @!attribute [rw] creation_time
6498
+ # The time the session mapping was created.
6499
+ # @return [Time]
6500
+ #
6501
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SessionMappingSummary AWS API Documentation
6502
+ #
6503
+ class SessionMappingSummary < Struct.new(
6504
+ :studio_id,
6505
+ :identity_id,
6506
+ :identity_name,
6507
+ :identity_type,
6508
+ :session_policy_arn,
6509
+ :creation_time)
6510
+ SENSITIVE = []
6511
+ include Aws::Structure
6512
+ end
6513
+
5910
6514
  # The input argument to the TerminationProtection operation.
5911
6515
  #
5912
6516
  # @note When making an API call, you may pass SetTerminationProtectionInput
@@ -6059,12 +6663,12 @@ module Aws::EMR
6059
6663
  include Aws::Structure
6060
6664
  end
6061
6665
 
6062
- # The launch specification for Spot instances in the instance fleet,
6666
+ # The launch specification for Spot Instances in the instance fleet,
6063
6667
  # which determines the defined duration, provisioning timeout behavior,
6064
6668
  # and allocation strategy.
6065
6669
  #
6066
6670
  # <note markdown="1"> The instance fleet configuration is available only in Amazon EMR
6067
- # versions 4.8.0 and later, excluding 5.0.x versions. Spot instance
6671
+ # versions 4.8.0 and later, excluding 5.0.x versions. Spot Instance
6068
6672
  # allocation strategy is available in Amazon EMR version 5.12.1 and
6069
6673
  # later.
6070
6674
  #
@@ -6081,7 +6685,7 @@ module Aws::EMR
6081
6685
  # }
6082
6686
  #
6083
6687
  # @!attribute [rw] timeout_duration_minutes
6084
- # The spot provisioning timeout period in minutes. If Spot instances
6688
+ # The spot provisioning timeout period in minutes. If Spot Instances
6085
6689
  # are not provisioned within this time period, the `TimeOutAction` is
6086
6690
  # taken. Minimum value is 5 and maximum value is 1440. The timeout
6087
6691
  # applies only during initial provisioning, when the cluster is first
@@ -6091,29 +6695,29 @@ module Aws::EMR
6091
6695
  # @!attribute [rw] timeout_action
6092
6696
  # The action to take when `TargetSpotCapacity` has not been fulfilled
6093
6697
  # when the `TimeoutDurationMinutes` has expired; that is, when all
6094
- # Spot instances could not be provisioned within the Spot provisioning
6698
+ # Spot Instances could not be provisioned within the Spot provisioning
6095
6699
  # timeout. Valid values are `TERMINATE_CLUSTER` and
6096
6700
  # `SWITCH_TO_ON_DEMAND`. SWITCH\_TO\_ON\_DEMAND specifies that if no
6097
- # Spot instances are available, On-Demand Instances should be
6701
+ # Spot Instances are available, On-Demand Instances should be
6098
6702
  # provisioned to fulfill any remaining Spot capacity.
6099
6703
  # @return [String]
6100
6704
  #
6101
6705
  # @!attribute [rw] block_duration_minutes
6102
- # The defined duration for Spot instances (also known as Spot blocks)
6103
- # in minutes. When specified, the Spot instance does not terminate
6706
+ # The defined duration for Spot Instances (also known as Spot blocks)
6707
+ # in minutes. When specified, the Spot Instance does not terminate
6104
6708
  # before the defined duration expires, and defined duration pricing
6105
6709
  # for Spot instances applies. Valid values are 60, 120, 180, 240, 300,
6106
- # or 360. The duration period starts as soon as a Spot instance
6710
+ # or 360. The duration period starts as soon as a Spot Instance
6107
6711
  # receives its instance ID. At the end of the duration, Amazon EC2
6108
- # marks the Spot instance for termination and provides a Spot instance
6712
+ # marks the Spot Instance for termination and provides a Spot Instance
6109
6713
  # termination notice, which gives the instance a two-minute warning
6110
6714
  # before it terminates.
6111
6715
  # @return [Integer]
6112
6716
  #
6113
6717
  # @!attribute [rw] allocation_strategy
6114
- # Specifies the strategy to use in launching Spot instance fleets.
6718
+ # Specifies the strategy to use in launching Spot Instance fleets.
6115
6719
  # Currently, the only option is capacity-optimized (the default),
6116
- # which launches instances from Spot instance pools with optimal
6720
+ # which launches instances from Spot Instance pools with optimal
6117
6721
  # capacity for the number of instances that are launching.
6118
6722
  # @return [String]
6119
6723
  #
@@ -6194,7 +6798,7 @@ module Aws::EMR
6194
6798
  #
6195
6799
  # @!attribute [rw] tags
6196
6800
  # A list of tags associated with a notebook execution. Tags are
6197
- # user-defined key value pairs that consist of a required key string
6801
+ # user-defined key-value pairs that consist of a required key string
6198
6802
  # with a maximum of 128 characters and an optional value string with a
6199
6803
  # maximum of 256 characters.
6200
6804
  # @return [Array<Types::Tag>]
@@ -6493,6 +7097,142 @@ module Aws::EMR
6493
7097
  include Aws::Structure
6494
7098
  end
6495
7099
 
7100
+ # Details for an Amazon EMR Studio including ID, creation time, name,
7101
+ # and so on.
7102
+ #
7103
+ # @!attribute [rw] studio_id
7104
+ # The ID of the EMR Studio.
7105
+ # @return [String]
7106
+ #
7107
+ # @!attribute [rw] studio_arn
7108
+ # The Amazon Resource Name (ARN) of the EMR Studio.
7109
+ # @return [String]
7110
+ #
7111
+ # @!attribute [rw] name
7112
+ # The name of the EMR Studio.
7113
+ # @return [String]
7114
+ #
7115
+ # @!attribute [rw] description
7116
+ # The detailed description of the EMR Studio.
7117
+ # @return [String]
7118
+ #
7119
+ # @!attribute [rw] auth_mode
7120
+ # Specifies whether the Studio authenticates users using single
7121
+ # sign-on (SSO) or IAM.
7122
+ # @return [String]
7123
+ #
7124
+ # @!attribute [rw] vpc_id
7125
+ # The ID of the VPC associated with the EMR Studio.
7126
+ # @return [String]
7127
+ #
7128
+ # @!attribute [rw] subnet_ids
7129
+ # The list of IDs of the subnets associated with the Amazon EMR
7130
+ # Studio.
7131
+ # @return [Array<String>]
7132
+ #
7133
+ # @!attribute [rw] service_role
7134
+ # The name of the IAM role assumed by the Amazon EMR Studio.
7135
+ # @return [String]
7136
+ #
7137
+ # @!attribute [rw] user_role
7138
+ # The name of the IAM role assumed by users logged in to the Amazon
7139
+ # EMR Studio.
7140
+ # @return [String]
7141
+ #
7142
+ # @!attribute [rw] workspace_security_group_id
7143
+ # The ID of the Workspace security group associated with the Amazon
7144
+ # EMR Studio. The Workspace security group allows outbound network
7145
+ # traffic to resources in the Engine security group and to the
7146
+ # internet.
7147
+ # @return [String]
7148
+ #
7149
+ # @!attribute [rw] engine_security_group_id
7150
+ # The ID of the Engine security group associated with the Amazon EMR
7151
+ # Studio. The Engine security group allows inbound network traffic
7152
+ # from resources in the Workspace security group.
7153
+ # @return [String]
7154
+ #
7155
+ # @!attribute [rw] url
7156
+ # The unique access URL of the Amazon EMR Studio.
7157
+ # @return [String]
7158
+ #
7159
+ # @!attribute [rw] creation_time
7160
+ # The time the Amazon EMR Studio was created.
7161
+ # @return [Time]
7162
+ #
7163
+ # @!attribute [rw] default_s3_location
7164
+ # The default Amazon S3 location to back up Amazon EMR Studio
7165
+ # Workspaces and notebook files.
7166
+ # @return [String]
7167
+ #
7168
+ # @!attribute [rw] tags
7169
+ # A list of tags associated with the Amazon EMR Studio.
7170
+ # @return [Array<Types::Tag>]
7171
+ #
7172
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/Studio AWS API Documentation
7173
+ #
7174
+ class Studio < Struct.new(
7175
+ :studio_id,
7176
+ :studio_arn,
7177
+ :name,
7178
+ :description,
7179
+ :auth_mode,
7180
+ :vpc_id,
7181
+ :subnet_ids,
7182
+ :service_role,
7183
+ :user_role,
7184
+ :workspace_security_group_id,
7185
+ :engine_security_group_id,
7186
+ :url,
7187
+ :creation_time,
7188
+ :default_s3_location,
7189
+ :tags)
7190
+ SENSITIVE = []
7191
+ include Aws::Structure
7192
+ end
7193
+
7194
+ # Details for an Amazon EMR Studio, including ID, Name, VPC, and
7195
+ # Description. The details do not include subnets, IAM roles, security
7196
+ # groups, or tags associated with the Studio.
7197
+ #
7198
+ # @!attribute [rw] studio_id
7199
+ # The ID of the Amazon EMR Studio.
7200
+ # @return [String]
7201
+ #
7202
+ # @!attribute [rw] name
7203
+ # The name of the Amazon EMR Studio.
7204
+ # @return [String]
7205
+ #
7206
+ # @!attribute [rw] vpc_id
7207
+ # The ID of the Virtual Private Cloud (Amazon VPC) associated with the
7208
+ # Amazon EMR Studio.
7209
+ # @return [String]
7210
+ #
7211
+ # @!attribute [rw] description
7212
+ # The detailed description of the EMR Studio.
7213
+ # @return [String]
7214
+ #
7215
+ # @!attribute [rw] url
7216
+ # The unique access URL of the Amazon EMR Studio.
7217
+ # @return [String]
7218
+ #
7219
+ # @!attribute [rw] creation_time
7220
+ # The time when the Amazon EMR Studio was created.
7221
+ # @return [Time]
7222
+ #
7223
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StudioSummary AWS API Documentation
7224
+ #
7225
+ class StudioSummary < Struct.new(
7226
+ :studio_id,
7227
+ :name,
7228
+ :vpc_id,
7229
+ :description,
7230
+ :url,
7231
+ :creation_time)
7232
+ SENSITIVE = []
7233
+ include Aws::Structure
7234
+ end
7235
+
6496
7236
  # The list of supported product configurations which allow user-supplied
6497
7237
  # arguments. EMR accepts these arguments and forwards them to the
6498
7238
  # corresponding installation script as bootstrap action arguments.
@@ -6522,7 +7262,7 @@ module Aws::EMR
6522
7262
  include Aws::Structure
6523
7263
  end
6524
7264
 
6525
- # A key/value pair containing user-defined metadata that you can
7265
+ # A key-value pair containing user-defined metadata that you can
6526
7266
  # associate with an Amazon EMR resource. Tags make it easier to
6527
7267
  # associate clusters in various ways, such as grouping clusters to track
6528
7268
  # your Amazon EMR resource allocation costs. For more information, see
@@ -6577,7 +7317,7 @@ module Aws::EMR
6577
7317
  # }
6578
7318
  #
6579
7319
  # @!attribute [rw] job_flow_ids
6580
- # A list of job flows to be shutdown.
7320
+ # A list of job flows to be shut down.
6581
7321
  # @return [Array<String>]
6582
7322
  #
6583
7323
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/TerminateJobFlowsInput AWS API Documentation
@@ -6588,6 +7328,66 @@ module Aws::EMR
6588
7328
  include Aws::Structure
6589
7329
  end
6590
7330
 
7331
+ # @note When making an API call, you may pass UpdateStudioSessionMappingInput
7332
+ # data as a hash:
7333
+ #
7334
+ # {
7335
+ # studio_id: "XmlStringMaxLen256", # required
7336
+ # identity_id: "XmlStringMaxLen256",
7337
+ # identity_name: "XmlStringMaxLen256",
7338
+ # identity_type: "USER", # required, accepts USER, GROUP
7339
+ # session_policy_arn: "XmlStringMaxLen256", # required
7340
+ # }
7341
+ #
7342
+ # @!attribute [rw] studio_id
7343
+ # The ID of the EMR Studio.
7344
+ # @return [String]
7345
+ #
7346
+ # @!attribute [rw] identity_id
7347
+ # The globally unique identifier (GUID) of the user or group. For more
7348
+ # information, see [UserId][1] and [GroupId][2] in the *AWS SSO
7349
+ # Identity Store API Reference*. Either `IdentityName` or `IdentityId`
7350
+ # must be specified.
7351
+ #
7352
+ #
7353
+ #
7354
+ # [1]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId
7355
+ # [2]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId
7356
+ # @return [String]
7357
+ #
7358
+ # @!attribute [rw] identity_name
7359
+ # The name of the user or group to update. For more information, see
7360
+ # [UserName][1] and [DisplayName][2] in the *AWS SSO Identity Store
7361
+ # API Reference*. Either `IdentityName` or `IdentityId` must be
7362
+ # specified.
7363
+ #
7364
+ #
7365
+ #
7366
+ # [1]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId
7367
+ # [2]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName
7368
+ # @return [String]
7369
+ #
7370
+ # @!attribute [rw] identity_type
7371
+ # Specifies whether the identity to update is a user or a group.
7372
+ # @return [String]
7373
+ #
7374
+ # @!attribute [rw] session_policy_arn
7375
+ # The Amazon Resource Name (ARN) of the session policy to associate
7376
+ # with the specified user or group.
7377
+ # @return [String]
7378
+ #
7379
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/UpdateStudioSessionMappingInput AWS API Documentation
7380
+ #
7381
+ class UpdateStudioSessionMappingInput < Struct.new(
7382
+ :studio_id,
7383
+ :identity_id,
7384
+ :identity_name,
7385
+ :identity_type,
7386
+ :session_policy_arn)
7387
+ SENSITIVE = []
7388
+ include Aws::Structure
7389
+ end
7390
+
6591
7391
  # EBS volume specifications such as volume type, IOPS, and size (GiB)
6592
7392
  # that will be requested for the EBS volume attached to an EC2 instance
6593
7393
  # in the cluster.