aws-sdk-batch 1.37.0 → 1.42.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -18,6 +18,7 @@ module Aws::Batch
18
18
  ArrayProperties = Shapes::StructureShape.new(name: 'ArrayProperties')
19
19
  ArrayPropertiesDetail = Shapes::StructureShape.new(name: 'ArrayPropertiesDetail')
20
20
  ArrayPropertiesSummary = Shapes::StructureShape.new(name: 'ArrayPropertiesSummary')
21
+ AssignPublicIp = Shapes::StringShape.new(name: 'AssignPublicIp')
21
22
  AttemptContainerDetail = Shapes::StructureShape.new(name: 'AttemptContainerDetail')
22
23
  AttemptDetail = Shapes::StructureShape.new(name: 'AttemptDetail')
23
24
  AttemptDetails = Shapes::ListShape.new(name: 'AttemptDetails')
@@ -62,8 +63,15 @@ module Aws::Batch
62
63
  DeviceCgroupPermission = Shapes::StringShape.new(name: 'DeviceCgroupPermission')
63
64
  DeviceCgroupPermissions = Shapes::ListShape.new(name: 'DeviceCgroupPermissions')
64
65
  DevicesList = Shapes::ListShape.new(name: 'DevicesList')
66
+ Ec2Configuration = Shapes::StructureShape.new(name: 'Ec2Configuration')
67
+ Ec2ConfigurationList = Shapes::ListShape.new(name: 'Ec2ConfigurationList')
65
68
  EnvironmentVariables = Shapes::ListShape.new(name: 'EnvironmentVariables')
69
+ EvaluateOnExit = Shapes::StructureShape.new(name: 'EvaluateOnExit')
70
+ EvaluateOnExitList = Shapes::ListShape.new(name: 'EvaluateOnExitList')
71
+ FargatePlatformConfiguration = Shapes::StructureShape.new(name: 'FargatePlatformConfiguration')
66
72
  Host = Shapes::StructureShape.new(name: 'Host')
73
+ ImageIdOverride = Shapes::StringShape.new(name: 'ImageIdOverride')
74
+ ImageType = Shapes::StringShape.new(name: 'ImageType')
67
75
  Integer = Shapes::IntegerShape.new(name: 'Integer')
68
76
  JQState = Shapes::StringShape.new(name: 'JQState')
69
77
  JQStatus = Shapes::StringShape.new(name: 'JQStatus')
@@ -85,12 +93,15 @@ module Aws::Batch
85
93
  LinuxParameters = Shapes::StructureShape.new(name: 'LinuxParameters')
86
94
  ListJobsRequest = Shapes::StructureShape.new(name: 'ListJobsRequest')
87
95
  ListJobsResponse = Shapes::StructureShape.new(name: 'ListJobsResponse')
96
+ ListTagsForResourceRequest = Shapes::StructureShape.new(name: 'ListTagsForResourceRequest')
97
+ ListTagsForResourceResponse = Shapes::StructureShape.new(name: 'ListTagsForResourceResponse')
88
98
  LogConfiguration = Shapes::StructureShape.new(name: 'LogConfiguration')
89
99
  LogConfigurationOptionsMap = Shapes::MapShape.new(name: 'LogConfigurationOptionsMap')
90
100
  LogDriver = Shapes::StringShape.new(name: 'LogDriver')
91
101
  Long = Shapes::IntegerShape.new(name: 'Long')
92
102
  MountPoint = Shapes::StructureShape.new(name: 'MountPoint')
93
103
  MountPoints = Shapes::ListShape.new(name: 'MountPoints')
104
+ NetworkConfiguration = Shapes::StructureShape.new(name: 'NetworkConfiguration')
94
105
  NetworkInterface = Shapes::StructureShape.new(name: 'NetworkInterface')
95
106
  NetworkInterfaceList = Shapes::ListShape.new(name: 'NetworkInterfaceList')
96
107
  NodeDetails = Shapes::StructureShape.new(name: 'NodeDetails')
@@ -102,11 +113,14 @@ module Aws::Batch
102
113
  NodeRangeProperties = Shapes::ListShape.new(name: 'NodeRangeProperties')
103
114
  NodeRangeProperty = Shapes::StructureShape.new(name: 'NodeRangeProperty')
104
115
  ParametersMap = Shapes::MapShape.new(name: 'ParametersMap')
116
+ PlatformCapability = Shapes::StringShape.new(name: 'PlatformCapability')
117
+ PlatformCapabilityList = Shapes::ListShape.new(name: 'PlatformCapabilityList')
105
118
  RegisterJobDefinitionRequest = Shapes::StructureShape.new(name: 'RegisterJobDefinitionRequest')
106
119
  RegisterJobDefinitionResponse = Shapes::StructureShape.new(name: 'RegisterJobDefinitionResponse')
107
120
  ResourceRequirement = Shapes::StructureShape.new(name: 'ResourceRequirement')
108
121
  ResourceRequirements = Shapes::ListShape.new(name: 'ResourceRequirements')
109
122
  ResourceType = Shapes::StringShape.new(name: 'ResourceType')
123
+ RetryAction = Shapes::StringShape.new(name: 'RetryAction')
110
124
  RetryStrategy = Shapes::StructureShape.new(name: 'RetryStrategy')
111
125
  Secret = Shapes::StructureShape.new(name: 'Secret')
112
126
  SecretList = Shapes::ListShape.new(name: 'SecretList')
@@ -115,6 +129,12 @@ module Aws::Batch
115
129
  StringList = Shapes::ListShape.new(name: 'StringList')
116
130
  SubmitJobRequest = Shapes::StructureShape.new(name: 'SubmitJobRequest')
117
131
  SubmitJobResponse = Shapes::StructureShape.new(name: 'SubmitJobResponse')
132
+ TagKey = Shapes::StringShape.new(name: 'TagKey')
133
+ TagKeysList = Shapes::ListShape.new(name: 'TagKeysList')
134
+ TagResourceRequest = Shapes::StructureShape.new(name: 'TagResourceRequest')
135
+ TagResourceResponse = Shapes::StructureShape.new(name: 'TagResourceResponse')
136
+ TagValue = Shapes::StringShape.new(name: 'TagValue')
137
+ TagrisTagsMap = Shapes::MapShape.new(name: 'TagrisTagsMap')
118
138
  TagsMap = Shapes::MapShape.new(name: 'TagsMap')
119
139
  TerminateJobRequest = Shapes::StructureShape.new(name: 'TerminateJobRequest')
120
140
  TerminateJobResponse = Shapes::StructureShape.new(name: 'TerminateJobResponse')
@@ -122,6 +142,8 @@ module Aws::Batch
122
142
  TmpfsList = Shapes::ListShape.new(name: 'TmpfsList')
123
143
  Ulimit = Shapes::StructureShape.new(name: 'Ulimit')
124
144
  Ulimits = Shapes::ListShape.new(name: 'Ulimits')
145
+ UntagResourceRequest = Shapes::StructureShape.new(name: 'UntagResourceRequest')
146
+ UntagResourceResponse = Shapes::StructureShape.new(name: 'UntagResourceResponse')
125
147
  UpdateComputeEnvironmentRequest = Shapes::StructureShape.new(name: 'UpdateComputeEnvironmentRequest')
126
148
  UpdateComputeEnvironmentResponse = Shapes::StructureShape.new(name: 'UpdateComputeEnvironmentResponse')
127
149
  UpdateJobQueueRequest = Shapes::StructureShape.new(name: 'UpdateJobQueueRequest')
@@ -172,6 +194,7 @@ module Aws::Batch
172
194
  ComputeEnvironmentDetail.add_member(:compute_environment_name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "computeEnvironmentName"))
173
195
  ComputeEnvironmentDetail.add_member(:compute_environment_arn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "computeEnvironmentArn"))
174
196
  ComputeEnvironmentDetail.add_member(:ecs_cluster_arn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ecsClusterArn"))
197
+ ComputeEnvironmentDetail.add_member(:tags, Shapes::ShapeRef.new(shape: TagrisTagsMap, location_name: "tags"))
175
198
  ComputeEnvironmentDetail.add_member(:type, Shapes::ShapeRef.new(shape: CEType, location_name: "type"))
176
199
  ComputeEnvironmentDetail.add_member(:state, Shapes::ShapeRef.new(shape: CEState, location_name: "state"))
177
200
  ComputeEnvironmentDetail.add_member(:status, Shapes::ShapeRef.new(shape: CEStatus, location_name: "status"))
@@ -190,25 +213,28 @@ module Aws::Batch
190
213
 
191
214
  ComputeResource.add_member(:type, Shapes::ShapeRef.new(shape: CRType, required: true, location_name: "type"))
192
215
  ComputeResource.add_member(:allocation_strategy, Shapes::ShapeRef.new(shape: CRAllocationStrategy, location_name: "allocationStrategy"))
193
- ComputeResource.add_member(:minv_cpus, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "minvCpus"))
216
+ ComputeResource.add_member(:minv_cpus, Shapes::ShapeRef.new(shape: Integer, location_name: "minvCpus"))
194
217
  ComputeResource.add_member(:maxv_cpus, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "maxvCpus"))
195
218
  ComputeResource.add_member(:desiredv_cpus, Shapes::ShapeRef.new(shape: Integer, location_name: "desiredvCpus"))
196
- ComputeResource.add_member(:instance_types, Shapes::ShapeRef.new(shape: StringList, required: true, location_name: "instanceTypes"))
197
- ComputeResource.add_member(:image_id, Shapes::ShapeRef.new(shape: String, location_name: "imageId"))
219
+ ComputeResource.add_member(:instance_types, Shapes::ShapeRef.new(shape: StringList, location_name: "instanceTypes"))
220
+ ComputeResource.add_member(:image_id, Shapes::ShapeRef.new(shape: String, deprecated: true, location_name: "imageId", metadata: {"deprecatedMessage"=>"This field is deprecated, use ec2Configuration[].imageIdOverride instead."}))
198
221
  ComputeResource.add_member(:subnets, Shapes::ShapeRef.new(shape: StringList, required: true, location_name: "subnets"))
199
222
  ComputeResource.add_member(:security_group_ids, Shapes::ShapeRef.new(shape: StringList, location_name: "securityGroupIds"))
200
223
  ComputeResource.add_member(:ec2_key_pair, Shapes::ShapeRef.new(shape: String, location_name: "ec2KeyPair"))
201
- ComputeResource.add_member(:instance_role, Shapes::ShapeRef.new(shape: String, required: true, location_name: "instanceRole"))
224
+ ComputeResource.add_member(:instance_role, Shapes::ShapeRef.new(shape: String, location_name: "instanceRole"))
202
225
  ComputeResource.add_member(:tags, Shapes::ShapeRef.new(shape: TagsMap, location_name: "tags"))
203
226
  ComputeResource.add_member(:placement_group, Shapes::ShapeRef.new(shape: String, location_name: "placementGroup"))
204
227
  ComputeResource.add_member(:bid_percentage, Shapes::ShapeRef.new(shape: Integer, location_name: "bidPercentage"))
205
228
  ComputeResource.add_member(:spot_iam_fleet_role, Shapes::ShapeRef.new(shape: String, location_name: "spotIamFleetRole"))
206
229
  ComputeResource.add_member(:launch_template, Shapes::ShapeRef.new(shape: LaunchTemplateSpecification, location_name: "launchTemplate"))
230
+ ComputeResource.add_member(:ec2_configuration, Shapes::ShapeRef.new(shape: Ec2ConfigurationList, location_name: "ec2Configuration"))
207
231
  ComputeResource.struct_class = Types::ComputeResource
208
232
 
209
233
  ComputeResourceUpdate.add_member(:minv_cpus, Shapes::ShapeRef.new(shape: Integer, location_name: "minvCpus"))
210
234
  ComputeResourceUpdate.add_member(:maxv_cpus, Shapes::ShapeRef.new(shape: Integer, location_name: "maxvCpus"))
211
235
  ComputeResourceUpdate.add_member(:desiredv_cpus, Shapes::ShapeRef.new(shape: Integer, location_name: "desiredvCpus"))
236
+ ComputeResourceUpdate.add_member(:subnets, Shapes::ShapeRef.new(shape: StringList, location_name: "subnets"))
237
+ ComputeResourceUpdate.add_member(:security_group_ids, Shapes::ShapeRef.new(shape: StringList, location_name: "securityGroupIds"))
212
238
  ComputeResourceUpdate.struct_class = Types::ComputeResourceUpdate
213
239
 
214
240
  ContainerDetail.add_member(:image, Shapes::ShapeRef.new(shape: String, location_name: "image"))
@@ -235,10 +261,12 @@ module Aws::Batch
235
261
  ContainerDetail.add_member(:linux_parameters, Shapes::ShapeRef.new(shape: LinuxParameters, location_name: "linuxParameters"))
236
262
  ContainerDetail.add_member(:log_configuration, Shapes::ShapeRef.new(shape: LogConfiguration, location_name: "logConfiguration"))
237
263
  ContainerDetail.add_member(:secrets, Shapes::ShapeRef.new(shape: SecretList, location_name: "secrets"))
264
+ ContainerDetail.add_member(:network_configuration, Shapes::ShapeRef.new(shape: NetworkConfiguration, location_name: "networkConfiguration"))
265
+ ContainerDetail.add_member(:fargate_platform_configuration, Shapes::ShapeRef.new(shape: FargatePlatformConfiguration, location_name: "fargatePlatformConfiguration"))
238
266
  ContainerDetail.struct_class = Types::ContainerDetail
239
267
 
240
- ContainerOverrides.add_member(:vcpus, Shapes::ShapeRef.new(shape: Integer, location_name: "vcpus"))
241
- ContainerOverrides.add_member(:memory, Shapes::ShapeRef.new(shape: Integer, location_name: "memory"))
268
+ ContainerOverrides.add_member(:vcpus, Shapes::ShapeRef.new(shape: Integer, deprecated: true, location_name: "vcpus", metadata: {"deprecatedMessage"=>"This field is deprecated, use resourceRequirements instead."}))
269
+ ContainerOverrides.add_member(:memory, Shapes::ShapeRef.new(shape: Integer, deprecated: true, location_name: "memory", metadata: {"deprecatedMessage"=>"This field is deprecated, use resourceRequirements instead."}))
242
270
  ContainerOverrides.add_member(:command, Shapes::ShapeRef.new(shape: StringList, location_name: "command"))
243
271
  ContainerOverrides.add_member(:instance_type, Shapes::ShapeRef.new(shape: String, location_name: "instanceType"))
244
272
  ContainerOverrides.add_member(:environment, Shapes::ShapeRef.new(shape: EnvironmentVariables, location_name: "environment"))
@@ -246,8 +274,8 @@ module Aws::Batch
246
274
  ContainerOverrides.struct_class = Types::ContainerOverrides
247
275
 
248
276
  ContainerProperties.add_member(:image, Shapes::ShapeRef.new(shape: String, location_name: "image"))
249
- ContainerProperties.add_member(:vcpus, Shapes::ShapeRef.new(shape: Integer, location_name: "vcpus"))
250
- ContainerProperties.add_member(:memory, Shapes::ShapeRef.new(shape: Integer, location_name: "memory"))
277
+ ContainerProperties.add_member(:vcpus, Shapes::ShapeRef.new(shape: Integer, deprecated: true, location_name: "vcpus", metadata: {"deprecatedMessage"=>"This field is deprecated, use resourceRequirements instead."}))
278
+ ContainerProperties.add_member(:memory, Shapes::ShapeRef.new(shape: Integer, deprecated: true, location_name: "memory", metadata: {"deprecatedMessage"=>"This field is deprecated, use resourceRequirements instead."}))
251
279
  ContainerProperties.add_member(:command, Shapes::ShapeRef.new(shape: StringList, location_name: "command"))
252
280
  ContainerProperties.add_member(:job_role_arn, Shapes::ShapeRef.new(shape: String, location_name: "jobRoleArn"))
253
281
  ContainerProperties.add_member(:execution_role_arn, Shapes::ShapeRef.new(shape: String, location_name: "executionRoleArn"))
@@ -263,6 +291,8 @@ module Aws::Batch
263
291
  ContainerProperties.add_member(:linux_parameters, Shapes::ShapeRef.new(shape: LinuxParameters, location_name: "linuxParameters"))
264
292
  ContainerProperties.add_member(:log_configuration, Shapes::ShapeRef.new(shape: LogConfiguration, location_name: "logConfiguration"))
265
293
  ContainerProperties.add_member(:secrets, Shapes::ShapeRef.new(shape: SecretList, location_name: "secrets"))
294
+ ContainerProperties.add_member(:network_configuration, Shapes::ShapeRef.new(shape: NetworkConfiguration, location_name: "networkConfiguration"))
295
+ ContainerProperties.add_member(:fargate_platform_configuration, Shapes::ShapeRef.new(shape: FargatePlatformConfiguration, location_name: "fargatePlatformConfiguration"))
266
296
  ContainerProperties.struct_class = Types::ContainerProperties
267
297
 
268
298
  ContainerSummary.add_member(:exit_code, Shapes::ShapeRef.new(shape: Integer, location_name: "exitCode"))
@@ -274,6 +304,7 @@ module Aws::Batch
274
304
  CreateComputeEnvironmentRequest.add_member(:state, Shapes::ShapeRef.new(shape: CEState, location_name: "state"))
275
305
  CreateComputeEnvironmentRequest.add_member(:compute_resources, Shapes::ShapeRef.new(shape: ComputeResource, location_name: "computeResources"))
276
306
  CreateComputeEnvironmentRequest.add_member(:service_role, Shapes::ShapeRef.new(shape: String, required: true, location_name: "serviceRole"))
307
+ CreateComputeEnvironmentRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagrisTagsMap, location_name: "tags"))
277
308
  CreateComputeEnvironmentRequest.struct_class = Types::CreateComputeEnvironmentRequest
278
309
 
279
310
  CreateComputeEnvironmentResponse.add_member(:compute_environment_name, Shapes::ShapeRef.new(shape: String, location_name: "computeEnvironmentName"))
@@ -284,6 +315,7 @@ module Aws::Batch
284
315
  CreateJobQueueRequest.add_member(:state, Shapes::ShapeRef.new(shape: JQState, location_name: "state"))
285
316
  CreateJobQueueRequest.add_member(:priority, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "priority"))
286
317
  CreateJobQueueRequest.add_member(:compute_environment_order, Shapes::ShapeRef.new(shape: ComputeEnvironmentOrders, required: true, location_name: "computeEnvironmentOrder"))
318
+ CreateJobQueueRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagrisTagsMap, location_name: "tags"))
287
319
  CreateJobQueueRequest.struct_class = Types::CreateJobQueueRequest
288
320
 
289
321
  CreateJobQueueResponse.add_member(:job_queue_name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "jobQueueName"))
@@ -349,8 +381,25 @@ module Aws::Batch
349
381
 
350
382
  DevicesList.member = Shapes::ShapeRef.new(shape: Device)
351
383
 
384
+ Ec2Configuration.add_member(:image_type, Shapes::ShapeRef.new(shape: ImageType, required: true, location_name: "imageType"))
385
+ Ec2Configuration.add_member(:image_id_override, Shapes::ShapeRef.new(shape: ImageIdOverride, location_name: "imageIdOverride"))
386
+ Ec2Configuration.struct_class = Types::Ec2Configuration
387
+
388
+ Ec2ConfigurationList.member = Shapes::ShapeRef.new(shape: Ec2Configuration)
389
+
352
390
  EnvironmentVariables.member = Shapes::ShapeRef.new(shape: KeyValuePair)
353
391
 
392
+ EvaluateOnExit.add_member(:on_status_reason, Shapes::ShapeRef.new(shape: String, location_name: "onStatusReason"))
393
+ EvaluateOnExit.add_member(:on_reason, Shapes::ShapeRef.new(shape: String, location_name: "onReason"))
394
+ EvaluateOnExit.add_member(:on_exit_code, Shapes::ShapeRef.new(shape: String, location_name: "onExitCode"))
395
+ EvaluateOnExit.add_member(:action, Shapes::ShapeRef.new(shape: RetryAction, required: true, location_name: "action"))
396
+ EvaluateOnExit.struct_class = Types::EvaluateOnExit
397
+
398
+ EvaluateOnExitList.member = Shapes::ShapeRef.new(shape: EvaluateOnExit)
399
+
400
+ FargatePlatformConfiguration.add_member(:platform_version, Shapes::ShapeRef.new(shape: String, location_name: "platformVersion"))
401
+ FargatePlatformConfiguration.struct_class = Types::FargatePlatformConfiguration
402
+
354
403
  Host.add_member(:source_path, Shapes::ShapeRef.new(shape: String, location_name: "sourcePath"))
355
404
  Host.struct_class = Types::Host
356
405
 
@@ -364,6 +413,9 @@ module Aws::Batch
364
413
  JobDefinition.add_member(:container_properties, Shapes::ShapeRef.new(shape: ContainerProperties, location_name: "containerProperties"))
365
414
  JobDefinition.add_member(:timeout, Shapes::ShapeRef.new(shape: JobTimeout, location_name: "timeout"))
366
415
  JobDefinition.add_member(:node_properties, Shapes::ShapeRef.new(shape: NodeProperties, location_name: "nodeProperties"))
416
+ JobDefinition.add_member(:tags, Shapes::ShapeRef.new(shape: TagrisTagsMap, location_name: "tags"))
417
+ JobDefinition.add_member(:propagate_tags, Shapes::ShapeRef.new(shape: Boolean, location_name: "propagateTags"))
418
+ JobDefinition.add_member(:platform_capabilities, Shapes::ShapeRef.new(shape: PlatformCapabilityList, location_name: "platformCapabilities"))
367
419
  JobDefinition.struct_class = Types::JobDefinition
368
420
 
369
421
  JobDefinitionList.member = Shapes::ShapeRef.new(shape: JobDefinition)
@@ -374,6 +426,7 @@ module Aws::Batch
374
426
 
375
427
  JobDependencyList.member = Shapes::ShapeRef.new(shape: JobDependency)
376
428
 
429
+ JobDetail.add_member(:job_arn, Shapes::ShapeRef.new(shape: String, location_name: "jobArn"))
377
430
  JobDetail.add_member(:job_name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "jobName"))
378
431
  JobDetail.add_member(:job_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "jobId"))
379
432
  JobDetail.add_member(:job_queue, Shapes::ShapeRef.new(shape: String, required: true, location_name: "jobQueue"))
@@ -392,6 +445,9 @@ module Aws::Batch
392
445
  JobDetail.add_member(:node_properties, Shapes::ShapeRef.new(shape: NodeProperties, location_name: "nodeProperties"))
393
446
  JobDetail.add_member(:array_properties, Shapes::ShapeRef.new(shape: ArrayPropertiesDetail, location_name: "arrayProperties"))
394
447
  JobDetail.add_member(:timeout, Shapes::ShapeRef.new(shape: JobTimeout, location_name: "timeout"))
448
+ JobDetail.add_member(:tags, Shapes::ShapeRef.new(shape: TagrisTagsMap, location_name: "tags"))
449
+ JobDetail.add_member(:propagate_tags, Shapes::ShapeRef.new(shape: Boolean, location_name: "propagateTags"))
450
+ JobDetail.add_member(:platform_capabilities, Shapes::ShapeRef.new(shape: PlatformCapabilityList, location_name: "platformCapabilities"))
395
451
  JobDetail.struct_class = Types::JobDetail
396
452
 
397
453
  JobDetailList.member = Shapes::ShapeRef.new(shape: JobDetail)
@@ -403,10 +459,12 @@ module Aws::Batch
403
459
  JobQueueDetail.add_member(:status_reason, Shapes::ShapeRef.new(shape: String, location_name: "statusReason"))
404
460
  JobQueueDetail.add_member(:priority, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "priority"))
405
461
  JobQueueDetail.add_member(:compute_environment_order, Shapes::ShapeRef.new(shape: ComputeEnvironmentOrders, required: true, location_name: "computeEnvironmentOrder"))
462
+ JobQueueDetail.add_member(:tags, Shapes::ShapeRef.new(shape: TagrisTagsMap, location_name: "tags"))
406
463
  JobQueueDetail.struct_class = Types::JobQueueDetail
407
464
 
408
465
  JobQueueDetailList.member = Shapes::ShapeRef.new(shape: JobQueueDetail)
409
466
 
467
+ JobSummary.add_member(:job_arn, Shapes::ShapeRef.new(shape: String, location_name: "jobArn"))
410
468
  JobSummary.add_member(:job_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "jobId"))
411
469
  JobSummary.add_member(:job_name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "jobName"))
412
470
  JobSummary.add_member(:created_at, Shapes::ShapeRef.new(shape: Long, location_name: "createdAt"))
@@ -453,6 +511,12 @@ module Aws::Batch
453
511
  ListJobsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
454
512
  ListJobsResponse.struct_class = Types::ListJobsResponse
455
513
 
514
+ ListTagsForResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: String, required: true, location: "uri", location_name: "resourceArn"))
515
+ ListTagsForResourceRequest.struct_class = Types::ListTagsForResourceRequest
516
+
517
+ ListTagsForResourceResponse.add_member(:tags, Shapes::ShapeRef.new(shape: TagrisTagsMap, location_name: "tags"))
518
+ ListTagsForResourceResponse.struct_class = Types::ListTagsForResourceResponse
519
+
456
520
  LogConfiguration.add_member(:log_driver, Shapes::ShapeRef.new(shape: LogDriver, required: true, location_name: "logDriver"))
457
521
  LogConfiguration.add_member(:options, Shapes::ShapeRef.new(shape: LogConfigurationOptionsMap, location_name: "options"))
458
522
  LogConfiguration.add_member(:secret_options, Shapes::ShapeRef.new(shape: SecretList, location_name: "secretOptions"))
@@ -468,6 +532,9 @@ module Aws::Batch
468
532
 
469
533
  MountPoints.member = Shapes::ShapeRef.new(shape: MountPoint)
470
534
 
535
+ NetworkConfiguration.add_member(:assign_public_ip, Shapes::ShapeRef.new(shape: AssignPublicIp, location_name: "assignPublicIp"))
536
+ NetworkConfiguration.struct_class = Types::NetworkConfiguration
537
+
471
538
  NetworkInterface.add_member(:attachment_id, Shapes::ShapeRef.new(shape: String, location_name: "attachmentId"))
472
539
  NetworkInterface.add_member(:ipv6_address, Shapes::ShapeRef.new(shape: String, location_name: "ipv6Address"))
473
540
  NetworkInterface.add_member(:private_ipv_4_address, Shapes::ShapeRef.new(shape: String, location_name: "privateIpv4Address"))
@@ -508,13 +575,18 @@ module Aws::Batch
508
575
  ParametersMap.key = Shapes::ShapeRef.new(shape: String)
509
576
  ParametersMap.value = Shapes::ShapeRef.new(shape: String)
510
577
 
578
+ PlatformCapabilityList.member = Shapes::ShapeRef.new(shape: PlatformCapability)
579
+
511
580
  RegisterJobDefinitionRequest.add_member(:job_definition_name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "jobDefinitionName"))
512
581
  RegisterJobDefinitionRequest.add_member(:type, Shapes::ShapeRef.new(shape: JobDefinitionType, required: true, location_name: "type"))
513
582
  RegisterJobDefinitionRequest.add_member(:parameters, Shapes::ShapeRef.new(shape: ParametersMap, location_name: "parameters"))
514
583
  RegisterJobDefinitionRequest.add_member(:container_properties, Shapes::ShapeRef.new(shape: ContainerProperties, location_name: "containerProperties"))
515
584
  RegisterJobDefinitionRequest.add_member(:node_properties, Shapes::ShapeRef.new(shape: NodeProperties, location_name: "nodeProperties"))
516
585
  RegisterJobDefinitionRequest.add_member(:retry_strategy, Shapes::ShapeRef.new(shape: RetryStrategy, location_name: "retryStrategy"))
586
+ RegisterJobDefinitionRequest.add_member(:propagate_tags, Shapes::ShapeRef.new(shape: Boolean, location_name: "propagateTags"))
517
587
  RegisterJobDefinitionRequest.add_member(:timeout, Shapes::ShapeRef.new(shape: JobTimeout, location_name: "timeout"))
588
+ RegisterJobDefinitionRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagrisTagsMap, location_name: "tags"))
589
+ RegisterJobDefinitionRequest.add_member(:platform_capabilities, Shapes::ShapeRef.new(shape: PlatformCapabilityList, location_name: "platformCapabilities"))
518
590
  RegisterJobDefinitionRequest.struct_class = Types::RegisterJobDefinitionRequest
519
591
 
520
592
  RegisterJobDefinitionResponse.add_member(:job_definition_name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "jobDefinitionName"))
@@ -529,6 +601,7 @@ module Aws::Batch
529
601
  ResourceRequirements.member = Shapes::ShapeRef.new(shape: ResourceRequirement)
530
602
 
531
603
  RetryStrategy.add_member(:attempts, Shapes::ShapeRef.new(shape: Integer, location_name: "attempts"))
604
+ RetryStrategy.add_member(:evaluate_on_exit, Shapes::ShapeRef.new(shape: EvaluateOnExitList, location_name: "evaluateOnExit"))
532
605
  RetryStrategy.struct_class = Types::RetryStrategy
533
606
 
534
607
  Secret.add_member(:name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "name"))
@@ -551,13 +624,27 @@ module Aws::Batch
551
624
  SubmitJobRequest.add_member(:container_overrides, Shapes::ShapeRef.new(shape: ContainerOverrides, location_name: "containerOverrides"))
552
625
  SubmitJobRequest.add_member(:node_overrides, Shapes::ShapeRef.new(shape: NodeOverrides, location_name: "nodeOverrides"))
553
626
  SubmitJobRequest.add_member(:retry_strategy, Shapes::ShapeRef.new(shape: RetryStrategy, location_name: "retryStrategy"))
627
+ SubmitJobRequest.add_member(:propagate_tags, Shapes::ShapeRef.new(shape: Boolean, location_name: "propagateTags"))
554
628
  SubmitJobRequest.add_member(:timeout, Shapes::ShapeRef.new(shape: JobTimeout, location_name: "timeout"))
629
+ SubmitJobRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagrisTagsMap, location_name: "tags"))
555
630
  SubmitJobRequest.struct_class = Types::SubmitJobRequest
556
631
 
632
+ SubmitJobResponse.add_member(:job_arn, Shapes::ShapeRef.new(shape: String, location_name: "jobArn"))
557
633
  SubmitJobResponse.add_member(:job_name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "jobName"))
558
634
  SubmitJobResponse.add_member(:job_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "jobId"))
559
635
  SubmitJobResponse.struct_class = Types::SubmitJobResponse
560
636
 
637
+ TagKeysList.member = Shapes::ShapeRef.new(shape: TagKey)
638
+
639
+ TagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: String, required: true, location: "uri", location_name: "resourceArn"))
640
+ TagResourceRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagrisTagsMap, required: true, location_name: "tags"))
641
+ TagResourceRequest.struct_class = Types::TagResourceRequest
642
+
643
+ TagResourceResponse.struct_class = Types::TagResourceResponse
644
+
645
+ TagrisTagsMap.key = Shapes::ShapeRef.new(shape: TagKey)
646
+ TagrisTagsMap.value = Shapes::ShapeRef.new(shape: TagValue)
647
+
561
648
  TagsMap.key = Shapes::ShapeRef.new(shape: String)
562
649
  TagsMap.value = Shapes::ShapeRef.new(shape: String)
563
650
 
@@ -581,6 +668,12 @@ module Aws::Batch
581
668
 
582
669
  Ulimits.member = Shapes::ShapeRef.new(shape: Ulimit)
583
670
 
671
+ UntagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: String, required: true, location: "uri", location_name: "resourceArn"))
672
+ UntagResourceRequest.add_member(:tag_keys, Shapes::ShapeRef.new(shape: TagKeysList, required: true, location: "querystring", location_name: "tagKeys"))
673
+ UntagResourceRequest.struct_class = Types::UntagResourceRequest
674
+
675
+ UntagResourceResponse.struct_class = Types::UntagResourceResponse
676
+
584
677
  UpdateComputeEnvironmentRequest.add_member(:compute_environment, Shapes::ShapeRef.new(shape: String, required: true, location_name: "computeEnvironment"))
585
678
  UpdateComputeEnvironmentRequest.add_member(:state, Shapes::ShapeRef.new(shape: CEState, location_name: "state"))
586
679
  UpdateComputeEnvironmentRequest.add_member(:compute_resources, Shapes::ShapeRef.new(shape: ComputeResourceUpdate, location_name: "computeResources"))
@@ -759,6 +852,16 @@ module Aws::Batch
759
852
  )
760
853
  end)
761
854
 
855
+ api.add_operation(:list_tags_for_resource, Seahorse::Model::Operation.new.tap do |o|
856
+ o.name = "ListTagsForResource"
857
+ o.http_method = "GET"
858
+ o.http_request_uri = "/v1/tags/{resourceArn}"
859
+ o.input = Shapes::ShapeRef.new(shape: ListTagsForResourceRequest)
860
+ o.output = Shapes::ShapeRef.new(shape: ListTagsForResourceResponse)
861
+ o.errors << Shapes::ShapeRef.new(shape: ClientException)
862
+ o.errors << Shapes::ShapeRef.new(shape: ServerException)
863
+ end)
864
+
762
865
  api.add_operation(:register_job_definition, Seahorse::Model::Operation.new.tap do |o|
763
866
  o.name = "RegisterJobDefinition"
764
867
  o.http_method = "POST"
@@ -779,6 +882,16 @@ module Aws::Batch
779
882
  o.errors << Shapes::ShapeRef.new(shape: ServerException)
780
883
  end)
781
884
 
885
+ api.add_operation(:tag_resource, Seahorse::Model::Operation.new.tap do |o|
886
+ o.name = "TagResource"
887
+ o.http_method = "POST"
888
+ o.http_request_uri = "/v1/tags/{resourceArn}"
889
+ o.input = Shapes::ShapeRef.new(shape: TagResourceRequest)
890
+ o.output = Shapes::ShapeRef.new(shape: TagResourceResponse)
891
+ o.errors << Shapes::ShapeRef.new(shape: ClientException)
892
+ o.errors << Shapes::ShapeRef.new(shape: ServerException)
893
+ end)
894
+
782
895
  api.add_operation(:terminate_job, Seahorse::Model::Operation.new.tap do |o|
783
896
  o.name = "TerminateJob"
784
897
  o.http_method = "POST"
@@ -789,6 +902,16 @@ module Aws::Batch
789
902
  o.errors << Shapes::ShapeRef.new(shape: ServerException)
790
903
  end)
791
904
 
905
+ api.add_operation(:untag_resource, Seahorse::Model::Operation.new.tap do |o|
906
+ o.name = "UntagResource"
907
+ o.http_method = "DELETE"
908
+ o.http_request_uri = "/v1/tags/{resourceArn}"
909
+ o.input = Shapes::ShapeRef.new(shape: UntagResourceRequest)
910
+ o.output = Shapes::ShapeRef.new(shape: UntagResourceResponse)
911
+ o.errors << Shapes::ShapeRef.new(shape: ClientException)
912
+ o.errors << Shapes::ShapeRef.new(shape: ServerException)
913
+ end)
914
+
792
915
  api.add_operation(:update_compute_environment, Seahorse::Model::Operation.new.tap do |o|
793
916
  o.name = "UpdateComputeEnvironment"
794
917
  o.http_method = "POST"
@@ -195,7 +195,7 @@ module Aws::Batch
195
195
 
196
196
  # These errors are usually caused by a client action, such as using an
197
197
  # action or resource on behalf of a user that doesn't have permissions
198
- # to use the action or resource, or specifying an identifier that is not
198
+ # to use the action or resource, or specifying an identifier that isn't
199
199
  # valid.
200
200
  #
201
201
  # @!attribute [rw] message
@@ -224,8 +224,18 @@ module Aws::Batch
224
224
  # used by the compute environment.
225
225
  # @return [String]
226
226
  #
227
+ # @!attribute [rw] tags
228
+ # The tags applied to the compute environment.
229
+ # @return [Hash<String,String>]
230
+ #
227
231
  # @!attribute [rw] type
228
- # The type of the compute environment.
232
+ # The type of compute environment: `EC2`, `SPOT`, `FARGATE`, or
233
+ # `FARGATE_SPOT`. For more information, see [Compute Environments][1]
234
+ # in the *AWS Batch User Guide*.
235
+ #
236
+ #
237
+ #
238
+ # [1]: https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html
229
239
  # @return [String]
230
240
  #
231
241
  # @!attribute [rw] state
@@ -238,7 +248,7 @@ module Aws::Batch
238
248
  # it can scale its instances out or in automatically, based on the job
239
249
  # queue demand.
240
250
  #
241
- # If the state is `DISABLED`, then the AWS Batch scheduler does not
251
+ # If the state is `DISABLED`, then the AWS Batch scheduler doesn't
242
252
  # attempt to place jobs within the environment. Jobs in a `STARTING`
243
253
  # or `RUNNING` state continue to progress normally. Managed compute
244
254
  # environments in the `DISABLED` state do not scale out. However, they
@@ -270,6 +280,7 @@ module Aws::Batch
270
280
  :compute_environment_name,
271
281
  :compute_environment_arn,
272
282
  :ecs_cluster_arn,
283
+ :tags,
273
284
  :type,
274
285
  :state,
275
286
  :status,
@@ -295,7 +306,10 @@ module Aws::Batch
295
306
  # }
296
307
  #
297
308
  # @!attribute [rw] order
298
- # The order of the compute environment.
309
+ # The order of the compute environment. Compute environments are tried
310
+ # in ascending order. For example, if two compute environments are
311
+ # associated with a job queue, the compute environment with a lower
312
+ # `order` integer value is tried for job placement first.
299
313
  # @return [Integer]
300
314
  #
301
315
  # @!attribute [rw] compute_environment
@@ -317,17 +331,17 @@ module Aws::Batch
317
331
  # data as a hash:
318
332
  #
319
333
  # {
320
- # type: "EC2", # required, accepts EC2, SPOT
334
+ # type: "EC2", # required, accepts EC2, SPOT, FARGATE, FARGATE_SPOT
321
335
  # allocation_strategy: "BEST_FIT", # accepts BEST_FIT, BEST_FIT_PROGRESSIVE, SPOT_CAPACITY_OPTIMIZED
322
- # minv_cpus: 1, # required
336
+ # minv_cpus: 1,
323
337
  # maxv_cpus: 1, # required
324
338
  # desiredv_cpus: 1,
325
- # instance_types: ["String"], # required
339
+ # instance_types: ["String"],
326
340
  # image_id: "String",
327
341
  # subnets: ["String"], # required
328
342
  # security_group_ids: ["String"],
329
343
  # ec2_key_pair: "String",
330
- # instance_role: "String", # required
344
+ # instance_role: "String",
331
345
  # tags: {
332
346
  # "String" => "String",
333
347
  # },
@@ -339,30 +353,69 @@ module Aws::Batch
339
353
  # launch_template_name: "String",
340
354
  # version: "String",
341
355
  # },
356
+ # ec2_configuration: [
357
+ # {
358
+ # image_type: "ImageType", # required
359
+ # image_id_override: "ImageIdOverride",
360
+ # },
361
+ # ],
342
362
  # }
343
363
  #
344
364
  # @!attribute [rw] type
345
- # The type of compute environment: `EC2` or `SPOT`.
365
+ # The type of compute environment: `EC2`, `SPOT`, `FARGATE`, or
366
+ # `FARGATE_SPOT`. For more information, see [Compute Environments][1]
367
+ # in the *AWS Batch User Guide*.
368
+ #
369
+ #
370
+ #
371
+ # [1]: https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html
346
372
  # @return [String]
347
373
  #
348
374
  # @!attribute [rw] allocation_strategy
349
- # The allocation strategy to use for the compute resource in case not
375
+ # The allocation strategy to use for the compute resource if not
350
376
  # enough instances of the best fitting instance type can be allocated.
351
- # This could be due to availability of the instance type in the region
352
- # or [Amazon EC2 service limits][1]. If this is not specified, the
353
- # default is `BEST_FIT`, which will use only the best fitting instance
354
- # type, waiting for additional capacity if it's not available. This
355
- # allocation strategy keeps costs lower but can limit scaling. If you
356
- # are using Spot Fleets with `BEST_FIT` then the Spot Fleet IAM Role
357
- # must be specified. `BEST_FIT_PROGRESSIVE` will select additional
358
- # instance types that are large enough to meet the requirements of the
359
- # jobs in the queue, with a preference for instance types with a lower
360
- # cost per vCPU. `SPOT_CAPACITY_OPTIMIZED` is only available for Spot
361
- # Instance compute resources and will select additional instance types
362
- # that are large enough to meet the requirements of the jobs in the
363
- # queue, with a preference for instance types that are less likely to
364
- # be interrupted. For more information, see [Allocation Strategies][2]
365
- # in the *AWS Batch User Guide*.
377
+ # This might be because of availability of the instance type in the
378
+ # Region or [Amazon EC2 service limits][1]. For more information, see
379
+ # [Allocation Strategies][2] in the *AWS Batch User Guide*.
380
+ #
381
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
382
+ # resources, and shouldn't be specified.
383
+ #
384
+ # </note>
385
+ #
386
+ # BEST\_FIT (default)
387
+ #
388
+ # : AWS Batch selects an instance type that best fits the needs of the
389
+ # jobs with a preference for the lowest-cost instance type. If
390
+ # additional instances of the selected instance type aren't
391
+ # available, AWS Batch will wait for the additional instances to be
392
+ # available. If there are not enough instances available, or if the
393
+ # user is hitting [Amazon EC2 service limits][1] then additional
394
+ # jobs aren't run until currently running jobs have completed. This
395
+ # allocation strategy keeps costs lower but can limit scaling. If
396
+ # you are using Spot Fleets with `BEST_FIT` then the Spot Fleet IAM
397
+ # Role must be specified.
398
+ #
399
+ # BEST\_FIT\_PROGRESSIVE
400
+ #
401
+ # : AWS Batch will select additional instance types that are large
402
+ # enough to meet the requirements of the jobs in the queue, with a
403
+ # preference for instance types with a lower cost per unit vCPU. If
404
+ # additional instances of the previously selected instance types
405
+ # aren't available, AWS Batch will select new instance types.
406
+ #
407
+ # SPOT\_CAPACITY\_OPTIMIZED
408
+ #
409
+ # : AWS Batch will select one or more instance types that are large
410
+ # enough to meet the requirements of the jobs in the queue, with a
411
+ # preference for instance types that are less likely to be
412
+ # interrupted. This allocation strategy is only available for Spot
413
+ # Instance compute resources.
414
+ #
415
+ # With both `BEST_FIT_PROGRESSIVE` and `SPOT_CAPACITY_OPTIMIZED`
416
+ # strategies, AWS Batch might need to go above `maxvCpus` to meet your
417
+ # capacity requirements. In this event, AWS Batch never exceeds
418
+ # `maxvCpus` by more than a single instance.
366
419
  #
367
420
  #
368
421
  #
@@ -373,35 +426,91 @@ module Aws::Batch
373
426
  # @!attribute [rw] minv_cpus
374
427
  # The minimum number of Amazon EC2 vCPUs that an environment should
375
428
  # maintain (even if the compute environment is `DISABLED`).
429
+ #
430
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
431
+ # resources, and shouldn't be specified.
432
+ #
433
+ # </note>
376
434
  # @return [Integer]
377
435
  #
378
436
  # @!attribute [rw] maxv_cpus
379
437
  # The maximum number of Amazon EC2 vCPUs that an environment can
380
438
  # reach.
439
+ #
440
+ # <note markdown="1"> With both `BEST_FIT_PROGRESSIVE` and `SPOT_CAPACITY_OPTIMIZED`
441
+ # allocation strategies, AWS Batch may need to go above `maxvCpus` to
442
+ # meet your capacity requirements. In this event, AWS Batch will never
443
+ # go above `maxvCpus` by more than a single instance (e.g., no more
444
+ # than a single instance from among those specified in your compute
445
+ # environment).
446
+ #
447
+ # </note>
381
448
  # @return [Integer]
382
449
  #
383
450
  # @!attribute [rw] desiredv_cpus
384
451
  # The desired number of Amazon EC2 vCPUS in the compute environment.
452
+ # AWS Batch modifies this value between the minimum and maximum
453
+ # values, based on job queue demand.
454
+ #
455
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
456
+ # resources, and shouldn't be specified.
457
+ #
458
+ # </note>
385
459
  # @return [Integer]
386
460
  #
387
461
  # @!attribute [rw] instance_types
388
462
  # The instances types that may be launched. You can specify instance
389
463
  # families to launch any instance type within those families (for
390
464
  # example, `c5` or `p3`), or you can specify specific sizes within a
391
- # family (such as `c5.8xlarge`). You can also choose `optimal` to pick
392
- # instance types (from the C, M, and R instance families) on the fly
393
- # that match the demand of your job queues.
465
+ # family (such as `c5.8xlarge`). You can also choose `optimal` to
466
+ # select instance types (from the C, M, and R instance families) on
467
+ # the fly that match the demand of your job queues.
468
+ #
469
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
470
+ # resources, and shouldn't be specified.
471
+ #
472
+ # </note>
473
+ #
474
+ # <note markdown="1"> When you create a compute environment, the instance types that you
475
+ # select for the compute environment must share the same architecture.
476
+ # For example, you can't mix x86 and ARM instances in the same
477
+ # compute environment.
478
+ #
479
+ # </note>
394
480
  # @return [Array<String>]
395
481
  #
396
482
  # @!attribute [rw] image_id
397
483
  # The Amazon Machine Image (AMI) ID used for instances launched in the
398
- # compute environment.
484
+ # compute environment. This parameter is overridden by the
485
+ # `imageIdOverride` member of the `Ec2Configuration` structure.
486
+ #
487
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
488
+ # resources, and shouldn't be specified.
489
+ #
490
+ # </note>
491
+ #
492
+ # <note markdown="1"> The AMI that you choose for a compute environment must match the
493
+ # architecture of the instance types that you intend to use for that
494
+ # compute environment. For example, if your compute environment uses
495
+ # A1 instance types, the compute resource AMI that you choose must
496
+ # support ARM instances. Amazon ECS vends both x86 and ARM versions of
497
+ # the Amazon ECS-optimized Amazon Linux 2 AMI. For more information,
498
+ # see [Amazon ECS-optimized Amazon Linux 2 AMI][1] in the *Amazon
499
+ # Elastic Container Service Developer Guide*.
500
+ #
501
+ # </note>
502
+ #
503
+ #
504
+ #
505
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#ecs-optimized-ami-linux-variants.html
399
506
  # @return [String]
400
507
  #
401
508
  # @!attribute [rw] subnets
402
- # The VPC subnets into which the compute resources are launched. For
403
- # more information, see [VPCs and Subnets][1] in the *Amazon VPC User
404
- # Guide*.
509
+ # The VPC subnets into which the compute resources are launched. These
510
+ # subnets must be within the same VPC. This parameter is required for
511
+ # jobs running on Fargate resources, where it can contain up to 16
512
+ # subnets. For more information, see [VPCs and Subnets][1] in the
513
+ # *Amazon VPC User Guide*.
405
514
  #
406
515
  #
407
516
  #
@@ -412,14 +521,22 @@ module Aws::Batch
412
521
  # The Amazon EC2 security groups associated with instances launched in
413
522
  # the compute environment. One or more security groups must be
414
523
  # specified, either in `securityGroupIds` or using a launch template
415
- # referenced in `launchTemplate`. If security groups are specified
416
- # using both `securityGroupIds` and `launchTemplate`, the values in
417
- # `securityGroupIds` will be used.
524
+ # referenced in `launchTemplate`. This parameter is required for jobs
525
+ # running on Fargate resources and must contain at least one security
526
+ # group. (Fargate does not support launch templates.) If security
527
+ # groups are specified using both `securityGroupIds` and
528
+ # `launchTemplate`, the values in `securityGroupIds` will be used.
418
529
  # @return [Array<String>]
419
530
  #
420
531
  # @!attribute [rw] ec2_key_pair
421
532
  # The Amazon EC2 key pair that is used for instances launched in the
422
- # compute environment.
533
+ # compute environment. You can use this key pair to log in to your
534
+ # instances with SSH.
535
+ #
536
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
537
+ # resources, and shouldn't be specified.
538
+ #
539
+ # </note>
423
540
  # @return [String]
424
541
  #
425
542
  # @!attribute [rw] instance_role
@@ -431,17 +548,27 @@ module Aws::Batch
431
548
  # For more information, see [Amazon ECS Instance Role][1] in the *AWS
432
549
  # Batch User Guide*.
433
550
  #
551
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
552
+ # resources, and shouldn't be specified.
553
+ #
554
+ # </note>
555
+ #
434
556
  #
435
557
  #
436
558
  # [1]: https://docs.aws.amazon.com/batch/latest/userguide/instance_IAM_role.html
437
559
  # @return [String]
438
560
  #
439
561
  # @!attribute [rw] tags
440
- # Key-value pair tags to be applied to resources that are launched in
441
- # the compute environment. For AWS Batch, these take the form of
562
+ # Key-value pair tags to be applied to EC2 resources that are launched
563
+ # in the compute environment. For AWS Batch, these take the form of
442
564
  # "String1": "String2", where String1 is the tag key and String2
443
565
  # is the tag value—for example, \\\{ "Name": "AWS Batch Instance -
444
- # C4OnDemand" \\}.
566
+ # C4OnDemand" \\}. This is helpful for recognizing your AWS Batch
567
+ # instances in the Amazon EC2 console. These tags can not be updated
568
+ # or removed after the compute environment has been created; any
569
+ # changes require creating a new compute environment and removing the
570
+ # old compute environment. These tags are not seen when using the AWS
571
+ # Batch `ListTagsForResource` API operation.
445
572
  # @return [Hash<String,String>]
446
573
  #
447
574
  # @!attribute [rw] placement_group
@@ -454,6 +581,11 @@ module Aws::Batch
454
581
  # potential. For more information, see [Placement Groups][1] in the
455
582
  # *Amazon EC2 User Guide for Linux Instances*.
456
583
  #
584
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
585
+ # resources, and shouldn't be specified.
586
+ #
587
+ # </note>
588
+ #
457
589
  #
458
590
  #
459
591
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html
@@ -468,18 +600,36 @@ module Aws::Batch
468
600
  # (market) price and never more than your maximum percentage. If you
469
601
  # leave this field empty, the default value is 100% of the On-Demand
470
602
  # price.
603
+ #
604
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
605
+ # resources, and shouldn't be specified.
606
+ #
607
+ # </note>
471
608
  # @return [Integer]
472
609
  #
473
610
  # @!attribute [rw] spot_iam_fleet_role
474
611
  # The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role
475
612
  # applied to a `SPOT` compute environment. This role is required if
476
613
  # the allocation strategy set to `BEST_FIT` or if the allocation
477
- # strategy is not specified. For more information, see [Amazon EC2
614
+ # strategy isn't specified. For more information, see [Amazon EC2
478
615
  # Spot Fleet Role][1] in the *AWS Batch User Guide*.
479
616
  #
617
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
618
+ # resources, and shouldn't be specified.
619
+ #
620
+ # </note>
621
+ #
622
+ # To tag your Spot Instances on creation, the Spot Fleet IAM role
623
+ # specified here must use the newer **AmazonEC2SpotFleetTaggingRole**
624
+ # managed policy. The previously recommended
625
+ # **AmazonEC2SpotFleetRole** managed policy doesn't have the required
626
+ # permissions to tag Spot Instances. For more information, see [Spot
627
+ # Instances not tagged on creation][2] in the *AWS Batch User Guide*.
628
+ #
480
629
  #
481
630
  #
482
631
  # [1]: https://docs.aws.amazon.com/batch/latest/userguide/spot_fleet_IAM_role.html
632
+ # [2]: https://docs.aws.amazon.com/batch/latest/userguide/troubleshooting.html#spot-instance-no-tag
483
633
  # @return [String]
484
634
  #
485
635
  # @!attribute [rw] launch_template
@@ -491,11 +641,27 @@ module Aws::Batch
491
641
  # information, see [Launch Template Support][1] in the *AWS Batch User
492
642
  # Guide*.
493
643
  #
644
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
645
+ # resources, and shouldn't be specified.
646
+ #
647
+ # </note>
648
+ #
494
649
  #
495
650
  #
496
651
  # [1]: https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html
497
652
  # @return [Types::LaunchTemplateSpecification]
498
653
  #
654
+ # @!attribute [rw] ec2_configuration
655
+ # Provides information used to select Amazon Machine Images (AMIs) for
656
+ # instances in the compute environment. If `Ec2Configuration` isn't
657
+ # specified, the default is `ECS_AL1`.
658
+ #
659
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
660
+ # resources, and shouldn't be specified.
661
+ #
662
+ # </note>
663
+ # @return [Array<Types::Ec2Configuration>]
664
+ #
499
665
  # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/ComputeResource AWS API Documentation
500
666
  #
501
667
  class ComputeResource < Struct.new(
@@ -514,7 +680,8 @@ module Aws::Batch
514
680
  :placement_group,
515
681
  :bid_percentage,
516
682
  :spot_iam_fleet_role,
517
- :launch_template)
683
+ :launch_template,
684
+ :ec2_configuration)
518
685
  SENSITIVE = []
519
686
  include Aws::Structure
520
687
  end
@@ -529,11 +696,18 @@ module Aws::Batch
529
696
  # minv_cpus: 1,
530
697
  # maxv_cpus: 1,
531
698
  # desiredv_cpus: 1,
699
+ # subnets: ["String"],
700
+ # security_group_ids: ["String"],
532
701
  # }
533
702
  #
534
703
  # @!attribute [rw] minv_cpus
535
704
  # The minimum number of Amazon EC2 vCPUs that an environment should
536
705
  # maintain.
706
+ #
707
+ # <note markdown="1"> This parameter isnt applicable to jobs running on Fargate resources,
708
+ # and shouldn't be specified.
709
+ #
710
+ # </note>
537
711
  # @return [Integer]
538
712
  #
539
713
  # @!attribute [rw] maxv_cpus
@@ -543,14 +717,44 @@ module Aws::Batch
543
717
  #
544
718
  # @!attribute [rw] desiredv_cpus
545
719
  # The desired number of Amazon EC2 vCPUS in the compute environment.
720
+ #
721
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
722
+ # resources, and shouldn't be specified.
723
+ #
724
+ # </note>
546
725
  # @return [Integer]
547
726
  #
727
+ # @!attribute [rw] subnets
728
+ # The VPC subnets that the compute resources are launched into. This
729
+ # parameter is required for jobs running on Fargate compute resources,
730
+ # where it can contain up to 16 subnets. For more information, see
731
+ # [VPCs and Subnets][1] in the *Amazon VPC User Guide*. This can't be
732
+ # specified for EC2 compute resources. Providing an empty list will be
733
+ # handled as if this parameter wasn't specified and no change is
734
+ # made.
735
+ #
736
+ #
737
+ #
738
+ # [1]: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html
739
+ # @return [Array<String>]
740
+ #
741
+ # @!attribute [rw] security_group_ids
742
+ # The Amazon EC2 security groups associated with instances launched in
743
+ # the compute environment. This parameter is required for Fargate
744
+ # compute resources, where it can contain up to 5 security groups.
745
+ # This can't be specified for EC2 compute resources. Providing an
746
+ # empty list is handled as if this parameter wasn't specified and no
747
+ # changeis made.
748
+ # @return [Array<String>]
749
+ #
548
750
  # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/ComputeResourceUpdate AWS API Documentation
549
751
  #
550
752
  class ComputeResourceUpdate < Struct.new(
551
753
  :minv_cpus,
552
754
  :maxv_cpus,
553
- :desiredv_cpus)
755
+ :desiredv_cpus,
756
+ :subnets,
757
+ :security_group_ids)
554
758
  SENSITIVE = []
555
759
  include Aws::Structure
556
760
  end
@@ -563,11 +767,34 @@ module Aws::Batch
563
767
  # @return [String]
564
768
  #
565
769
  # @!attribute [rw] vcpus
566
- # The number of VCPUs allocated for the job.
770
+ # The number of vCPUs reserved for the container. Jobs running on EC2
771
+ # resources can specify the vCPU requirement for the job using
772
+ # `resourceRequirements` but the vCPU requirements can't be specified
773
+ # both here and in the `resourceRequirement` object. This parameter
774
+ # maps to `CpuShares` in the [Create a container][1] section of the
775
+ # [Docker Remote API][2] and the `--cpu-shares` option to [docker
776
+ # run][3]. Each vCPU is equivalent to 1,024 CPU shares. You must
777
+ # specify at least one vCPU. This is required but can be specified in
778
+ # several places. It must be specified for each node at least once.
779
+ #
780
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
781
+ # resources. Jobs running on Fargate resources must specify the vCPU
782
+ # requirement for the job using `resourceRequirements`.
783
+ #
784
+ # </note>
785
+ #
786
+ #
787
+ #
788
+ # [1]: https://docs.docker.com/engine/api/v1.23/#create-a-container
789
+ # [2]: https://docs.docker.com/engine/api/v1.23/
790
+ # [3]: https://docs.docker.com/engine/reference/run/
567
791
  # @return [Integer]
568
792
  #
569
793
  # @!attribute [rw] memory
570
- # The number of MiB of memory reserved for the job.
794
+ # For jobs run on EC2 resources that didn't specify memory
795
+ # requirements using `ResourceRequirement`, the number of MiB of
796
+ # memory reserved for the job. For other jobs, including all run on
797
+ # Fargate resources, see `resourceRequirements`.
571
798
  # @return [Integer]
572
799
  #
573
800
  # @!attribute [rw] command
@@ -581,12 +808,12 @@ module Aws::Batch
581
808
  #
582
809
  # @!attribute [rw] execution_role_arn
583
810
  # The Amazon Resource Name (ARN) of the execution role that AWS Batch
584
- # can assume. For more information, see [Amazon ECS task execution IAM
585
- # role][1].
811
+ # can assume. For more information, see [AWS Batch execution IAM
812
+ # role][1] in the *AWS Batch User Guide*.
586
813
  #
587
814
  #
588
815
  #
589
- # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html
816
+ # [1]: https://docs.aws.amazon.com/batch/latest/userguide/execution-IAM-role.html
590
817
  # @return [String]
591
818
  #
592
819
  # @!attribute [rw] volumes
@@ -609,21 +836,55 @@ module Aws::Batch
609
836
  #
610
837
  # @!attribute [rw] readonly_root_filesystem
611
838
  # When this parameter is true, the container is given read-only access
612
- # to its root file system.
839
+ # to its root file system. This parameter maps to `ReadonlyRootfs` in
840
+ # the [Create a container][1] section of the [Docker Remote API][2]
841
+ # and the `--read-only` option to [ `docker run` ][3].
842
+ #
843
+ #
844
+ #
845
+ # [1]: https://docs.docker.com/engine/api/v1.23/#create-a-container
846
+ # [2]: https://docs.docker.com/engine/api/v1.23/
847
+ # [3]: https://docs.docker.com/engine/reference/commandline/run/
613
848
  # @return [Boolean]
614
849
  #
615
850
  # @!attribute [rw] ulimits
616
- # A list of `ulimit` values to set in the container.
851
+ # A list of `ulimit` values to set in the container. This parameter
852
+ # maps to `Ulimits` in the [Create a container][1] section of the
853
+ # [Docker Remote API][2] and the `--ulimit` option to [docker run][3].
854
+ #
855
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
856
+ # resources.
857
+ #
858
+ # </note>
859
+ #
860
+ #
861
+ #
862
+ # [1]: https://docs.docker.com/engine/api/v1.23/#create-a-container
863
+ # [2]: https://docs.docker.com/engine/api/v1.23/
864
+ # [3]: https://docs.docker.com/engine/reference/run/
617
865
  # @return [Array<Types::Ulimit>]
618
866
  #
619
867
  # @!attribute [rw] privileged
620
868
  # When this parameter is true, the container is given elevated
621
- # privileges on the host container instance (similar to the `root`
622
- # user).
869
+ # permissions on the host container instance (similar to the `root`
870
+ # user). The default value is false.
871
+ #
872
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
873
+ # resources and shouldn't be provided, or specified as false.
874
+ #
875
+ # </note>
623
876
  # @return [Boolean]
624
877
  #
625
878
  # @!attribute [rw] user
626
- # The user name to use inside the container.
879
+ # The user name to use inside the container. This parameter maps to
880
+ # `User` in the [Create a container][1] section of the [Docker Remote
881
+ # API][2] and the `--user` option to [docker run][3].
882
+ #
883
+ #
884
+ #
885
+ # [1]: https://docs.docker.com/engine/api/v1.23/#create-a-container
886
+ # [2]: https://docs.docker.com/engine/api/v1.23/
887
+ # [3]: https://docs.docker.com/engine/reference/run/
627
888
  # @return [String]
628
889
  #
629
890
  # @!attribute [rw] exit_code
@@ -636,8 +897,8 @@ module Aws::Batch
636
897
  # @return [String]
637
898
  #
638
899
  # @!attribute [rw] container_instance_arn
639
- # The Amazon Resource Name (ARN) of the container instance on which
640
- # the container is running.
900
+ # The Amazon Resource Name (ARN) of the container instance that the
901
+ # container is running on.
641
902
  # @return [String]
642
903
  #
643
904
  # @!attribute [rw] task_arn
@@ -656,6 +917,11 @@ module Aws::Batch
656
917
  # @!attribute [rw] instance_type
657
918
  # The instance type of the underlying host infrastructure of a
658
919
  # multi-node parallel job.
920
+ #
921
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
922
+ # resources.
923
+ #
924
+ # </note>
659
925
  # @return [String]
660
926
  #
661
927
  # @!attribute [rw] network_interfaces
@@ -663,8 +929,8 @@ module Aws::Batch
663
929
  # @return [Array<Types::NetworkInterface>]
664
930
  #
665
931
  # @!attribute [rw] resource_requirements
666
- # The type and amount of a resource to assign to a container.
667
- # Currently, the only supported resource is `GPU`.
932
+ # The type and amount of resources to assign to a container. The
933
+ # supported resources include `GPU`, `MEMORY`, and `VCPU`.
668
934
  # @return [Array<Types::ResourceRequirement>]
669
935
  #
670
936
  # @!attribute [rw] linux_parameters
@@ -678,14 +944,15 @@ module Aws::Batch
678
944
  # This parameter maps to `LogConfig` in the [Create a container][1]
679
945
  # section of the [Docker Remote API][2] and the `--log-driver` option
680
946
  # to [docker run][3]. By default, containers use the same logging
681
- # driver that the Docker daemon uses. However the container may use a
682
- # different logging driver than the Docker daemon by specifying a log
683
- # driver with this parameter in the container definition. To use a
947
+ # driver that the Docker daemon uses. However the container might use
948
+ # a different logging driver than the Docker daemon by specifying a
949
+ # log driver with this parameter in the container definition. To use a
684
950
  # different logging driver for a container, the log system must be
685
- # configured properly on the container instance (or on a different log
686
- # server for remote logging options). For more information on the
687
- # options for different supported log drivers, see [Configure logging
688
- # drivers][4] in the Docker documentation.
951
+ # configured properly on the container instance. Or, alternatively, it
952
+ # must be configured on a different log server for remote logging
953
+ # options. For more information on the options for different supported
954
+ # log drivers, see [Configure logging drivers][4] in the Docker
955
+ # documentation.
689
956
  #
690
957
  # <note markdown="1"> AWS Batch currently supports a subset of the logging drivers
691
958
  # available to the Docker daemon (shown in the LogConfiguration data
@@ -721,14 +988,23 @@ module Aws::Batch
721
988
  #
722
989
  # @!attribute [rw] secrets
723
990
  # The secrets to pass to the container. For more information, see
724
- # [Specifying Sensitive Data][1] in the *Amazon Elastic Container
725
- # Service Developer Guide*.
991
+ # [Specifying sensitive data][1] in the *AWS Batch User Guide*.
726
992
  #
727
993
  #
728
994
  #
729
- # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html
995
+ # [1]: https://docs.aws.amazon.com/batch/latest/userguide/specifying-sensitive-data.html
730
996
  # @return [Array<Types::Secret>]
731
997
  #
998
+ # @!attribute [rw] network_configuration
999
+ # The network configuration for jobs running on Fargate resources.
1000
+ # Jobs running on EC2 resources must not specify this parameter.
1001
+ # @return [Types::NetworkConfiguration]
1002
+ #
1003
+ # @!attribute [rw] fargate_platform_configuration
1004
+ # The platform configuration for jobs running on Fargate resources.
1005
+ # Jobs running on EC2 resources must not specify this parameter.
1006
+ # @return [Types::FargatePlatformConfiguration]
1007
+ #
732
1008
  # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/ContainerDetail AWS API Documentation
733
1009
  #
734
1010
  class ContainerDetail < Struct.new(
@@ -755,7 +1031,9 @@ module Aws::Batch
755
1031
  :resource_requirements,
756
1032
  :linux_parameters,
757
1033
  :log_configuration,
758
- :secrets)
1034
+ :secrets,
1035
+ :network_configuration,
1036
+ :fargate_platform_configuration)
759
1037
  SENSITIVE = []
760
1038
  include Aws::Structure
761
1039
  end
@@ -779,19 +1057,43 @@ module Aws::Batch
779
1057
  # resource_requirements: [
780
1058
  # {
781
1059
  # value: "String", # required
782
- # type: "GPU", # required, accepts GPU
1060
+ # type: "GPU", # required, accepts GPU, VCPU, MEMORY
783
1061
  # },
784
1062
  # ],
785
1063
  # }
786
1064
  #
787
1065
  # @!attribute [rw] vcpus
788
- # The number of vCPUs to reserve for the container. This value
789
- # overrides the value set in the job definition.
1066
+ # This parameter is deprecated and not supported for jobs run on
1067
+ # Fargate resources, see `resourceRequirement`. For jobs run on EC2
1068
+ # resources, the number of vCPUs to reserve for the container. This
1069
+ # value overrides the value set in the job definition. Jobs run on EC2
1070
+ # resources can specify the vCPU requirement using
1071
+ # `resourceRequirement` but the vCPU requirements can't be specified
1072
+ # both here and in `resourceRequirement`. This parameter maps to
1073
+ # `CpuShares` in the [Create a container][1] section of the [Docker
1074
+ # Remote API][2] and the `--cpu-shares` option to [docker run][3].
1075
+ # Each vCPU is equivalent to 1,024 CPU shares. You must specify at
1076
+ # least one vCPU.
1077
+ #
1078
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
1079
+ # resources and shouldn't be provided. Jobs running on Fargate
1080
+ # resources must specify the vCPU requirement for the job using
1081
+ # `resourceRequirements`.
1082
+ #
1083
+ # </note>
1084
+ #
1085
+ #
1086
+ #
1087
+ # [1]: https://docs.docker.com/engine/api/v1.23/#create-a-container
1088
+ # [2]: https://docs.docker.com/engine/api/v1.23/
1089
+ # [3]: https://docs.docker.com/engine/reference/run/
790
1090
  # @return [Integer]
791
1091
  #
792
1092
  # @!attribute [rw] memory
793
- # The number of MiB of memory reserved for the job. This value
794
- # overrides the value set in the job definition.
1093
+ # This parameter is deprecated and not supported for jobs run on
1094
+ # Fargate resources, use `ResourceRequirement`. For jobs run on EC2
1095
+ # resource, the number of MiB of memory reserved for the job. This
1096
+ # value overrides the value set in the job definition.
795
1097
  # @return [Integer]
796
1098
  #
797
1099
  # @!attribute [rw] command
@@ -800,8 +1102,12 @@ module Aws::Batch
800
1102
  # @return [Array<String>]
801
1103
  #
802
1104
  # @!attribute [rw] instance_type
803
- # The instance type to use for a multi-node parallel job. This
804
- # parameter is not valid for single-node container jobs.
1105
+ # The instance type to use for a multi-node parallel job.
1106
+ #
1107
+ # <note markdown="1"> This parameter isn't applicable to single-node container jobs or
1108
+ # for jobs running on Fargate resources and shouldn't be provided.
1109
+ #
1110
+ # </note>
805
1111
  # @return [String]
806
1112
  #
807
1113
  # @!attribute [rw] environment
@@ -818,9 +1124,9 @@ module Aws::Batch
818
1124
  # @return [Array<Types::KeyValuePair>]
819
1125
  #
820
1126
  # @!attribute [rw] resource_requirements
821
- # The type and amount of a resource to assign to a container. This
822
- # value overrides the value set in the job definition. Currently, the
823
- # only supported resource is `GPU`.
1127
+ # The type and amount of resources to assign to a container. This
1128
+ # overrides the settings in the job definition. The supported
1129
+ # resources include `GPU`, `MEMORY`, and `VCPU`.
824
1130
  # @return [Array<Types::ResourceRequirement>]
825
1131
  #
826
1132
  # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/ContainerOverrides AWS API Documentation
@@ -884,7 +1190,7 @@ module Aws::Batch
884
1190
  # resource_requirements: [
885
1191
  # {
886
1192
  # value: "String", # required
887
- # type: "GPU", # required, accepts GPU
1193
+ # type: "GPU", # required, accepts GPU, VCPU, MEMORY
888
1194
  # },
889
1195
  # ],
890
1196
  # linux_parameters: {
@@ -925,6 +1231,12 @@ module Aws::Batch
925
1231
  # value_from: "String", # required
926
1232
  # },
927
1233
  # ],
1234
+ # network_configuration: {
1235
+ # assign_public_ip: "ENABLED", # accepts ENABLED, DISABLED
1236
+ # },
1237
+ # fargate_platform_configuration: {
1238
+ # platform_version: "String",
1239
+ # },
928
1240
  # }
929
1241
  #
930
1242
  # @!attribute [rw] image
@@ -937,6 +1249,12 @@ module Aws::Batch
937
1249
  # `Image` in the [Create a container][1] section of the [Docker Remote
938
1250
  # API][2] and the `IMAGE` parameter of [docker run][3].
939
1251
  #
1252
+ # <note markdown="1"> Docker image architecture must match the processor architecture of
1253
+ # the compute resources that they're scheduled on. For example,
1254
+ # ARM-based Docker images can only run on ARM-based compute resources.
1255
+ #
1256
+ # </note>
1257
+ #
940
1258
  # * Images in Amazon ECR repositories use the full registry and
941
1259
  # repository URI (for example,
942
1260
  # `012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>`).
@@ -958,13 +1276,24 @@ module Aws::Batch
958
1276
  # @return [String]
959
1277
  #
960
1278
  # @!attribute [rw] vcpus
961
- # The number of vCPUs reserved for the container. This parameter maps
962
- # to `CpuShares` in the [Create a container][1] section of the [Docker
963
- # Remote API][2] and the `--cpu-shares` option to [docker run][3].
964
- # Each vCPU is equivalent to 1,024 CPU shares. You must specify at
965
- # least one vCPU. This is required but can be specified in several
966
- # places for multi-node parallel (MNP) jobs; it must be specified for
967
- # each node at least once.
1279
+ # This parameter is deprecated and not supported for jobs run on
1280
+ # Fargate resources, see `resourceRequirement`. The number of vCPUs
1281
+ # reserved for the container. Jobs running on EC2 resources can
1282
+ # specify the vCPU requirement for the job using
1283
+ # `resourceRequirements` but the vCPU requirements can't be specified
1284
+ # both here and in the `resourceRequirement` structure. This parameter
1285
+ # maps to `CpuShares` in the [Create a container][1] section of the
1286
+ # [Docker Remote API][2] and the `--cpu-shares` option to [docker
1287
+ # run][3]. Each vCPU is equivalent to 1,024 CPU shares. You must
1288
+ # specify at least one vCPU. This is required but can be specified in
1289
+ # several places. It must be specified for each node at least once.
1290
+ #
1291
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
1292
+ # resources and shouldn't be provided. Jobs running on Fargate
1293
+ # resources must specify the vCPU requirement for the job using
1294
+ # `resourceRequirements`.
1295
+ #
1296
+ # </note>
968
1297
  #
969
1298
  #
970
1299
  #
@@ -974,16 +1303,19 @@ module Aws::Batch
974
1303
  # @return [Integer]
975
1304
  #
976
1305
  # @!attribute [rw] memory
977
- # The hard limit (in MiB) of memory to present to the container. If
978
- # your container attempts to exceed the memory specified here, the
979
- # container is killed. This parameter maps to `Memory` in the [Create
980
- # a container][1] section of the [Docker Remote API][2] and the
981
- # `--memory` option to [docker run][3]. You must specify at least 4
982
- # MiB of memory for a job. This is required but can be specified in
983
- # several places for multi-node parallel (MNP) jobs; it must be
1306
+ # This parameter is deprecated and not supported for jobs run on
1307
+ # Fargate resources, use `ResourceRequirement`. For jobs run on EC2
1308
+ # resources can specify the memory requirement using the
1309
+ # `ResourceRequirement` structure. The hard limit (in MiB) of memory
1310
+ # to present to the container. If your container attempts to exceed
1311
+ # the memory specified here, the container is killed. This parameter
1312
+ # maps to `Memory` in the [Create a container][1] section of the
1313
+ # [Docker Remote API][2] and the `--memory` option to [docker run][3].
1314
+ # You must specify at least 4 MiB of memory for a job. This is
1315
+ # required but can be specified in several places; it must be
984
1316
  # specified for each node at least once.
985
1317
  #
986
- # <note markdown="1"> If you are trying to maximize your resource utilization by providing
1318
+ # <note markdown="1"> If you're trying to maximize your resource utilization by providing
987
1319
  # your jobs as much memory as possible for a particular instance type,
988
1320
  # see [Memory Management][4] in the *AWS Batch User Guide*.
989
1321
  #
@@ -1014,17 +1346,24 @@ module Aws::Batch
1014
1346
  #
1015
1347
  # @!attribute [rw] job_role_arn
1016
1348
  # The Amazon Resource Name (ARN) of the IAM role that the container
1017
- # can assume for AWS permissions.
1349
+ # can assume for AWS permissions. For more information, see [IAM Roles
1350
+ # for Tasks][1] in the *Amazon Elastic Container Service Developer
1351
+ # Guide*.
1352
+ #
1353
+ #
1354
+ #
1355
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html
1018
1356
  # @return [String]
1019
1357
  #
1020
1358
  # @!attribute [rw] execution_role_arn
1021
1359
  # The Amazon Resource Name (ARN) of the execution role that AWS Batch
1022
- # can assume. For more information, see [Amazon ECS task execution IAM
1023
- # role][1].
1360
+ # can assume. Jobs running on Fargate resources must provide an
1361
+ # execution role. For more information, see [AWS Batch execution IAM
1362
+ # role][1] in the *AWS Batch User Guide*.
1024
1363
  #
1025
1364
  #
1026
1365
  #
1027
- # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html
1366
+ # [1]: https://docs.aws.amazon.com/batch/latest/userguide/execution-IAM-role.html
1028
1367
  # @return [String]
1029
1368
  #
1030
1369
  # @!attribute [rw] volumes
@@ -1036,7 +1375,7 @@ module Aws::Batch
1036
1375
  # maps to `Env` in the [Create a container][1] section of the [Docker
1037
1376
  # Remote API][2] and the `--env` option to [docker run][3].
1038
1377
  #
1039
- # We do not recommend using plaintext environment variables for
1378
+ # We don't recommend using plaintext environment variables for
1040
1379
  # sensitive information, such as credential data.
1041
1380
  #
1042
1381
  # <note markdown="1"> Environment variables must not start with `AWS_BATCH`; this naming
@@ -1078,10 +1417,16 @@ module Aws::Batch
1078
1417
  #
1079
1418
  # @!attribute [rw] privileged
1080
1419
  # When this parameter is true, the container is given elevated
1081
- # privileges on the host container instance (similar to the `root`
1420
+ # permissions on the host container instance (similar to the `root`
1082
1421
  # user). This parameter maps to `Privileged` in the [Create a
1083
1422
  # container][1] section of the [Docker Remote API][2] and the
1084
- # `--privileged` option to [docker run][3].
1423
+ # `--privileged` option to [docker run][3]. The default value is
1424
+ # false.
1425
+ #
1426
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
1427
+ # resources and shouldn't be provided, or specified as false.
1428
+ #
1429
+ # </note>
1085
1430
  #
1086
1431
  #
1087
1432
  #
@@ -1095,6 +1440,11 @@ module Aws::Batch
1095
1440
  # `Ulimits` in the [Create a container][1] section of the [Docker
1096
1441
  # Remote API][2] and the `--ulimit` option to [docker run][3].
1097
1442
  #
1443
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
1444
+ # resources and shouldn't be provided.
1445
+ #
1446
+ # </note>
1447
+ #
1098
1448
  #
1099
1449
  #
1100
1450
  # [1]: https://docs.docker.com/engine/api/v1.23/#create-a-container
@@ -1115,15 +1465,18 @@ module Aws::Batch
1115
1465
  # @return [String]
1116
1466
  #
1117
1467
  # @!attribute [rw] instance_type
1118
- # The instance type to use for a multi-node parallel job. Currently
1119
- # all node groups in a multi-node parallel job must use the same
1120
- # instance type. This parameter is not valid for single-node container
1121
- # jobs.
1468
+ # The instance type to use for a multi-node parallel job. All node
1469
+ # groups in a multi-node parallel job must use the same instance type.
1470
+ #
1471
+ # <note markdown="1"> This parameter isn't applicable to single-node container jobs or
1472
+ # for jobs running on Fargate resources and shouldn't be provided.
1473
+ #
1474
+ # </note>
1122
1475
  # @return [String]
1123
1476
  #
1124
1477
  # @!attribute [rw] resource_requirements
1125
- # The type and amount of a resource to assign to a container.
1126
- # Currently, the only supported resource is `GPU`.
1478
+ # The type and amount of resources to assign to a container. The
1479
+ # supported resources include `GPU`, `MEMORY`, and `VCPU`.
1127
1480
  # @return [Array<Types::ResourceRequirement>]
1128
1481
  #
1129
1482
  # @!attribute [rw] linux_parameters
@@ -1137,9 +1490,9 @@ module Aws::Batch
1137
1490
  # This parameter maps to `LogConfig` in the [Create a container][1]
1138
1491
  # section of the [Docker Remote API][2] and the `--log-driver` option
1139
1492
  # to [docker run][3]. By default, containers use the same logging
1140
- # driver that the Docker daemon uses. However the container may use a
1141
- # different logging driver than the Docker daemon by specifying a log
1142
- # driver with this parameter in the container definition. To use a
1493
+ # driver that the Docker daemon uses. However the container might use
1494
+ # a different logging driver than the Docker daemon by specifying a
1495
+ # log driver with this parameter in the container definition. To use a
1143
1496
  # different logging driver for a container, the log system must be
1144
1497
  # configured properly on the container instance (or on a different log
1145
1498
  # server for remote logging options). For more information on the
@@ -1179,14 +1532,23 @@ module Aws::Batch
1179
1532
  #
1180
1533
  # @!attribute [rw] secrets
1181
1534
  # The secrets for the container. For more information, see [Specifying
1182
- # Sensitive Data][1] in the *Amazon Elastic Container Service
1183
- # Developer Guide*.
1535
+ # sensitive data][1] in the *AWS Batch User Guide*.
1184
1536
  #
1185
1537
  #
1186
1538
  #
1187
- # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html
1539
+ # [1]: https://docs.aws.amazon.com/batch/latest/userguide/specifying-sensitive-data.html
1188
1540
  # @return [Array<Types::Secret>]
1189
1541
  #
1542
+ # @!attribute [rw] network_configuration
1543
+ # The network configuration for jobs running on Fargate resources.
1544
+ # Jobs running on EC2 resources must not specify this parameter.
1545
+ # @return [Types::NetworkConfiguration]
1546
+ #
1547
+ # @!attribute [rw] fargate_platform_configuration
1548
+ # The platform configuration for jobs running on Fargate resources.
1549
+ # Jobs running on EC2 resources must not specify this parameter.
1550
+ # @return [Types::FargatePlatformConfiguration]
1551
+ #
1190
1552
  # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/ContainerProperties AWS API Documentation
1191
1553
  #
1192
1554
  class ContainerProperties < Struct.new(
@@ -1207,7 +1569,9 @@ module Aws::Batch
1207
1569
  :resource_requirements,
1208
1570
  :linux_parameters,
1209
1571
  :log_configuration,
1210
- :secrets)
1572
+ :secrets,
1573
+ :network_configuration,
1574
+ :fargate_platform_configuration)
1211
1575
  SENSITIVE = []
1212
1576
  include Aws::Structure
1213
1577
  end
@@ -1240,17 +1604,17 @@ module Aws::Batch
1240
1604
  # type: "MANAGED", # required, accepts MANAGED, UNMANAGED
1241
1605
  # state: "ENABLED", # accepts ENABLED, DISABLED
1242
1606
  # compute_resources: {
1243
- # type: "EC2", # required, accepts EC2, SPOT
1607
+ # type: "EC2", # required, accepts EC2, SPOT, FARGATE, FARGATE_SPOT
1244
1608
  # allocation_strategy: "BEST_FIT", # accepts BEST_FIT, BEST_FIT_PROGRESSIVE, SPOT_CAPACITY_OPTIMIZED
1245
- # minv_cpus: 1, # required
1609
+ # minv_cpus: 1,
1246
1610
  # maxv_cpus: 1, # required
1247
1611
  # desiredv_cpus: 1,
1248
- # instance_types: ["String"], # required
1612
+ # instance_types: ["String"],
1249
1613
  # image_id: "String",
1250
1614
  # subnets: ["String"], # required
1251
1615
  # security_group_ids: ["String"],
1252
1616
  # ec2_key_pair: "String",
1253
- # instance_role: "String", # required
1617
+ # instance_role: "String",
1254
1618
  # tags: {
1255
1619
  # "String" => "String",
1256
1620
  # },
@@ -1262,8 +1626,17 @@ module Aws::Batch
1262
1626
  # launch_template_name: "String",
1263
1627
  # version: "String",
1264
1628
  # },
1629
+ # ec2_configuration: [
1630
+ # {
1631
+ # image_type: "ImageType", # required
1632
+ # image_id_override: "ImageIdOverride",
1633
+ # },
1634
+ # ],
1265
1635
  # },
1266
1636
  # service_role: "String", # required
1637
+ # tags: {
1638
+ # "TagKey" => "TagValue",
1639
+ # },
1267
1640
  # }
1268
1641
  #
1269
1642
  # @!attribute [rw] compute_environment_name
@@ -1272,8 +1645,9 @@ module Aws::Batch
1272
1645
  # @return [String]
1273
1646
  #
1274
1647
  # @!attribute [rw] type
1275
- # The type of the compute environment. For more information, see
1276
- # [Compute Environments][1] in the *AWS Batch User Guide*.
1648
+ # The type of the compute environment: `MANAGED` or `UNMANAGED`. For
1649
+ # more information, see [Compute Environments][1] in the *AWS Batch
1650
+ # User Guide*.
1277
1651
  #
1278
1652
  #
1279
1653
  #
@@ -1287,10 +1661,10 @@ module Aws::Batch
1287
1661
  # @return [String]
1288
1662
  #
1289
1663
  # @!attribute [rw] compute_resources
1290
- # Details of the compute resources managed by the compute environment.
1291
- # This parameter is required for managed compute environments. For
1292
- # more information, see [Compute Environments][1] in the *AWS Batch
1293
- # User Guide*.
1664
+ # Details about the compute resources managed by the compute
1665
+ # environment. This parameter is required for managed compute
1666
+ # environments. For more information, see [Compute Environments][1] in
1667
+ # the *AWS Batch User Guide*.
1294
1668
  #
1295
1669
  #
1296
1670
  #
@@ -1307,14 +1681,31 @@ module Aws::Batch
1307
1681
  #
1308
1682
  # <note markdown="1"> Depending on how you created your AWS Batch service role, its ARN
1309
1683
  # may contain the `service-role` path prefix. When you only specify
1310
- # the name of the service role, AWS Batch assumes that your ARN does
1311
- # not use the `service-role` path prefix. Because of this, we
1684
+ # the name of the service role, AWS Batch assumes that your ARN
1685
+ # doesn't use the `service-role` path prefix. Because of this, we
1312
1686
  # recommend that you specify the full ARN of your service role when
1313
1687
  # you create compute environments.
1314
1688
  #
1315
1689
  # </note>
1316
1690
  # @return [String]
1317
1691
  #
1692
+ # @!attribute [rw] tags
1693
+ # The tags that you apply to the compute environment to help you
1694
+ # categorize and organize your resources. Each tag consists of a key
1695
+ # and an optional value. For more information, see [Tagging AWS
1696
+ # Resources][1] in *AWS General Reference*.
1697
+ #
1698
+ # These tags can be updated or removed using the [TagResource][2] and
1699
+ # [UntagResource][3] API operations. These tags don't propagate to
1700
+ # the underlying compute resources.
1701
+ #
1702
+ #
1703
+ #
1704
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
1705
+ # [2]: https://docs.aws.amazon.com/batch/latest/APIReference/API_TagResource.html
1706
+ # [3]: https://docs.aws.amazon.com/batch/latest/APIReference/API_UntagResource.html
1707
+ # @return [Hash<String,String>]
1708
+ #
1318
1709
  # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/CreateComputeEnvironmentRequest AWS API Documentation
1319
1710
  #
1320
1711
  class CreateComputeEnvironmentRequest < Struct.new(
@@ -1322,7 +1713,8 @@ module Aws::Batch
1322
1713
  :type,
1323
1714
  :state,
1324
1715
  :compute_resources,
1325
- :service_role)
1716
+ :service_role,
1717
+ :tags)
1326
1718
  SENSITIVE = []
1327
1719
  include Aws::Structure
1328
1720
  end
@@ -1357,6 +1749,9 @@ module Aws::Batch
1357
1749
  # compute_environment: "String", # required
1358
1750
  # },
1359
1751
  # ],
1752
+ # tags: {
1753
+ # "TagKey" => "TagValue",
1754
+ # },
1360
1755
  # }
1361
1756
  #
1362
1757
  # @!attribute [rw] job_queue_name
@@ -1366,7 +1761,7 @@ module Aws::Batch
1366
1761
  # @!attribute [rw] state
1367
1762
  # The state of the job queue. If the job queue state is `ENABLED`, it
1368
1763
  # is able to accept jobs. If the job queue state is `DISABLED`, new
1369
- # jobs cannot be added to the queue, but jobs already in the queue can
1764
+ # jobs can't be added to the queue, but jobs already in the queue can
1370
1765
  # finish.
1371
1766
  # @return [String]
1372
1767
  #
@@ -1374,7 +1769,7 @@ module Aws::Batch
1374
1769
  # The priority of the job queue. Job queues with a higher priority (or
1375
1770
  # a higher integer value for the `priority` parameter) are evaluated
1376
1771
  # first when associated with the same compute environment. Priority is
1377
- # determined in descending order, for example, a job queue with a
1772
+ # determined in descending order. For example, a job queue with a
1378
1773
  # priority value of `10` is given scheduling preference over a job
1379
1774
  # queue with a priority value of `1`.
1380
1775
  # @return [Integer]
@@ -1382,19 +1777,34 @@ module Aws::Batch
1382
1777
  # @!attribute [rw] compute_environment_order
1383
1778
  # The set of compute environments mapped to a job queue and their
1384
1779
  # order relative to each other. The job scheduler uses this parameter
1385
- # to determine which compute environment should execute a given job.
1780
+ # to determine which compute environment should run a specific job.
1386
1781
  # Compute environments must be in the `VALID` state before you can
1387
1782
  # associate them with a job queue. You can associate up to three
1388
- # compute environments with a job queue.
1783
+ # compute environments with a job queue. All of the compute
1784
+ # environments must be either EC2 (`EC2` or `SPOT`) or Fargate
1785
+ # (`FARGATE` or `FARGATE_SPOT`); EC2 and Fargate compute environments
1786
+ # can't be mixed.
1389
1787
  # @return [Array<Types::ComputeEnvironmentOrder>]
1390
1788
  #
1789
+ # @!attribute [rw] tags
1790
+ # The tags that you apply to the job queue to help you categorize and
1791
+ # organize your resources. Each tag consists of a key and an optional
1792
+ # value. For more information, see [Tagging AWS Resources][1] in *AWS
1793
+ # General Reference*.
1794
+ #
1795
+ #
1796
+ #
1797
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
1798
+ # @return [Hash<String,String>]
1799
+ #
1391
1800
  # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/CreateJobQueueRequest AWS API Documentation
1392
1801
  #
1393
1802
  class CreateJobQueueRequest < Struct.new(
1394
1803
  :job_queue_name,
1395
1804
  :state,
1396
1805
  :priority,
1397
- :compute_environment_order)
1806
+ :compute_environment_order,
1807
+ :tags)
1398
1808
  SENSITIVE = []
1399
1809
  include Aws::Structure
1400
1810
  end
@@ -1510,7 +1920,7 @@ module Aws::Batch
1510
1920
  # response element. The remaining results of the initial request can
1511
1921
  # be seen by sending another `DescribeComputeEnvironments` request
1512
1922
  # with the returned `nextToken` value. This value can be between 1 and
1513
- # 100. If this parameter is not used, then
1923
+ # 100. If this parameter isn't used, then
1514
1924
  # `DescribeComputeEnvironments` returns up to 100 results and a
1515
1925
  # `nextToken` value if applicable.
1516
1926
  # @return [Integer]
@@ -1584,7 +1994,7 @@ module Aws::Batch
1584
1994
  # single page along with a `nextToken` response element. The remaining
1585
1995
  # results of the initial request can be seen by sending another
1586
1996
  # `DescribeJobDefinitions` request with the returned `nextToken`
1587
- # value. This value can be between 1 and 100. If this parameter is not
1997
+ # value. This value can be between 1 and 100. If this parameter isn't
1588
1998
  # used, then `DescribeJobDefinitions` returns up to 100 results and a
1589
1999
  # `nextToken` value if applicable.
1590
2000
  # @return [Integer]
@@ -1594,7 +2004,7 @@ module Aws::Batch
1594
2004
  # @return [String]
1595
2005
  #
1596
2006
  # @!attribute [rw] status
1597
- # The status with which to filter job definitions.
2007
+ # The status used to filter job definitions.
1598
2008
  # @return [String]
1599
2009
  #
1600
2010
  # @!attribute [rw] next_token
@@ -1666,7 +2076,7 @@ module Aws::Batch
1666
2076
  # `nextToken` response element. The remaining results of the initial
1667
2077
  # request can be seen by sending another `DescribeJobQueues` request
1668
2078
  # with the returned `nextToken` value. This value can be between 1 and
1669
- # 100. If this parameter is not used, then `DescribeJobQueues` returns
2079
+ # 100. If this parameter isn't used, then `DescribeJobQueues` returns
1670
2080
  # up to 100 results and a `nextToken` value if applicable.
1671
2081
  # @return [Integer]
1672
2082
  #
@@ -1749,6 +2159,11 @@ module Aws::Batch
1749
2159
 
1750
2160
  # An object representing a container instance host device.
1751
2161
  #
2162
+ # <note markdown="1"> This object isn't applicable to jobs running on Fargate resources and
2163
+ # shouldn't be provided.
2164
+ #
2165
+ # </note>
2166
+ #
1752
2167
  # @note When making an API call, you may pass Device
1753
2168
  # data as a hash:
1754
2169
  #
@@ -1763,7 +2178,7 @@ module Aws::Batch
1763
2178
  # @return [String]
1764
2179
  #
1765
2180
  # @!attribute [rw] container_path
1766
- # The path inside the container at which to expose the host device. By
2181
+ # The path inside the container used to expose the host device. By
1767
2182
  # default the `hostPath` value is used.
1768
2183
  # @return [String]
1769
2184
  #
@@ -1783,10 +2198,159 @@ module Aws::Batch
1783
2198
  include Aws::Structure
1784
2199
  end
1785
2200
 
2201
+ # Provides information used to select Amazon Machine Images (AMIs) for
2202
+ # instances in the compute environment. If the `Ec2Configuration` isn't
2203
+ # specified, the default is `ECS_AL1`.
2204
+ #
2205
+ # <note markdown="1"> This object isn't applicable to jobs running on Fargate resources.
2206
+ #
2207
+ # </note>
2208
+ #
2209
+ # @note When making an API call, you may pass Ec2Configuration
2210
+ # data as a hash:
2211
+ #
2212
+ # {
2213
+ # image_type: "ImageType", # required
2214
+ # image_id_override: "ImageIdOverride",
2215
+ # }
2216
+ #
2217
+ # @!attribute [rw] image_type
2218
+ # The image type to match with the instance type to select an AMI. If
2219
+ # the `imageIdOverride` parameter isn't specified, then a recent
2220
+ # [Amazon ECS-optimized AMI][1] is used.
2221
+ #
2222
+ # ECS\_AL2
2223
+ #
2224
+ # : [Amazon Linux 2][2]− Default for all AWS Graviton-based instance
2225
+ # families (for example, `C6g`, `M6g`, `R6g`, and `T4g`) and can be
2226
+ # used for all non-GPU instance types.
2227
+ #
2228
+ # ECS\_AL2\_NVIDIA
2229
+ #
2230
+ # : [Amazon Linux 2 (GPU)][3]−Default for all GPU instance families
2231
+ # (for example `P4` and `G4`) and can be used for all non-AWS
2232
+ # Graviton-based instance types.
2233
+ #
2234
+ # ECS\_AL1
2235
+ #
2236
+ # : [Amazon Linux][4]−Default for all non-GPU, non-AWS-Graviton
2237
+ # instance families. Amazon Linux is reaching the end-of-life of
2238
+ # standard support. For more information, see [Amazon Linux AMI][5].
2239
+ #
2240
+ #
2241
+ #
2242
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html
2243
+ # [2]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#al2ami
2244
+ # [3]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#gpuami
2245
+ # [4]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#alami
2246
+ # [5]: http://aws.amazon.com/amazon-linux-ami/
2247
+ # @return [String]
2248
+ #
2249
+ # @!attribute [rw] image_id_override
2250
+ # The AMI ID used for instances launched in the compute environment
2251
+ # that match the image type. This setting overrides the `imageId` set
2252
+ # in the `computeResource` object.
2253
+ # @return [String]
2254
+ #
2255
+ # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/Ec2Configuration AWS API Documentation
2256
+ #
2257
+ class Ec2Configuration < Struct.new(
2258
+ :image_type,
2259
+ :image_id_override)
2260
+ SENSITIVE = []
2261
+ include Aws::Structure
2262
+ end
2263
+
2264
+ # Specifies a set of conditions to be met, and an action to take
2265
+ # (`RETRY` or `EXIT`) if all conditions are met.
2266
+ #
2267
+ # @note When making an API call, you may pass EvaluateOnExit
2268
+ # data as a hash:
2269
+ #
2270
+ # {
2271
+ # on_status_reason: "String",
2272
+ # on_reason: "String",
2273
+ # on_exit_code: "String",
2274
+ # action: "RETRY", # required, accepts RETRY, EXIT
2275
+ # }
2276
+ #
2277
+ # @!attribute [rw] on_status_reason
2278
+ # Contains a glob pattern to match against the `StatusReason` returned
2279
+ # for a job. The patten can be up to 512 characters long, can contain
2280
+ # letters, numbers, periods (.), colons (:), and white space (spaces,
2281
+ # tabs). and can optionally end with an asterisk (*) so that only the
2282
+ # start of the string needs to be an exact match.
2283
+ # @return [String]
2284
+ #
2285
+ # @!attribute [rw] on_reason
2286
+ # Contains a glob pattern to match against the `Reason` returned for a
2287
+ # job. The patten can be up to 512 characters long, can contain
2288
+ # letters, numbers, periods (.), colons (:), and white space (spaces,
2289
+ # tabs), and can optionally end with an asterisk (*) so that only the
2290
+ # start of the string needs to be an exact match.
2291
+ # @return [String]
2292
+ #
2293
+ # @!attribute [rw] on_exit_code
2294
+ # Contains a glob pattern to match against the decimal representation
2295
+ # of the `ExitCode` returned for a job. The patten can be up to 512
2296
+ # characters long, can contain only numbers, and can optionally end
2297
+ # with an asterisk (*) so that only the start of the string needs to
2298
+ # be an exact match.
2299
+ # @return [String]
2300
+ #
2301
+ # @!attribute [rw] action
2302
+ # Specifies the action to take if all of the specified conditions
2303
+ # (`onStatusReason`, `onReason`, and `onExitCode`) are met. The values
2304
+ # are not case sensitive.
2305
+ # @return [String]
2306
+ #
2307
+ # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/EvaluateOnExit AWS API Documentation
2308
+ #
2309
+ class EvaluateOnExit < Struct.new(
2310
+ :on_status_reason,
2311
+ :on_reason,
2312
+ :on_exit_code,
2313
+ :action)
2314
+ SENSITIVE = []
2315
+ include Aws::Structure
2316
+ end
2317
+
2318
+ # The platform configuration for jobs running on Fargate resources. Jobs
2319
+ # running on EC2 resources must not specify this parameter.
2320
+ #
2321
+ # @note When making an API call, you may pass FargatePlatformConfiguration
2322
+ # data as a hash:
2323
+ #
2324
+ # {
2325
+ # platform_version: "String",
2326
+ # }
2327
+ #
2328
+ # @!attribute [rw] platform_version
2329
+ # The AWS Fargate platform version on which the jobs are running. A
2330
+ # platform version is specified only for jobs running on Fargate
2331
+ # resources. If one isn't specified, the `LATEST` platform version is
2332
+ # used by default. This will use a recent, approved version of the AWS
2333
+ # Fargate platform for compute resources. For more information, see
2334
+ # [AWS Fargate platform versions][1] in the *Amazon Elastic Container
2335
+ # Service Developer Guide*.
2336
+ #
2337
+ #
2338
+ #
2339
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html
2340
+ # @return [String]
2341
+ #
2342
+ # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/FargatePlatformConfiguration AWS API Documentation
2343
+ #
2344
+ class FargatePlatformConfiguration < Struct.new(
2345
+ :platform_version)
2346
+ SENSITIVE = []
2347
+ include Aws::Structure
2348
+ end
2349
+
1786
2350
  # Determine whether your data volume persists on the host container
1787
2351
  # instance and where it is stored. If this parameter is empty, then the
1788
2352
  # Docker daemon assigns a host path for your data volume, but the data
1789
- # is not guaranteed to persist after the containers associated with it
2353
+ # isn't guaranteed to persist after the containers associated with it
1790
2354
  # stop running.
1791
2355
  #
1792
2356
  # @note When making an API call, you may pass Host
@@ -1805,6 +2369,11 @@ module Aws::Batch
1805
2369
  # source path location does not exist on the host container instance,
1806
2370
  # the Docker daemon creates it. If the location does exist, the
1807
2371
  # contents of the source path folder are exported.
2372
+ #
2373
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
2374
+ # resources and shouldn't be provided.
2375
+ #
2376
+ # </note>
1808
2377
  # @return [String]
1809
2378
  #
1810
2379
  # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/Host AWS API Documentation
@@ -1834,7 +2403,14 @@ module Aws::Batch
1834
2403
  # @return [String]
1835
2404
  #
1836
2405
  # @!attribute [rw] type
1837
- # The type of job definition.
2406
+ # The type of job definition. If the job is run on Fargate resources,
2407
+ # then `multinode` isn't supported. For more information about
2408
+ # multi-node parallel jobs, see [Creating a multi-node parallel job
2409
+ # definition][1] in the *AWS Batch User Guide*.
2410
+ #
2411
+ #
2412
+ #
2413
+ # [1]: https://docs.aws.amazon.com/batch/latest/userguide/multi-node-job-def.html
1838
2414
  # @return [String]
1839
2415
  #
1840
2416
  # @!attribute [rw] parameters
@@ -1862,14 +2438,39 @@ module Aws::Batch
1862
2438
  # @!attribute [rw] timeout
1863
2439
  # The timeout configuration for jobs that are submitted with this job
1864
2440
  # definition. You can specify a timeout duration after which AWS Batch
1865
- # terminates your jobs if they have not finished.
2441
+ # terminates your jobs if they haven't finished.
1866
2442
  # @return [Types::JobTimeout]
1867
2443
  #
1868
2444
  # @!attribute [rw] node_properties
1869
2445
  # An object with various properties specific to multi-node parallel
1870
2446
  # jobs.
2447
+ #
2448
+ # <note markdown="1"> If the job runs on Fargate resources, then you must not specify
2449
+ # `nodeProperties`; use `containerProperties` instead.
2450
+ #
2451
+ # </note>
1871
2452
  # @return [Types::NodeProperties]
1872
2453
  #
2454
+ # @!attribute [rw] tags
2455
+ # The tags applied to the job definition.
2456
+ # @return [Hash<String,String>]
2457
+ #
2458
+ # @!attribute [rw] propagate_tags
2459
+ # Specifies whether to propagate the tags from the job or job
2460
+ # definition to the corresponding Amazon ECS task. If no value is
2461
+ # specified, the tags aren't propagated. Tags can only be propagated
2462
+ # to the tasks during task creation. For tags with the same name, job
2463
+ # tags are given priority over job definitions tags. If the total
2464
+ # number of combined tags from the job and job definition is over 50,
2465
+ # the job is moved to the `FAILED` state.
2466
+ # @return [Boolean]
2467
+ #
2468
+ # @!attribute [rw] platform_capabilities
2469
+ # The platform capabilities required by the job definition. If no
2470
+ # value is specified, it defaults to `EC2`. Jobs run on Fargate
2471
+ # resources specify `FARGATE`.
2472
+ # @return [Array<String>]
2473
+ #
1873
2474
  # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/JobDefinition AWS API Documentation
1874
2475
  #
1875
2476
  class JobDefinition < Struct.new(
@@ -1882,7 +2483,10 @@ module Aws::Batch
1882
2483
  :retry_strategy,
1883
2484
  :container_properties,
1884
2485
  :timeout,
1885
- :node_properties)
2486
+ :node_properties,
2487
+ :tags,
2488
+ :propagate_tags,
2489
+ :platform_capabilities)
1886
2490
  SENSITIVE = []
1887
2491
  include Aws::Structure
1888
2492
  end
@@ -1916,6 +2520,10 @@ module Aws::Batch
1916
2520
 
1917
2521
  # An object representing an AWS Batch job.
1918
2522
  #
2523
+ # @!attribute [rw] job_arn
2524
+ # The Amazon Resource Name (ARN) of the job.
2525
+ # @return [String]
2526
+ #
1919
2527
  # @!attribute [rw] job_name
1920
2528
  # The name of the job.
1921
2529
  # @return [String]
@@ -1925,8 +2533,8 @@ module Aws::Batch
1925
2533
  # @return [String]
1926
2534
  #
1927
2535
  # @!attribute [rw] job_queue
1928
- # The Amazon Resource Name (ARN) of the job queue with which the job
1929
- # is associated.
2536
+ # The Amazon Resource Name (ARN) of the job queue that the job is
2537
+ # associated with.
1930
2538
  # @return [String]
1931
2539
  #
1932
2540
  # @!attribute [rw] status
@@ -1967,7 +2575,7 @@ module Aws::Batch
1967
2575
  # @!attribute [rw] started_at
1968
2576
  # The Unix timestamp (in milliseconds) for when the job was started
1969
2577
  # (when the job transitioned from the `STARTING` state to the
1970
- # `RUNNING` state). This parameter is not provided for child jobs of
2578
+ # `RUNNING` state). This parameter isn't provided for child jobs of
1971
2579
  # array jobs or multi-node parallel jobs.
1972
2580
  # @return [Integer]
1973
2581
  #
@@ -1978,7 +2586,7 @@ module Aws::Batch
1978
2586
  # @return [Integer]
1979
2587
  #
1980
2588
  # @!attribute [rw] depends_on
1981
- # A list of job IDs on which this job depends.
2589
+ # A list of job IDs that this job depends on.
1982
2590
  # @return [Array<Types::JobDependency>]
1983
2591
  #
1984
2592
  # @!attribute [rw] job_definition
@@ -1992,7 +2600,7 @@ module Aws::Batch
1992
2600
  # @return [Hash<String,String>]
1993
2601
  #
1994
2602
  # @!attribute [rw] container
1995
- # An object representing the details of the container that is
2603
+ # An object representing the details of the container that's
1996
2604
  # associated with the job.
1997
2605
  # @return [Types::ContainerDetail]
1998
2606
  #
@@ -2004,6 +2612,10 @@ module Aws::Batch
2004
2612
  # @!attribute [rw] node_properties
2005
2613
  # An object representing the node properties of a multi-node parallel
2006
2614
  # job.
2615
+ #
2616
+ # <note markdown="1"> This isn't applicable to jobs running on Fargate resources.
2617
+ #
2618
+ # </note>
2007
2619
  # @return [Types::NodeProperties]
2008
2620
  #
2009
2621
  # @!attribute [rw] array_properties
@@ -2014,9 +2626,30 @@ module Aws::Batch
2014
2626
  # The timeout configuration for the job.
2015
2627
  # @return [Types::JobTimeout]
2016
2628
  #
2629
+ # @!attribute [rw] tags
2630
+ # The tags applied to the job.
2631
+ # @return [Hash<String,String>]
2632
+ #
2633
+ # @!attribute [rw] propagate_tags
2634
+ # Specifies whether to propagate the tags from the job or job
2635
+ # definition to the corresponding Amazon ECS task. If no value is
2636
+ # specified, the tags are not propagated. Tags can only be propagated
2637
+ # to the tasks during task creation. For tags with the same name, job
2638
+ # tags are given priority over job definitions tags. If the total
2639
+ # number of combined tags from the job and job definition is over 50,
2640
+ # the job is moved to the `FAILED` state.
2641
+ # @return [Boolean]
2642
+ #
2643
+ # @!attribute [rw] platform_capabilities
2644
+ # The platform capabilities required by the job definition. If no
2645
+ # value is specified, it defaults to `EC2`. Jobs run on Fargate
2646
+ # resources specify `FARGATE`.
2647
+ # @return [Array<String>]
2648
+ #
2017
2649
  # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/JobDetail AWS API Documentation
2018
2650
  #
2019
2651
  class JobDetail < Struct.new(
2652
+ :job_arn,
2020
2653
  :job_name,
2021
2654
  :job_id,
2022
2655
  :job_queue,
@@ -2034,7 +2667,10 @@ module Aws::Batch
2034
2667
  :node_details,
2035
2668
  :node_properties,
2036
2669
  :array_properties,
2037
- :timeout)
2670
+ :timeout,
2671
+ :tags,
2672
+ :propagate_tags,
2673
+ :platform_capabilities)
2038
2674
  SENSITIVE = []
2039
2675
  include Aws::Structure
2040
2676
  end
@@ -2051,8 +2687,8 @@ module Aws::Batch
2051
2687
  #
2052
2688
  # @!attribute [rw] state
2053
2689
  # Describes the ability of the queue to accept new jobs. If the job
2054
- # queue state is `ENABLED`, it is able to accept jobs. If the job
2055
- # queue state is `DISABLED`, new jobs cannot be added to the queue,
2690
+ # queue state is `ENABLED`, it's able to accept jobs. If the job
2691
+ # queue state is `DISABLED`, new jobs can't be added to the queue,
2056
2692
  # but jobs already in the queue can finish.
2057
2693
  # @return [String]
2058
2694
  #
@@ -2071,10 +2707,14 @@ module Aws::Batch
2071
2707
  #
2072
2708
  # @!attribute [rw] compute_environment_order
2073
2709
  # The compute environments that are attached to the job queue and the
2074
- # order in which job placement is preferred. Compute environments are
2710
+ # order that job placement is preferred. Compute environments are
2075
2711
  # selected for job placement in ascending order.
2076
2712
  # @return [Array<Types::ComputeEnvironmentOrder>]
2077
2713
  #
2714
+ # @!attribute [rw] tags
2715
+ # The tags applied to the job queue.
2716
+ # @return [Hash<String,String>]
2717
+ #
2078
2718
  # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/JobQueueDetail AWS API Documentation
2079
2719
  #
2080
2720
  class JobQueueDetail < Struct.new(
@@ -2084,13 +2724,18 @@ module Aws::Batch
2084
2724
  :status,
2085
2725
  :status_reason,
2086
2726
  :priority,
2087
- :compute_environment_order)
2727
+ :compute_environment_order,
2728
+ :tags)
2088
2729
  SENSITIVE = []
2089
2730
  include Aws::Structure
2090
2731
  end
2091
2732
 
2092
2733
  # An object representing summary details of a job.
2093
2734
  #
2735
+ # @!attribute [rw] job_arn
2736
+ # The Amazon Resource Name (ARN) of the job.
2737
+ # @return [String]
2738
+ #
2094
2739
  # @!attribute [rw] job_id
2095
2740
  # The ID of the job.
2096
2741
  # @return [String]
@@ -2138,11 +2783,16 @@ module Aws::Batch
2138
2783
  #
2139
2784
  # @!attribute [rw] node_properties
2140
2785
  # The node properties for a single node in a job summary list.
2786
+ #
2787
+ # <note markdown="1"> This isn't applicable to jobs running on Fargate resources.
2788
+ #
2789
+ # </note>
2141
2790
  # @return [Types::NodePropertiesSummary]
2142
2791
  #
2143
2792
  # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/JobSummary AWS API Documentation
2144
2793
  #
2145
2794
  class JobSummary < Struct.new(
2795
+ :job_arn,
2146
2796
  :job_id,
2147
2797
  :job_name,
2148
2798
  :created_at,
@@ -2169,7 +2819,8 @@ module Aws::Batch
2169
2819
  # @!attribute [rw] attempt_duration_seconds
2170
2820
  # The time duration in seconds (measured from the job attempt's
2171
2821
  # `startedAt` timestamp) after which AWS Batch terminates your jobs if
2172
- # they have not finished.
2822
+ # they have not finished. The minimum value for the timeout is 60
2823
+ # seconds.
2173
2824
  # @return [Integer]
2174
2825
  #
2175
2826
  # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/JobTimeout AWS API Documentation
@@ -2213,6 +2864,15 @@ module Aws::Batch
2213
2864
  # resource. You must specify either the launch template ID or launch
2214
2865
  # template name in the request, but not both.
2215
2866
  #
2867
+ # If security groups are specified using both the `securityGroupIds`
2868
+ # parameter of `CreateComputeEnvironment` and the launch template, the
2869
+ # values in the `securityGroupIds` parameter of
2870
+ # `CreateComputeEnvironment` will be used.
2871
+ #
2872
+ # <note markdown="1"> This object isn't applicable to jobs running on Fargate resources.
2873
+ #
2874
+ # </note>
2875
+ #
2216
2876
  # @note When making an API call, you may pass LaunchTemplateSpecification
2217
2877
  # data as a hash:
2218
2878
  #
@@ -2282,6 +2942,11 @@ module Aws::Batch
2282
2942
  # `Devices` in the [Create a container][1] section of the [Docker
2283
2943
  # Remote API][2] and the `--device` option to [docker run][3].
2284
2944
  #
2945
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
2946
+ # resources and shouldn't be provided.
2947
+ #
2948
+ # </note>
2949
+ #
2285
2950
  #
2286
2951
  #
2287
2952
  # [1]: https://docs.docker.com/engine/api/v1.23/#create-a-container
@@ -2290,13 +2955,13 @@ module Aws::Batch
2290
2955
  # @return [Array<Types::Device>]
2291
2956
  #
2292
2957
  # @!attribute [rw] init_process_enabled
2293
- # Run an `init` process inside the container that forwards signals and
2294
- # reaps processes. This parameter maps to the `--init` option to
2295
- # [docker run][1]. This parameter requires version 1.25 of the Docker
2296
- # Remote API or greater on your container instance. To check the
2297
- # Docker Remote API version on your container instance, log into your
2298
- # container instance and run the following command: `sudo docker
2299
- # version | grep "Server API version"`
2958
+ # If true, run an `init` process inside the container that forwards
2959
+ # signals and reaps processes. This parameter maps to the `--init`
2960
+ # option to [docker run][1]. This parameter requires version 1.25 of
2961
+ # the Docker Remote API or greater on your container instance. To
2962
+ # check the Docker Remote API version on your container instance, log
2963
+ # into your container instance and run the following command: `sudo
2964
+ # docker version | grep "Server API version"`
2300
2965
  #
2301
2966
  #
2302
2967
  #
@@ -2307,6 +2972,11 @@ module Aws::Batch
2307
2972
  # The value for the size (in MiB) of the `/dev/shm` volume. This
2308
2973
  # parameter maps to the `--shm-size` option to [docker run][1].
2309
2974
  #
2975
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
2976
+ # resources and shouldn't be provided.
2977
+ #
2978
+ # </note>
2979
+ #
2310
2980
  #
2311
2981
  #
2312
2982
  # [1]: https://docs.docker.com/engine/reference/run/
@@ -2317,6 +2987,11 @@ module Aws::Batch
2317
2987
  # mount. This parameter maps to the `--tmpfs` option to [docker
2318
2988
  # run][1].
2319
2989
  #
2990
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
2991
+ # resources and shouldn't be provided.
2992
+ #
2993
+ # </note>
2994
+ #
2320
2995
  #
2321
2996
  #
2322
2997
  # [1]: https://docs.docker.com/engine/reference/run/
@@ -2324,33 +2999,45 @@ module Aws::Batch
2324
2999
  #
2325
3000
  # @!attribute [rw] max_swap
2326
3001
  # The total amount of swap memory (in MiB) a container can use. This
2327
- # parameter will be translated to the `--memory-swap` option to
2328
- # [docker run][1] where the value would be the sum of the container
2329
- # memory plus the `maxSwap` value.
3002
+ # parameter is translated to the `--memory-swap` option to [docker
3003
+ # run][1] where the value is the sum of the container memory plus the
3004
+ # `maxSwap` value. For more information, see [ `--memory-swap`
3005
+ # details][2] in the Docker documentation.
2330
3006
  #
2331
- # If a `maxSwap` value of `0` is specified, the container will not use
3007
+ # If a `maxSwap` value of `0` is specified, the container doesn't use
2332
3008
  # swap. Accepted values are `0` or any positive integer. If the
2333
- # `maxSwap` parameter is omitted, the container will use the swap
3009
+ # `maxSwap` parameter is omitted, the container doesn't use the swap
2334
3010
  # configuration for the container instance it is running on. A
2335
3011
  # `maxSwap` value must be set for the `swappiness` parameter to be
2336
3012
  # used.
2337
3013
  #
3014
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
3015
+ # resources and shouldn't be provided.
3016
+ #
3017
+ # </note>
3018
+ #
2338
3019
  #
2339
3020
  #
2340
3021
  # [1]: https://docs.docker.com/engine/reference/run/
3022
+ # [2]: https://docs.docker.com/config/containers/resource_constraints/#--memory-swap-details
2341
3023
  # @return [Integer]
2342
3024
  #
2343
3025
  # @!attribute [rw] swappiness
2344
3026
  # This allows you to tune a container's memory swappiness behavior. A
2345
- # `swappiness` value of `0` will cause swapping to not happen unless
2346
- # absolutely necessary. A `swappiness` value of `100` will cause pages
2347
- # to be swapped very aggressively. Accepted values are whole numbers
2348
- # between `0` and `100`. If the `swappiness` parameter is not
2349
- # specified, a default value of `60` is used. If a value is not
3027
+ # `swappiness` value of `0` causes swapping not to happen unless
3028
+ # absolutely necessary. A `swappiness` value of `100` causes pages to
3029
+ # be swapped very aggressively. Accepted values are whole numbers
3030
+ # between `0` and `100`. If the `swappiness` parameter isn't
3031
+ # specified, a default value of `60` is used. If a value isn't
2350
3032
  # specified for `maxSwap` then this parameter is ignored. This
2351
3033
  # parameter maps to the `--memory-swappiness` option to [docker
2352
3034
  # run][1].
2353
3035
  #
3036
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
3037
+ # resources and shouldn't be provided.
3038
+ #
3039
+ # </note>
3040
+ #
2354
3041
  #
2355
3042
  #
2356
3043
  # [1]: https://docs.docker.com/engine/reference/run/
@@ -2382,8 +3069,8 @@ module Aws::Batch
2382
3069
  # }
2383
3070
  #
2384
3071
  # @!attribute [rw] job_queue
2385
- # The name or full Amazon Resource Name (ARN) of the job queue with
2386
- # which to list jobs.
3072
+ # The name or full Amazon Resource Name (ARN) of the job queue used to
3073
+ # list jobs.
2387
3074
  # @return [String]
2388
3075
  #
2389
3076
  # @!attribute [rw] array_job_id
@@ -2398,8 +3085,8 @@ module Aws::Batch
2398
3085
  # @return [String]
2399
3086
  #
2400
3087
  # @!attribute [rw] job_status
2401
- # The job status with which to filter jobs in the specified queue. If
2402
- # you do not specify a status, only `RUNNING` jobs are returned.
3088
+ # The job status used to filter jobs in the specified queue. If you
3089
+ # don't specify a status, only `RUNNING` jobs are returned.
2403
3090
  # @return [String]
2404
3091
  #
2405
3092
  # @!attribute [rw] max_results
@@ -2409,7 +3096,7 @@ module Aws::Batch
2409
3096
  # response element. The remaining results of the initial request can
2410
3097
  # be seen by sending another `ListJobs` request with the returned
2411
3098
  # `nextToken` value. This value can be between 1 and 100. If this
2412
- # parameter is not used, then `ListJobs` returns up to 100 results and
3099
+ # parameter isn't used, then `ListJobs` returns up to 100 results and
2413
3100
  # a `nextToken` value if applicable.
2414
3101
  # @return [Integer]
2415
3102
  #
@@ -2460,6 +3147,41 @@ module Aws::Batch
2460
3147
  include Aws::Structure
2461
3148
  end
2462
3149
 
3150
+ # @note When making an API call, you may pass ListTagsForResourceRequest
3151
+ # data as a hash:
3152
+ #
3153
+ # {
3154
+ # resource_arn: "String", # required
3155
+ # }
3156
+ #
3157
+ # @!attribute [rw] resource_arn
3158
+ # The Amazon Resource Name (ARN) that identifies the resource that
3159
+ # tags are listed for. AWS Batch resources that support tags are
3160
+ # compute environments, jobs, job definitions, and job queues. ARNs
3161
+ # for child jobs of array and multi-node parallel (MNP) jobs are not
3162
+ # supported.
3163
+ # @return [String]
3164
+ #
3165
+ # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/ListTagsForResourceRequest AWS API Documentation
3166
+ #
3167
+ class ListTagsForResourceRequest < Struct.new(
3168
+ :resource_arn)
3169
+ SENSITIVE = []
3170
+ include Aws::Structure
3171
+ end
3172
+
3173
+ # @!attribute [rw] tags
3174
+ # The tags for the resource.
3175
+ # @return [Hash<String,String>]
3176
+ #
3177
+ # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/ListTagsForResourceResponse AWS API Documentation
3178
+ #
3179
+ class ListTagsForResourceResponse < Struct.new(
3180
+ :tags)
3181
+ SENSITIVE = []
3182
+ include Aws::Structure
3183
+ end
3184
+
2463
3185
  # Log configuration options to send to a custom log driver for the
2464
3186
  # container.
2465
3187
  #
@@ -2487,17 +3209,61 @@ module Aws::Batch
2487
3209
  # The supported log drivers are `awslogs`, `fluentd`, `gelf`,
2488
3210
  # `json-file`, `journald`, `logentries`, `syslog`, and `splunk`.
2489
3211
  #
2490
- # For more information about using the `awslogs` log driver, see
2491
- # [Using the awslogs Log Driver][1] in the *Amazon Elastic Container
2492
- # Service Developer Guide*.
3212
+ # <note markdown="1"> Jobs running on Fargate resources are restricted to the `awslogs`
3213
+ # and `splunk` log drivers.
3214
+ #
3215
+ # </note>
2493
3216
  #
2494
- # <note markdown="1"> If you have a custom driver that is not listed earlier that you
2495
- # would like to work with the Amazon ECS container agent, you can fork
2496
- # the Amazon ECS container agent project that is [available on
2497
- # GitHub][2] and customize it to work with that driver. We encourage
2498
- # you to submit pull requests for changes that you would like to have
2499
- # included. However, Amazon Web Services does not currently support
2500
- # running modified copies of this software.
3217
+ # awslogs
3218
+ #
3219
+ # : Specifies the Amazon CloudWatch Logs logging driver. For more
3220
+ # information, see [Using the awslogs Log Driver][1] in the *AWS
3221
+ # Batch User Guide* and [Amazon CloudWatch Logs logging driver][2]
3222
+ # in the Docker documentation.
3223
+ #
3224
+ # fluentd
3225
+ #
3226
+ # : Specifies the Fluentd logging driver. For more information,
3227
+ # including usage and options, see [Fluentd logging driver][3] in
3228
+ # the Docker documentation.
3229
+ #
3230
+ # gelf
3231
+ #
3232
+ # : Specifies the Graylog Extended Format (GELF) logging driver. For
3233
+ # more information, including usage and options, see [Graylog
3234
+ # Extended Format logging driver][4] in the Docker documentation.
3235
+ #
3236
+ # journald
3237
+ #
3238
+ # : Specifies the journald logging driver. For more information,
3239
+ # including usage and options, see [Journald logging driver][5] in
3240
+ # the Docker documentation.
3241
+ #
3242
+ # json-file
3243
+ #
3244
+ # : Specifies the JSON file logging driver. For more information,
3245
+ # including usage and options, see [JSON File logging driver][6] in
3246
+ # the Docker documentation.
3247
+ #
3248
+ # splunk
3249
+ #
3250
+ # : Specifies the Splunk logging driver. For more information,
3251
+ # including usage and options, see [Splunk logging driver][7] in the
3252
+ # Docker documentation.
3253
+ #
3254
+ # syslog
3255
+ #
3256
+ # : Specifies the syslog logging driver. For more information,
3257
+ # including usage and options, see [Syslog logging driver][8] in the
3258
+ # Docker documentation.
3259
+ #
3260
+ # <note markdown="1"> If you have a custom driver that isn't listed earlier that you want
3261
+ # to work with the Amazon ECS container agent, you can fork the Amazon
3262
+ # ECS container agent project that is [available on GitHub][9] and
3263
+ # customize it to work with that driver. We encourage you to submit
3264
+ # pull requests for changes that you want to have included. However,
3265
+ # Amazon Web Services doesn't currently support running modified
3266
+ # copies of this software.
2501
3267
  #
2502
3268
  # </note>
2503
3269
  #
@@ -2509,8 +3275,15 @@ module Aws::Batch
2509
3275
  #
2510
3276
  #
2511
3277
  #
2512
- # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html
2513
- # [2]: https://github.com/aws/amazon-ecs-agent
3278
+ # [1]: https://docs.aws.amazon.com/batch/latest/userguide/using_awslogs.html
3279
+ # [2]: https://docs.docker.com/config/containers/logging/awslogs/
3280
+ # [3]: https://docs.docker.com/config/containers/logging/fluentd/
3281
+ # [4]: https://docs.docker.com/config/containers/logging/gelf/
3282
+ # [5]: https://docs.docker.com/config/containers/logging/journald/
3283
+ # [6]: https://docs.docker.com/config/containers/logging/json-file/
3284
+ # [7]: https://docs.docker.com/config/containers/logging/splunk/
3285
+ # [8]: https://docs.docker.com/config/containers/logging/syslog/
3286
+ # [9]: https://github.com/aws/amazon-ecs-agent
2514
3287
  # @return [String]
2515
3288
  #
2516
3289
  # @!attribute [rw] options
@@ -2523,12 +3296,11 @@ module Aws::Batch
2523
3296
  #
2524
3297
  # @!attribute [rw] secret_options
2525
3298
  # The secrets to pass to the log configuration. For more information,
2526
- # see [Specifying Sensitive Data][1] in the *Amazon Elastic Container
2527
- # Service Developer Guide*.
3299
+ # see [Specifying Sensitive Data][1] in the *AWS Batch User Guide*.
2528
3300
  #
2529
3301
  #
2530
3302
  #
2531
- # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html
3303
+ # [1]: https://docs.aws.amazon.com/batch/latest/userguide/specifying-sensitive-data.html
2532
3304
  # @return [Array<Types::Secret>]
2533
3305
  #
2534
3306
  # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/LogConfiguration AWS API Documentation
@@ -2560,12 +3332,12 @@ module Aws::Batch
2560
3332
  # }
2561
3333
  #
2562
3334
  # @!attribute [rw] container_path
2563
- # The path on the container at which to mount the host volume.
3335
+ # The path on the container where the host volume is mounted.
2564
3336
  # @return [String]
2565
3337
  #
2566
3338
  # @!attribute [rw] read_only
2567
3339
  # If this value is `true`, the container has read-only access to the
2568
- # volume; otherwise, the container can write to the volume. The
3340
+ # volume. Otherwise, the container can write to the volume. The
2569
3341
  # default value is `false`.
2570
3342
  # @return [Boolean]
2571
3343
  #
@@ -2583,6 +3355,37 @@ module Aws::Batch
2583
3355
  include Aws::Structure
2584
3356
  end
2585
3357
 
3358
+ # The network configuration for jobs running on Fargate resources. Jobs
3359
+ # running on EC2 resources must not specify this parameter.
3360
+ #
3361
+ # @note When making an API call, you may pass NetworkConfiguration
3362
+ # data as a hash:
3363
+ #
3364
+ # {
3365
+ # assign_public_ip: "ENABLED", # accepts ENABLED, DISABLED
3366
+ # }
3367
+ #
3368
+ # @!attribute [rw] assign_public_ip
3369
+ # Indicates whether the job should have a public IP address. For a job
3370
+ # running on Fargate resources in a private subnet to send outbound
3371
+ # traffic to the internet (for example, in order to pull container
3372
+ # images), the private subnet requires a NAT gateway be attached to
3373
+ # route requests to the internet. For more information, see [Amazon
3374
+ # ECS task networking][1]. The default value is "DISABLED".
3375
+ #
3376
+ #
3377
+ #
3378
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html
3379
+ # @return [String]
3380
+ #
3381
+ # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/NetworkConfiguration AWS API Documentation
3382
+ #
3383
+ class NetworkConfiguration < Struct.new(
3384
+ :assign_public_ip)
3385
+ SENSITIVE = []
3386
+ include Aws::Structure
3387
+ end
3388
+
2586
3389
  # An object representing the elastic network interface for a multi-node
2587
3390
  # parallel job node.
2588
3391
  #
@@ -2633,6 +3436,11 @@ module Aws::Batch
2633
3436
  # Object representing any node overrides to a job definition that is
2634
3437
  # used in a SubmitJob API operation.
2635
3438
  #
3439
+ # <note markdown="1"> This isn't applicable to jobs running on Fargate resources and
3440
+ # shouldn't be provided; use `containerOverrides` instead.
3441
+ #
3442
+ # </note>
3443
+ #
2636
3444
  # @note When making an API call, you may pass NodeOverrides
2637
3445
  # data as a hash:
2638
3446
  #
@@ -2655,7 +3463,7 @@ module Aws::Batch
2655
3463
  # resource_requirements: [
2656
3464
  # {
2657
3465
  # value: "String", # required
2658
- # type: "GPU", # required, accepts GPU
3466
+ # type: "GPU", # required, accepts GPU, VCPU, MEMORY
2659
3467
  # },
2660
3468
  # ],
2661
3469
  # },
@@ -2746,7 +3554,7 @@ module Aws::Batch
2746
3554
  # resource_requirements: [
2747
3555
  # {
2748
3556
  # value: "String", # required
2749
- # type: "GPU", # required, accepts GPU
3557
+ # type: "GPU", # required, accepts GPU, VCPU, MEMORY
2750
3558
  # },
2751
3559
  # ],
2752
3560
  # linux_parameters: {
@@ -2787,6 +3595,12 @@ module Aws::Batch
2787
3595
  # value_from: "String", # required
2788
3596
  # },
2789
3597
  # ],
3598
+ # network_configuration: {
3599
+ # assign_public_ip: "ENABLED", # accepts ENABLED, DISABLED
3600
+ # },
3601
+ # fargate_platform_configuration: {
3602
+ # platform_version: "String",
3603
+ # },
2790
3604
  # },
2791
3605
  # },
2792
3606
  # ],
@@ -2866,18 +3680,19 @@ module Aws::Batch
2866
3680
  # resource_requirements: [
2867
3681
  # {
2868
3682
  # value: "String", # required
2869
- # type: "GPU", # required, accepts GPU
3683
+ # type: "GPU", # required, accepts GPU, VCPU, MEMORY
2870
3684
  # },
2871
3685
  # ],
2872
3686
  # },
2873
3687
  # }
2874
3688
  #
2875
3689
  # @!attribute [rw] target_nodes
2876
- # The range of nodes, using node index values, with which to override.
2877
- # A range of `0:3` indicates nodes with index values of `0` through
2878
- # `3`. If the starting range value is omitted (`:n`), then `0` is used
2879
- # to start the range. If the ending range value is omitted (`n:`),
2880
- # then the highest possible node index is used to end the range.
3690
+ # The range of nodes, using node index values, that's used to
3691
+ # override. A range of `0:3` indicates nodes with index values of `0`
3692
+ # through `3`. If the starting range value is omitted (`:n`), then `0`
3693
+ # is used to start the range. If the ending range value is omitted
3694
+ # (`n:`), then the highest possible node index is used to end the
3695
+ # range.
2881
3696
  # @return [String]
2882
3697
  #
2883
3698
  # @!attribute [rw] container_overrides
@@ -2943,7 +3758,7 @@ module Aws::Batch
2943
3758
  # resource_requirements: [
2944
3759
  # {
2945
3760
  # value: "String", # required
2946
- # type: "GPU", # required, accepts GPU
3761
+ # type: "GPU", # required, accepts GPU, VCPU, MEMORY
2947
3762
  # },
2948
3763
  # ],
2949
3764
  # linux_parameters: {
@@ -2984,6 +3799,12 @@ module Aws::Batch
2984
3799
  # value_from: "String", # required
2985
3800
  # },
2986
3801
  # ],
3802
+ # network_configuration: {
3803
+ # assign_public_ip: "ENABLED", # accepts ENABLED, DISABLED
3804
+ # },
3805
+ # fargate_platform_configuration: {
3806
+ # platform_version: "String",
3807
+ # },
2987
3808
  # },
2988
3809
  # }
2989
3810
  #
@@ -2993,9 +3814,9 @@ module Aws::Batch
2993
3814
  # starting range value is omitted (`:n`), then `0` is used to start
2994
3815
  # the range. If the ending range value is omitted (`n:`), then the
2995
3816
  # highest possible node index is used to end the range. Your
2996
- # accumulative node ranges must account for all nodes (0:n). You may
2997
- # nest node ranges, for example 0:10 and 4:5, in which case the 4:5
2998
- # range properties override the 0:10 properties.
3817
+ # accumulative node ranges must account for all nodes (`0:n`). You may
3818
+ # nest node ranges, for example `0:10` and `4:5`, in which case the
3819
+ # `4:5` range properties override the `0:10` properties.
2999
3820
  # @return [String]
3000
3821
  #
3001
3822
  # @!attribute [rw] container
@@ -3062,7 +3883,7 @@ module Aws::Batch
3062
3883
  # resource_requirements: [
3063
3884
  # {
3064
3885
  # value: "String", # required
3065
- # type: "GPU", # required, accepts GPU
3886
+ # type: "GPU", # required, accepts GPU, VCPU, MEMORY
3066
3887
  # },
3067
3888
  # ],
3068
3889
  # linux_parameters: {
@@ -3103,6 +3924,12 @@ module Aws::Batch
3103
3924
  # value_from: "String", # required
3104
3925
  # },
3105
3926
  # ],
3927
+ # network_configuration: {
3928
+ # assign_public_ip: "ENABLED", # accepts ENABLED, DISABLED
3929
+ # },
3930
+ # fargate_platform_configuration: {
3931
+ # platform_version: "String",
3932
+ # },
3106
3933
  # },
3107
3934
  # node_properties: {
3108
3935
  # num_nodes: 1, # required
@@ -3152,7 +3979,7 @@ module Aws::Batch
3152
3979
  # resource_requirements: [
3153
3980
  # {
3154
3981
  # value: "String", # required
3155
- # type: "GPU", # required, accepts GPU
3982
+ # type: "GPU", # required, accepts GPU, VCPU, MEMORY
3156
3983
  # },
3157
3984
  # ],
3158
3985
  # linux_parameters: {
@@ -3193,16 +4020,35 @@ module Aws::Batch
3193
4020
  # value_from: "String", # required
3194
4021
  # },
3195
4022
  # ],
4023
+ # network_configuration: {
4024
+ # assign_public_ip: "ENABLED", # accepts ENABLED, DISABLED
4025
+ # },
4026
+ # fargate_platform_configuration: {
4027
+ # platform_version: "String",
4028
+ # },
3196
4029
  # },
3197
4030
  # },
3198
4031
  # ],
3199
4032
  # },
3200
4033
  # retry_strategy: {
3201
4034
  # attempts: 1,
4035
+ # evaluate_on_exit: [
4036
+ # {
4037
+ # on_status_reason: "String",
4038
+ # on_reason: "String",
4039
+ # on_exit_code: "String",
4040
+ # action: "RETRY", # required, accepts RETRY, EXIT
4041
+ # },
4042
+ # ],
3202
4043
  # },
4044
+ # propagate_tags: false,
3203
4045
  # timeout: {
3204
4046
  # attempt_duration_seconds: 1,
3205
4047
  # },
4048
+ # tags: {
4049
+ # "TagKey" => "TagValue",
4050
+ # },
4051
+ # platform_capabilities: ["EC2"], # accepts EC2, FARGATE
3206
4052
  # }
3207
4053
  #
3208
4054
  # @!attribute [rw] job_definition_name
@@ -3212,7 +4058,18 @@ module Aws::Batch
3212
4058
  # @return [String]
3213
4059
  #
3214
4060
  # @!attribute [rw] type
3215
- # The type of job definition.
4061
+ # The type of job definition. For more information about multi-node
4062
+ # parallel jobs, see [Creating a multi-node parallel job
4063
+ # definition][1] in the *AWS Batch User Guide*.
4064
+ #
4065
+ # <note markdown="1"> If the job is run on Fargate resources, then `multinode` isn't
4066
+ # supported.
4067
+ #
4068
+ # </note>
4069
+ #
4070
+ #
4071
+ #
4072
+ # [1]: https://docs.aws.amazon.com/batch/latest/userguide/multi-node-job-def.html
3216
4073
  # @return [String]
3217
4074
  #
3218
4075
  # @!attribute [rw] parameters
@@ -3227,6 +4084,11 @@ module Aws::Batch
3227
4084
  # container-based jobs. If the job definition's `type` parameter is
3228
4085
  # `container`, then you must specify either `containerProperties` or
3229
4086
  # `nodeProperties`.
4087
+ #
4088
+ # <note markdown="1"> If the job runs on Fargate resources, then you must not specify
4089
+ # `nodeProperties`; use only `containerProperties`.
4090
+ #
4091
+ # </note>
3230
4092
  # @return [Types::ContainerProperties]
3231
4093
  #
3232
4094
  # @!attribute [rw] node_properties
@@ -3237,6 +4099,11 @@ module Aws::Batch
3237
4099
  # definition's `type` parameter is `container`, then you must specify
3238
4100
  # either `containerProperties` or `nodeProperties`.
3239
4101
  #
4102
+ # <note markdown="1"> If the job runs on Fargate resources, then you must not specify
4103
+ # `nodeProperties`; use `containerProperties` instead.
4104
+ #
4105
+ # </note>
4106
+ #
3240
4107
  #
3241
4108
  #
3242
4109
  # [1]: https://docs.aws.amazon.com/batch/latest/userguide/multi-node-parallel-jobs.html
@@ -3246,24 +4113,50 @@ module Aws::Batch
3246
4113
  # The retry strategy to use for failed jobs that are submitted with
3247
4114
  # this job definition. Any retry strategy that is specified during a
3248
4115
  # SubmitJob operation overrides the retry strategy defined here. If a
3249
- # job is terminated due to a timeout, it is not retried.
4116
+ # job is terminated due to a timeout, it isn't retried.
3250
4117
  # @return [Types::RetryStrategy]
3251
4118
  #
4119
+ # @!attribute [rw] propagate_tags
4120
+ # Specifies whether to propagate the tags from the job or job
4121
+ # definition to the corresponding Amazon ECS task. If no value is
4122
+ # specified, the tags are not propagated. Tags can only be propagated
4123
+ # to the tasks during task creation. For tags with the same name, job
4124
+ # tags are given priority over job definitions tags. If the total
4125
+ # number of combined tags from the job and job definition is over 50,
4126
+ # the job is moved to the `FAILED` state.
4127
+ # @return [Boolean]
4128
+ #
3252
4129
  # @!attribute [rw] timeout
3253
4130
  # The timeout configuration for jobs that are submitted with this job
3254
4131
  # definition, after which AWS Batch terminates your jobs if they have
3255
- # not finished. If a job is terminated due to a timeout, it is not
4132
+ # not finished. If a job is terminated due to a timeout, it isn't
3256
4133
  # retried. The minimum value for the timeout is 60 seconds. Any
3257
4134
  # timeout configuration that is specified during a SubmitJob operation
3258
4135
  # overrides the timeout configuration defined here. For more
3259
- # information, see [Job Timeouts][1] in the *Amazon Elastic Container
3260
- # Service Developer Guide*.
4136
+ # information, see [Job Timeouts][1] in the *AWS Batch User Guide*.
3261
4137
  #
3262
4138
  #
3263
4139
  #
3264
- # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/job_timeouts.html
4140
+ # [1]: https://docs.aws.amazon.com/batch/latest/userguide/job_timeouts.html
3265
4141
  # @return [Types::JobTimeout]
3266
4142
  #
4143
+ # @!attribute [rw] tags
4144
+ # The tags that you apply to the job definition to help you categorize
4145
+ # and organize your resources. Each tag consists of a key and an
4146
+ # optional value. For more information, see [Tagging AWS Resources][1]
4147
+ # in *AWS Batch User Guide*.
4148
+ #
4149
+ #
4150
+ #
4151
+ # [1]: https://docs.aws.amazon.com/batch/latest/userguide/using-tags.html
4152
+ # @return [Hash<String,String>]
4153
+ #
4154
+ # @!attribute [rw] platform_capabilities
4155
+ # The platform capabilities required by the job definition. If no
4156
+ # value is specified, it defaults to `EC2`. To run the job on Fargate
4157
+ # resources, specify `FARGATE`.
4158
+ # @return [Array<String>]
4159
+ #
3267
4160
  # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/RegisterJobDefinitionRequest AWS API Documentation
3268
4161
  #
3269
4162
  class RegisterJobDefinitionRequest < Struct.new(
@@ -3273,7 +4166,10 @@ module Aws::Batch
3273
4166
  :container_properties,
3274
4167
  :node_properties,
3275
4168
  :retry_strategy,
3276
- :timeout)
4169
+ :propagate_tags,
4170
+ :timeout,
4171
+ :tags,
4172
+ :platform_capabilities)
3277
4173
  SENSITIVE = []
3278
4174
  include Aws::Structure
3279
4175
  end
@@ -3300,27 +4196,143 @@ module Aws::Batch
3300
4196
  include Aws::Structure
3301
4197
  end
3302
4198
 
3303
- # The type and amount of a resource to assign to a container. Currently,
3304
- # the only supported resource type is `GPU`.
4199
+ # The type and amount of a resource to assign to a container. The
4200
+ # supported resources include `GPU`, `MEMORY`, and `VCPU`.
3305
4201
  #
3306
4202
  # @note When making an API call, you may pass ResourceRequirement
3307
4203
  # data as a hash:
3308
4204
  #
3309
4205
  # {
3310
4206
  # value: "String", # required
3311
- # type: "GPU", # required, accepts GPU
4207
+ # type: "GPU", # required, accepts GPU, VCPU, MEMORY
3312
4208
  # }
3313
4209
  #
3314
4210
  # @!attribute [rw] value
3315
- # The number of physical GPUs to reserve for the container. The number
3316
- # of GPUs reserved for all containers in a job should not exceed the
3317
- # number of available GPUs on the compute resource that the job is
3318
- # launched on.
4211
+ # The quantity of the specified resource to reserve for the container.
4212
+ # The values vary based on the `type` specified.
4213
+ #
4214
+ # type="GPU"
4215
+ #
4216
+ # : The number of physical GPUs to reserve for the container. The
4217
+ # number of GPUs reserved for all containers in a job shouldn't
4218
+ # exceed the number of available GPUs on the compute resource that
4219
+ # the job is launched on.
4220
+ #
4221
+ # <note markdown="1"> GPUs are not available for jobs running on Fargate resources.
4222
+ #
4223
+ # </note>
4224
+ #
4225
+ # type="MEMORY"
4226
+ #
4227
+ # : For jobs running on EC2 resources, the hard limit (in MiB) of
4228
+ # memory to present to the container. If your container attempts to
4229
+ # exceed the memory specified here, the container is killed. This
4230
+ # parameter maps to `Memory` in the [Create a container][1] section
4231
+ # of the [Docker Remote API][2] and the `--memory` option to [docker
4232
+ # run][3]. You must specify at least 4 MiB of memory for a job. This
4233
+ # is required but can be specified in several places for multi-node
4234
+ # parallel (MNP) jobs. It must be specified for each node at least
4235
+ # once. This parameter maps to `Memory` in the [Create a
4236
+ # container][1] section of the [Docker Remote API][2] and the
4237
+ # `--memory` option to [docker run][3]. You must specify at least 4
4238
+ # MiB of memory for a job.
4239
+ #
4240
+ # <note markdown="1"> If you're trying to maximize your resource utilization by
4241
+ # providing your jobs as much memory as possible for a particular
4242
+ # instance type, see [Memory Management][4] in the *AWS Batch User
4243
+ # Guide*.
4244
+ #
4245
+ # </note>
4246
+ #
4247
+ # For jobs running on Fargate resources, then `value` is the hard
4248
+ # limit (in GiB), represented in decimal form, and must match one of
4249
+ # the supported values (0.5 and whole numbers between 1 and 30,
4250
+ # inclusive) and the `VCPU` values must be one of the values
4251
+ # supported for that memory value.
4252
+ #
4253
+ # value = 0.5
4254
+ #
4255
+ # : `VCPU` = 0.25
4256
+ #
4257
+ # value = 1
4258
+ #
4259
+ # : `VCPU` = 0.25 or 0.5
4260
+ #
4261
+ # value = 2
4262
+ #
4263
+ # : `VCPU` = 0.25, 0.5, or 1
4264
+ #
4265
+ # value = 3
4266
+ #
4267
+ # : `VCPU` = 0.5, or 1
4268
+ #
4269
+ # value = 4
4270
+ #
4271
+ # : `VCPU` = 0.5, 1, or 2
4272
+ #
4273
+ # value = 5, 6, or 7
4274
+ #
4275
+ # : `VCPU` = 1 or 2
4276
+ #
4277
+ # value = 8
4278
+ #
4279
+ # : `VCPU` = 1, 2, or 4
4280
+ #
4281
+ # value = 9, 10, 11, 12, 13, 14, 15, or 16
4282
+ #
4283
+ # : `VCPU` = 2 or 4
4284
+ #
4285
+ # value = 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, or 30
4286
+ #
4287
+ # : `VCPU` = 4
4288
+ #
4289
+ # type="VCPU"
4290
+ #
4291
+ # : The number of vCPUs reserved for the container. This parameter
4292
+ # maps to `CpuShares` in the [Create a container][1] section of the
4293
+ # [Docker Remote API][2] and the `--cpu-shares` option to [docker
4294
+ # run][3]. Each vCPU is equivalent to 1,024 CPU shares. You must
4295
+ # specify at least one vCPU. This is required but can be specified
4296
+ # in several places; it must be specified for each node at least
4297
+ # once.
4298
+ #
4299
+ # For jobs running on Fargate resources, then `value` must match one
4300
+ # of the supported values and the `MEMORY` values must be one of the
4301
+ # values supported for that VCPU value. The supported values are
4302
+ # 0.25, 0.5, 1, 2, and 4
4303
+ #
4304
+ # value = 0.25
4305
+ #
4306
+ # : `MEMORY` = 0.5, 1, or 2
4307
+ #
4308
+ # value = 0.5
4309
+ #
4310
+ # : `MEMORY` = 1, 2, 3, or 4
4311
+ #
4312
+ # value = 1
4313
+ #
4314
+ # : `MEMORY` = 2, 3, 4, 5, 6, 7, or 8
4315
+ #
4316
+ # value = 2
4317
+ #
4318
+ # : `MEMORY` = 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, or 16
4319
+ #
4320
+ # value = 4
4321
+ #
4322
+ # : `MEMORY` = 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
4323
+ # 22, 23, 24, 25, 26, 27, 28, 29, or 30
4324
+ #
4325
+ #
4326
+ #
4327
+ # [1]: https://docs.docker.com/engine/api/v1.23/#create-a-container
4328
+ # [2]: https://docs.docker.com/engine/api/v1.23/
4329
+ # [3]: https://docs.docker.com/engine/reference/run/
4330
+ # [4]: https://docs.aws.amazon.com/batch/latest/userguide/memory-management.html
3319
4331
  # @return [String]
3320
4332
  #
3321
4333
  # @!attribute [rw] type
3322
- # The type of resource to assign to a container. Currently, the only
3323
- # supported resource type is `GPU`.
4334
+ # The type of resource to assign to a container. The supported
4335
+ # resources include `GPU`, `MEMORY`, and `VCPU`.
3324
4336
  # @return [String]
3325
4337
  #
3326
4338
  # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/ResourceRequirement AWS API Documentation
@@ -3332,13 +4344,26 @@ module Aws::Batch
3332
4344
  include Aws::Structure
3333
4345
  end
3334
4346
 
3335
- # The retry strategy associated with a job.
4347
+ # The retry strategy associated with a job. For more information, see
4348
+ # [Automated job retries][1] in the *AWS Batch User Guide*.
4349
+ #
4350
+ #
4351
+ #
4352
+ # [1]: https://docs.aws.amazon.com/batch/latest/userguide/job_retries.html
3336
4353
  #
3337
4354
  # @note When making an API call, you may pass RetryStrategy
3338
4355
  # data as a hash:
3339
4356
  #
3340
4357
  # {
3341
4358
  # attempts: 1,
4359
+ # evaluate_on_exit: [
4360
+ # {
4361
+ # on_status_reason: "String",
4362
+ # on_reason: "String",
4363
+ # on_exit_code: "String",
4364
+ # action: "RETRY", # required, accepts RETRY, EXIT
4365
+ # },
4366
+ # ],
3342
4367
  # }
3343
4368
  #
3344
4369
  # @!attribute [rw] attempts
@@ -3348,10 +4373,17 @@ module Aws::Batch
3348
4373
  # attempts as the value.
3349
4374
  # @return [Integer]
3350
4375
  #
4376
+ # @!attribute [rw] evaluate_on_exit
4377
+ # Array of up to 5 objects that specify conditions under which the job
4378
+ # should be retried or failed. If this parameter is specified, then
4379
+ # the `attempts` parameter must also be specified.
4380
+ # @return [Array<Types::EvaluateOnExit>]
4381
+ #
3351
4382
  # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/RetryStrategy AWS API Documentation
3352
4383
  #
3353
4384
  class RetryStrategy < Struct.new(
3354
- :attempts)
4385
+ :attempts,
4386
+ :evaluate_on_exit)
3355
4387
  SENSITIVE = []
3356
4388
  include Aws::Structure
3357
4389
  end
@@ -3365,12 +4397,12 @@ module Aws::Batch
3365
4397
  # * To reference sensitive information in the log configuration of a
3366
4398
  # container, use the `secretOptions` container definition parameter.
3367
4399
  #
3368
- # For more information, see [Specifying Sensitive Data][1] in the
3369
- # *Amazon Elastic Container Service Developer Guide*.
4400
+ # For more information, see [Specifying sensitive data][1] in the *AWS
4401
+ # Batch User Guide*.
3370
4402
  #
3371
4403
  #
3372
4404
  #
3373
- # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html
4405
+ # [1]: https://docs.aws.amazon.com/batch/latest/userguide/specifying-sensitive-data.html
3374
4406
  #
3375
4407
  # @note When making an API call, you may pass Secret
3376
4408
  # data as a hash:
@@ -3390,7 +4422,7 @@ module Aws::Batch
3390
4422
  # ARN of the parameter in the AWS Systems Manager Parameter Store.
3391
4423
  #
3392
4424
  # <note markdown="1"> If the AWS Systems Manager Parameter Store parameter exists in the
3393
- # same Region as the task you are launching, then you can use either
4425
+ # same Region as the job you are launching, then you can use either
3394
4426
  # the full ARN or name of the parameter. If the parameter exists in a
3395
4427
  # different Region, then the full ARN must be specified.
3396
4428
  #
@@ -3452,7 +4484,7 @@ module Aws::Batch
3452
4484
  # resource_requirements: [
3453
4485
  # {
3454
4486
  # value: "String", # required
3455
- # type: "GPU", # required, accepts GPU
4487
+ # type: "GPU", # required, accepts GPU, VCPU, MEMORY
3456
4488
  # },
3457
4489
  # ],
3458
4490
  # },
@@ -3475,7 +4507,7 @@ module Aws::Batch
3475
4507
  # resource_requirements: [
3476
4508
  # {
3477
4509
  # value: "String", # required
3478
- # type: "GPU", # required, accepts GPU
4510
+ # type: "GPU", # required, accepts GPU, VCPU, MEMORY
3479
4511
  # },
3480
4512
  # ],
3481
4513
  # },
@@ -3484,10 +4516,22 @@ module Aws::Batch
3484
4516
  # },
3485
4517
  # retry_strategy: {
3486
4518
  # attempts: 1,
4519
+ # evaluate_on_exit: [
4520
+ # {
4521
+ # on_status_reason: "String",
4522
+ # on_reason: "String",
4523
+ # on_exit_code: "String",
4524
+ # action: "RETRY", # required, accepts RETRY, EXIT
4525
+ # },
4526
+ # ],
3487
4527
  # },
4528
+ # propagate_tags: false,
3488
4529
  # timeout: {
3489
4530
  # attempt_duration_seconds: 1,
3490
4531
  # },
4532
+ # tags: {
4533
+ # "TagKey" => "TagValue",
4534
+ # },
3491
4535
  # }
3492
4536
  #
3493
4537
  # @!attribute [rw] job_name
@@ -3551,6 +4595,11 @@ module Aws::Batch
3551
4595
  # @!attribute [rw] node_overrides
3552
4596
  # A list of node overrides in JSON format that specify the node range
3553
4597
  # to target and the container overrides for that node range.
4598
+ #
4599
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
4600
+ # resources; use `containerOverrides` instead.
4601
+ #
4602
+ # </note>
3554
4603
  # @return [Types::NodeOverrides]
3555
4604
  #
3556
4605
  # @!attribute [rw] retry_strategy
@@ -3559,11 +4608,22 @@ module Aws::Batch
3559
4608
  # retry strategy defined in the job definition.
3560
4609
  # @return [Types::RetryStrategy]
3561
4610
  #
4611
+ # @!attribute [rw] propagate_tags
4612
+ # Specifies whether to propagate the tags from the job or job
4613
+ # definition to the corresponding Amazon ECS task. If no value is
4614
+ # specified, the tags aren't propagated. Tags can only be propagated
4615
+ # to the tasks during task creation. For tags with the same name, job
4616
+ # tags are given priority over job definitions tags. If the total
4617
+ # number of combined tags from the job and job definition is over 50,
4618
+ # the job is moved to the `FAILED` state. When specified, this
4619
+ # overrides the tag propagation setting in the job definition.
4620
+ # @return [Boolean]
4621
+ #
3562
4622
  # @!attribute [rw] timeout
3563
4623
  # The timeout configuration for this SubmitJob operation. You can
3564
4624
  # specify a timeout duration after which AWS Batch terminates your
3565
- # jobs if they have not finished. If a job is terminated due to a
3566
- # timeout, it is not retried. The minimum value for the timeout is 60
4625
+ # jobs if they haven't finished. If a job is terminated due to a
4626
+ # timeout, it isn't retried. The minimum value for the timeout is 60
3567
4627
  # seconds. This configuration overrides any timeout configuration
3568
4628
  # specified in the job definition. For array jobs, child jobs have the
3569
4629
  # same timeout configuration as the parent job. For more information,
@@ -3575,6 +4635,17 @@ module Aws::Batch
3575
4635
  # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/job_timeouts.html
3576
4636
  # @return [Types::JobTimeout]
3577
4637
  #
4638
+ # @!attribute [rw] tags
4639
+ # The tags that you apply to the job request to help you categorize
4640
+ # and organize your resources. Each tag consists of a key and an
4641
+ # optional value. For more information, see [Tagging AWS Resources][1]
4642
+ # in *AWS General Reference*.
4643
+ #
4644
+ #
4645
+ #
4646
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
4647
+ # @return [Hash<String,String>]
4648
+ #
3578
4649
  # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/SubmitJobRequest AWS API Documentation
3579
4650
  #
3580
4651
  class SubmitJobRequest < Struct.new(
@@ -3587,11 +4658,17 @@ module Aws::Batch
3587
4658
  :container_overrides,
3588
4659
  :node_overrides,
3589
4660
  :retry_strategy,
3590
- :timeout)
4661
+ :propagate_tags,
4662
+ :timeout,
4663
+ :tags)
3591
4664
  SENSITIVE = []
3592
4665
  include Aws::Structure
3593
4666
  end
3594
4667
 
4668
+ # @!attribute [rw] job_arn
4669
+ # The Amazon Resource Name (ARN) for the job.
4670
+ # @return [String]
4671
+ #
3595
4672
  # @!attribute [rw] job_name
3596
4673
  # The name of the job.
3597
4674
  # @return [String]
@@ -3603,12 +4680,54 @@ module Aws::Batch
3603
4680
  # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/SubmitJobResponse AWS API Documentation
3604
4681
  #
3605
4682
  class SubmitJobResponse < Struct.new(
4683
+ :job_arn,
3606
4684
  :job_name,
3607
4685
  :job_id)
3608
4686
  SENSITIVE = []
3609
4687
  include Aws::Structure
3610
4688
  end
3611
4689
 
4690
+ # @note When making an API call, you may pass TagResourceRequest
4691
+ # data as a hash:
4692
+ #
4693
+ # {
4694
+ # resource_arn: "String", # required
4695
+ # tags: { # required
4696
+ # "TagKey" => "TagValue",
4697
+ # },
4698
+ # }
4699
+ #
4700
+ # @!attribute [rw] resource_arn
4701
+ # The Amazon Resource Name (ARN) of the resource that tags are added
4702
+ # to. AWS Batch resources that support tags are compute environments,
4703
+ # jobs, job definitions, and job queues. ARNs for child jobs of array
4704
+ # and multi-node parallel (MNP) jobs are not supported.
4705
+ # @return [String]
4706
+ #
4707
+ # @!attribute [rw] tags
4708
+ # The tags that you apply to the resource to help you categorize and
4709
+ # organize your resources. Each tag consists of a key and an optional
4710
+ # value. For more information, see [Tagging AWS Resources][1] in *AWS
4711
+ # General Reference*.
4712
+ #
4713
+ #
4714
+ #
4715
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
4716
+ # @return [Hash<String,String>]
4717
+ #
4718
+ # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/TagResourceRequest AWS API Documentation
4719
+ #
4720
+ class TagResourceRequest < Struct.new(
4721
+ :resource_arn,
4722
+ :tags)
4723
+ SENSITIVE = []
4724
+ include Aws::Structure
4725
+ end
4726
+
4727
+ # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/TagResourceResponse AWS API Documentation
4728
+ #
4729
+ class TagResourceResponse < Aws::EmptyStructure; end
4730
+
3612
4731
  # @note When making an API call, you may pass TerminateJobRequest
3613
4732
  # data as a hash:
3614
4733
  #
@@ -3643,6 +4762,10 @@ module Aws::Batch
3643
4762
 
3644
4763
  # The container path, mount options, and size of the tmpfs mount.
3645
4764
  #
4765
+ # <note markdown="1"> This object isn't applicable to jobs running on Fargate resources.
4766
+ #
4767
+ # </note>
4768
+ #
3646
4769
  # @note When making an API call, you may pass Tmpfs
3647
4770
  # data as a hash:
3648
4771
  #
@@ -3653,7 +4776,8 @@ module Aws::Batch
3653
4776
  # }
3654
4777
  #
3655
4778
  # @!attribute [rw] container_path
3656
- # The absolute file path where the tmpfs volume is to be mounted.
4779
+ # The absolute file path in the container where the tmpfs volume is
4780
+ # mounted.
3657
4781
  # @return [String]
3658
4782
  #
3659
4783
  # @!attribute [rw] size
@@ -3663,13 +4787,16 @@ module Aws::Batch
3663
4787
  # @!attribute [rw] mount_options
3664
4788
  # The list of tmpfs volume mount options.
3665
4789
  #
3666
- # Valid values: `"defaults" | "ro" | "rw" | "suid" | "nosuid" | "dev"
3667
- # | "nodev" | "exec" | "noexec" | "sync" | "async" | "dirsync" |
3668
- # "remount" | "mand" | "nomand" | "atime" | "noatime" | "diratime" |
3669
- # "nodiratime" | "bind" | "rbind" | "unbindable" | "runbindable" |
3670
- # "private" | "rprivate" | "shared" | "rshared" | "slave" | "rslave" |
3671
- # "relatime" | "norelatime" | "strictatime" | "nostrictatime" | "mode"
3672
- # | "uid" | "gid" | "nr_inodes" | "nr_blocks" | "mpol"`
4790
+ # Valid values: "`defaults`" \| "`ro`" \| "`rw`" \| "`suid`"
4791
+ # \| "`nosuid`" \| "`dev`" \| "`nodev`" \| "`exec`" \|
4792
+ # "`noexec`" \| "`sync`" \| "`async`" \| "`dirsync`" \|
4793
+ # "`remount`" \| "`mand`" \| "`nomand`" \| "`atime`" \|
4794
+ # "`noatime`" \| "`diratime`" \| "`nodiratime`" \| "`bind`" \|
4795
+ # "`rbind" | "unbindable" | "runbindable" | "private" | "rprivate" |
4796
+ # "shared" | "rshared" | "slave" | "rslave" | "relatime`" \|
4797
+ # "`norelatime`" \| "`strictatime`" \| "`nostrictatime`" \|
4798
+ # "`mode`" \| "`uid`" \| "`gid`" \| "`nr_inodes`" \|
4799
+ # "`nr_blocks`" \| "`mpol`"
3673
4800
  # @return [Array<String>]
3674
4801
  #
3675
4802
  # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/Tmpfs AWS API Documentation
@@ -3684,6 +4811,10 @@ module Aws::Batch
3684
4811
 
3685
4812
  # The `ulimit` settings to pass to the container.
3686
4813
  #
4814
+ # <note markdown="1"> This object isn't applicable to jobs running on Fargate resources.
4815
+ #
4816
+ # </note>
4817
+ #
3687
4818
  # @note When making an API call, you may pass Ulimit
3688
4819
  # data as a hash:
3689
4820
  #
@@ -3715,6 +4846,38 @@ module Aws::Batch
3715
4846
  include Aws::Structure
3716
4847
  end
3717
4848
 
4849
+ # @note When making an API call, you may pass UntagResourceRequest
4850
+ # data as a hash:
4851
+ #
4852
+ # {
4853
+ # resource_arn: "String", # required
4854
+ # tag_keys: ["TagKey"], # required
4855
+ # }
4856
+ #
4857
+ # @!attribute [rw] resource_arn
4858
+ # The Amazon Resource Name (ARN) of the resource from which to delete
4859
+ # tags. AWS Batch resources that support tags are compute
4860
+ # environments, jobs, job definitions, and job queues. ARNs for child
4861
+ # jobs of array and multi-node parallel (MNP) jobs are not supported.
4862
+ # @return [String]
4863
+ #
4864
+ # @!attribute [rw] tag_keys
4865
+ # The keys of the tags to be removed.
4866
+ # @return [Array<String>]
4867
+ #
4868
+ # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/UntagResourceRequest AWS API Documentation
4869
+ #
4870
+ class UntagResourceRequest < Struct.new(
4871
+ :resource_arn,
4872
+ :tag_keys)
4873
+ SENSITIVE = []
4874
+ include Aws::Structure
4875
+ end
4876
+
4877
+ # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/UntagResourceResponse AWS API Documentation
4878
+ #
4879
+ class UntagResourceResponse < Aws::EmptyStructure; end
4880
+
3718
4881
  # @note When making an API call, you may pass UpdateComputeEnvironmentRequest
3719
4882
  # data as a hash:
3720
4883
  #
@@ -3725,6 +4888,8 @@ module Aws::Batch
3725
4888
  # minv_cpus: 1,
3726
4889
  # maxv_cpus: 1,
3727
4890
  # desiredv_cpus: 1,
4891
+ # subnets: ["String"],
4892
+ # security_group_ids: ["String"],
3728
4893
  # },
3729
4894
  # service_role: "String",
3730
4895
  # }
@@ -3754,7 +4919,7 @@ module Aws::Batch
3754
4919
  # role name with the path.
3755
4920
  #
3756
4921
  # <note markdown="1"> Depending on how you created your AWS Batch service role, its ARN
3757
- # may contain the `service-role` path prefix. When you only specify
4922
+ # might contain the `service-role` path prefix. When you only specify
3758
4923
  # the name of the service role, AWS Batch assumes that your ARN does
3759
4924
  # not use the `service-role` path prefix. Because of this, we
3760
4925
  # recommend that you specify the full ARN of your service role when
@@ -3830,7 +4995,10 @@ module Aws::Batch
3830
4995
  # Details the set of compute environments mapped to a job queue and
3831
4996
  # their order relative to each other. This is one of the parameters
3832
4997
  # used by the job scheduler to determine which compute environment
3833
- # should execute a given job.
4998
+ # should run a given job. All of the compute environments must be
4999
+ # either EC2 (`EC2` or `SPOT`) or Fargate (`FARGATE` or
5000
+ # `FARGATE_SPOT`); EC2 and Fargate compute environments can't be
5001
+ # mixed.
3834
5002
  # @return [Array<Types::ComputeEnvironmentOrder>]
3835
5003
  #
3836
5004
  # @see http://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/UpdateJobQueueRequest AWS API Documentation
@@ -3877,9 +5045,14 @@ module Aws::Batch
3877
5045
  # The contents of the `host` parameter determine whether your data
3878
5046
  # volume persists on the host container instance and where it is
3879
5047
  # stored. If the host parameter is empty, then the Docker daemon
3880
- # assigns a host path for your data volume. However, the data is not
5048
+ # assigns a host path for your data volume. However, the data isn't
3881
5049
  # guaranteed to persist after the containers associated with it stop
3882
5050
  # running.
5051
+ #
5052
+ # <note markdown="1"> This parameter isn't applicable to jobs running on Fargate
5053
+ # resources and shouldn't be provided.
5054
+ #
5055
+ # </note>
3883
5056
  # @return [Types::Host]
3884
5057
  #
3885
5058
  # @!attribute [rw] name