aws-sdk-ecs 1.250.0 → 1.252.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3ddfd32caa9e2a2d4b9d234c26edad3de15d283422866463c09370b1a2dd631a
4
- data.tar.gz: adb4a46d0d52e41721dd3177c498d45b65bdc76dda31804dfd64ab5f8586f473
3
+ metadata.gz: 6721c2b20c537b3bb05d53dd9dee71ce2d1ae143ec9c8129589c49de05265c95
4
+ data.tar.gz: fdec3fc587df36ad212c636f4323f3e11e44a8ae34681157b446809f9a58e616
5
5
  SHA512:
6
- metadata.gz: c986d8fb3ed17c12e48968ff63428e59323c44d8a505eddf155487024817dcf5946bf18b35e3f6a2d70b75994a1b9001333662f92e9793d1370dd9c54eaf6679
7
- data.tar.gz: ddc467384748e3bfd1aebc73afe96ce6a4eb9fdc7f9001e241c68dc772ed62ccad9194d2f474406aa898cd497ec6a2c337f9f3227ef8fba214b4e31653dbef4f
6
+ metadata.gz: 38b27b5f555d57fecebb36258d3e70811d4c19954f6575d25bb23df36f5b6d116e7eef02ba28b5782afa39d1fe06698b80b2231df59e7b9a0b0d0603dd20196e
7
+ data.tar.gz: 49de5e3c8de777b34379427a62c552fb22bdab9670712d469b59b1779ef51d638ab27a743ceaf3ba29d933574d2b6221f6e7a9ffdc149a778a8eda666050e289
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.252.0 (2026-10-27)
5
+ ------------------
6
+
7
+ * Feature - ECS now supports GPU sharing via NVIDIA Multi-Process Service (MPS) on ECS Managed Instances and ECS EC2, allowing multiple ECS tasks to share a single Nvidia GPU for improved utilization.
8
+
9
+ 1.251.0 (2026-10-21)
10
+ ------------------
11
+
12
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
13
+
4
14
  1.250.0 (2026-10-20)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.250.0
1
+ 1.252.0
@@ -4678,6 +4678,8 @@ module Aws::ECS
4678
4678
  # resp.task_definitions[0].container_definitions[0].resource_requirements #=> Array
4679
4679
  # resp.task_definitions[0].container_definitions[0].resource_requirements[0].value #=> String
4680
4680
  # resp.task_definitions[0].container_definitions[0].resource_requirements[0].type #=> String, one of "GPU", "InferenceAccelerator", "NeuronDevice"
4681
+ # resp.task_definitions[0].container_definitions[0].resource_requirements[0].sharing_strategy.nvidia_mps.memory #=> Integer
4682
+ # resp.task_definitions[0].container_definitions[0].resource_requirements[0].sharing_strategy.nvidia_mps.max_compute_percent #=> Integer
4681
4683
  # resp.task_definitions[0].container_definitions[0].firelens_configuration.type #=> String, one of "fluentd", "fluentbit"
4682
4684
  # resp.task_definitions[0].container_definitions[0].firelens_configuration.options #=> Hash
4683
4685
  # resp.task_definitions[0].container_definitions[0].firelens_configuration.options["String"] #=> String
@@ -5037,6 +5039,12 @@ module Aws::ECS
5037
5039
  # resp.container_instance.health_status.details[0].status_reason #=> String
5038
5040
  # resp.container_instance.health_status.details[0].last_updated #=> Time
5039
5041
  # resp.container_instance.health_status.details[0].last_status_change #=> Time
5042
+ # resp.container_instance.gpu_devices #=> Array
5043
+ # resp.container_instance.gpu_devices[0].gpu_id #=> String
5044
+ # resp.container_instance.gpu_devices[0].sharing_mode #=> String, one of "IDLE", "NVIDIA_MPS", "DEDICATED"
5045
+ # resp.container_instance.gpu_devices[0].total_memory_in_mi_b #=> Integer
5046
+ # resp.container_instance.gpu_devices[0].remaining_memory_in_mi_b #=> Integer
5047
+ # resp.container_instance.gpu_devices[0].container_count #=> Integer
5040
5048
  #
5041
5049
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterContainerInstance AWS API Documentation
5042
5050
  #
@@ -5236,6 +5244,8 @@ module Aws::ECS
5236
5244
  # resp.task_definition.container_definitions[0].resource_requirements #=> Array
5237
5245
  # resp.task_definition.container_definitions[0].resource_requirements[0].value #=> String
5238
5246
  # resp.task_definition.container_definitions[0].resource_requirements[0].type #=> String, one of "GPU", "InferenceAccelerator", "NeuronDevice"
5247
+ # resp.task_definition.container_definitions[0].resource_requirements[0].sharing_strategy.nvidia_mps.memory #=> Integer
5248
+ # resp.task_definition.container_definitions[0].resource_requirements[0].sharing_strategy.nvidia_mps.max_compute_percent #=> Integer
5239
5249
  # resp.task_definition.container_definitions[0].firelens_configuration.type #=> String, one of "fluentd", "fluentbit"
5240
5250
  # resp.task_definition.container_definitions[0].firelens_configuration.options #=> Hash
5241
5251
  # resp.task_definition.container_definitions[0].firelens_configuration.options["String"] #=> String
@@ -5855,6 +5865,12 @@ module Aws::ECS
5855
5865
  # resp.container_instances[0].health_status.details[0].status_reason #=> String
5856
5866
  # resp.container_instances[0].health_status.details[0].last_updated #=> Time
5857
5867
  # resp.container_instances[0].health_status.details[0].last_status_change #=> Time
5868
+ # resp.container_instances[0].gpu_devices #=> Array
5869
+ # resp.container_instances[0].gpu_devices[0].gpu_id #=> String
5870
+ # resp.container_instances[0].gpu_devices[0].sharing_mode #=> String, one of "IDLE", "NVIDIA_MPS", "DEDICATED"
5871
+ # resp.container_instances[0].gpu_devices[0].total_memory_in_mi_b #=> Integer
5872
+ # resp.container_instances[0].gpu_devices[0].remaining_memory_in_mi_b #=> Integer
5873
+ # resp.container_instances[0].gpu_devices[0].container_count #=> Integer
5858
5874
  # resp.failures #=> Array
5859
5875
  # resp.failures[0].arn #=> String
5860
5876
  # resp.failures[0].reason #=> String
@@ -7896,6 +7912,8 @@ module Aws::ECS
7896
7912
  # resp.task_definition.container_definitions[0].resource_requirements #=> Array
7897
7913
  # resp.task_definition.container_definitions[0].resource_requirements[0].value #=> String
7898
7914
  # resp.task_definition.container_definitions[0].resource_requirements[0].type #=> String, one of "GPU", "InferenceAccelerator", "NeuronDevice"
7915
+ # resp.task_definition.container_definitions[0].resource_requirements[0].sharing_strategy.nvidia_mps.memory #=> Integer
7916
+ # resp.task_definition.container_definitions[0].resource_requirements[0].sharing_strategy.nvidia_mps.max_compute_percent #=> Integer
7899
7917
  # resp.task_definition.container_definitions[0].firelens_configuration.type #=> String, one of "fluentd", "fluentbit"
7900
7918
  # resp.task_definition.container_definitions[0].firelens_configuration.options #=> Hash
7901
7919
  # resp.task_definition.container_definitions[0].firelens_configuration.options["String"] #=> String
@@ -8275,6 +8293,8 @@ module Aws::ECS
8275
8293
  # resp.tasks[0].containers[0].gpu_ids[0] #=> String
8276
8294
  # resp.tasks[0].containers[0].neuron_device_ids #=> Array
8277
8295
  # resp.tasks[0].containers[0].neuron_device_ids[0] #=> String
8296
+ # resp.tasks[0].containers[0].gpu_sharing_strategy.nvidia_mps.memory #=> Integer
8297
+ # resp.tasks[0].containers[0].gpu_sharing_strategy.nvidia_mps.max_compute_percent #=> Integer
8278
8298
  # resp.tasks[0].cpu #=> String
8279
8299
  # resp.tasks[0].created_at #=> Time
8280
8300
  # resp.tasks[0].desired_status #=> String
@@ -8304,6 +8324,8 @@ module Aws::ECS
8304
8324
  # resp.tasks[0].overrides.container_overrides[0].resource_requirements #=> Array
8305
8325
  # resp.tasks[0].overrides.container_overrides[0].resource_requirements[0].value #=> String
8306
8326
  # resp.tasks[0].overrides.container_overrides[0].resource_requirements[0].type #=> String, one of "GPU", "InferenceAccelerator", "NeuronDevice"
8327
+ # resp.tasks[0].overrides.container_overrides[0].resource_requirements[0].sharing_strategy.nvidia_mps.memory #=> Integer
8328
+ # resp.tasks[0].overrides.container_overrides[0].resource_requirements[0].sharing_strategy.nvidia_mps.max_compute_percent #=> Integer
8307
8329
  # resp.tasks[0].overrides.cpu #=> String
8308
8330
  # resp.tasks[0].overrides.inference_accelerator_overrides #=> Array
8309
8331
  # resp.tasks[0].overrides.inference_accelerator_overrides[0].device_name #=> String
@@ -11481,6 +11503,12 @@ module Aws::ECS
11481
11503
  # resp.container_instance.health_status.details[0].status_reason #=> String
11482
11504
  # resp.container_instance.health_status.details[0].last_updated #=> Time
11483
11505
  # resp.container_instance.health_status.details[0].last_status_change #=> Time
11506
+ # resp.container_instance.gpu_devices #=> Array
11507
+ # resp.container_instance.gpu_devices[0].gpu_id #=> String
11508
+ # resp.container_instance.gpu_devices[0].sharing_mode #=> String, one of "IDLE", "NVIDIA_MPS", "DEDICATED"
11509
+ # resp.container_instance.gpu_devices[0].total_memory_in_mi_b #=> Integer
11510
+ # resp.container_instance.gpu_devices[0].remaining_memory_in_mi_b #=> Integer
11511
+ # resp.container_instance.gpu_devices[0].container_count #=> Integer
11484
11512
  #
11485
11513
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterContainerInstance AWS API Documentation
11486
11514
  #
@@ -12348,8 +12376,14 @@ module Aws::ECS
12348
12376
  # ],
12349
12377
  # resource_requirements: [
12350
12378
  # {
12351
- # value: "String", # required
12379
+ # value: "String",
12352
12380
  # type: "GPU", # required, accepts GPU, InferenceAccelerator, NeuronDevice
12381
+ # sharing_strategy: {
12382
+ # nvidia_mps: {
12383
+ # memory: 1, # required
12384
+ # max_compute_percent: 1,
12385
+ # },
12386
+ # },
12353
12387
  # },
12354
12388
  # ],
12355
12389
  # firelens_configuration: {
@@ -12557,6 +12591,8 @@ module Aws::ECS
12557
12591
  # resp.task_definition.container_definitions[0].resource_requirements #=> Array
12558
12592
  # resp.task_definition.container_definitions[0].resource_requirements[0].value #=> String
12559
12593
  # resp.task_definition.container_definitions[0].resource_requirements[0].type #=> String, one of "GPU", "InferenceAccelerator", "NeuronDevice"
12594
+ # resp.task_definition.container_definitions[0].resource_requirements[0].sharing_strategy.nvidia_mps.memory #=> Integer
12595
+ # resp.task_definition.container_definitions[0].resource_requirements[0].sharing_strategy.nvidia_mps.max_compute_percent #=> Integer
12560
12596
  # resp.task_definition.container_definitions[0].firelens_configuration.type #=> String, one of "fluentd", "fluentbit"
12561
12597
  # resp.task_definition.container_definitions[0].firelens_configuration.options #=> Hash
12562
12598
  # resp.task_definition.container_definitions[0].firelens_configuration.options["String"] #=> String
@@ -13051,8 +13087,14 @@ module Aws::ECS
13051
13087
  # memory_reservation: 1,
13052
13088
  # resource_requirements: [
13053
13089
  # {
13054
- # value: "String", # required
13090
+ # value: "String",
13055
13091
  # type: "GPU", # required, accepts GPU, InferenceAccelerator, NeuronDevice
13092
+ # sharing_strategy: {
13093
+ # nvidia_mps: {
13094
+ # memory: 1, # required
13095
+ # max_compute_percent: 1,
13096
+ # },
13097
+ # },
13056
13098
  # },
13057
13099
  # ],
13058
13100
  # },
@@ -13184,6 +13226,8 @@ module Aws::ECS
13184
13226
  # resp.tasks[0].containers[0].gpu_ids[0] #=> String
13185
13227
  # resp.tasks[0].containers[0].neuron_device_ids #=> Array
13186
13228
  # resp.tasks[0].containers[0].neuron_device_ids[0] #=> String
13229
+ # resp.tasks[0].containers[0].gpu_sharing_strategy.nvidia_mps.memory #=> Integer
13230
+ # resp.tasks[0].containers[0].gpu_sharing_strategy.nvidia_mps.max_compute_percent #=> Integer
13187
13231
  # resp.tasks[0].cpu #=> String
13188
13232
  # resp.tasks[0].created_at #=> Time
13189
13233
  # resp.tasks[0].desired_status #=> String
@@ -13213,6 +13257,8 @@ module Aws::ECS
13213
13257
  # resp.tasks[0].overrides.container_overrides[0].resource_requirements #=> Array
13214
13258
  # resp.tasks[0].overrides.container_overrides[0].resource_requirements[0].value #=> String
13215
13259
  # resp.tasks[0].overrides.container_overrides[0].resource_requirements[0].type #=> String, one of "GPU", "InferenceAccelerator", "NeuronDevice"
13260
+ # resp.tasks[0].overrides.container_overrides[0].resource_requirements[0].sharing_strategy.nvidia_mps.memory #=> Integer
13261
+ # resp.tasks[0].overrides.container_overrides[0].resource_requirements[0].sharing_strategy.nvidia_mps.max_compute_percent #=> Integer
13216
13262
  # resp.tasks[0].overrides.cpu #=> String
13217
13263
  # resp.tasks[0].overrides.inference_accelerator_overrides #=> Array
13218
13264
  # resp.tasks[0].overrides.inference_accelerator_overrides[0].device_name #=> String
@@ -13500,8 +13546,14 @@ module Aws::ECS
13500
13546
  # memory_reservation: 1,
13501
13547
  # resource_requirements: [
13502
13548
  # {
13503
- # value: "String", # required
13549
+ # value: "String",
13504
13550
  # type: "GPU", # required, accepts GPU, InferenceAccelerator, NeuronDevice
13551
+ # sharing_strategy: {
13552
+ # nvidia_mps: {
13553
+ # memory: 1, # required
13554
+ # max_compute_percent: 1,
13555
+ # },
13556
+ # },
13505
13557
  # },
13506
13558
  # ],
13507
13559
  # },
@@ -13619,6 +13671,8 @@ module Aws::ECS
13619
13671
  # resp.tasks[0].containers[0].gpu_ids[0] #=> String
13620
13672
  # resp.tasks[0].containers[0].neuron_device_ids #=> Array
13621
13673
  # resp.tasks[0].containers[0].neuron_device_ids[0] #=> String
13674
+ # resp.tasks[0].containers[0].gpu_sharing_strategy.nvidia_mps.memory #=> Integer
13675
+ # resp.tasks[0].containers[0].gpu_sharing_strategy.nvidia_mps.max_compute_percent #=> Integer
13622
13676
  # resp.tasks[0].cpu #=> String
13623
13677
  # resp.tasks[0].created_at #=> Time
13624
13678
  # resp.tasks[0].desired_status #=> String
@@ -13648,6 +13702,8 @@ module Aws::ECS
13648
13702
  # resp.tasks[0].overrides.container_overrides[0].resource_requirements #=> Array
13649
13703
  # resp.tasks[0].overrides.container_overrides[0].resource_requirements[0].value #=> String
13650
13704
  # resp.tasks[0].overrides.container_overrides[0].resource_requirements[0].type #=> String, one of "GPU", "InferenceAccelerator", "NeuronDevice"
13705
+ # resp.tasks[0].overrides.container_overrides[0].resource_requirements[0].sharing_strategy.nvidia_mps.memory #=> Integer
13706
+ # resp.tasks[0].overrides.container_overrides[0].resource_requirements[0].sharing_strategy.nvidia_mps.max_compute_percent #=> Integer
13651
13707
  # resp.tasks[0].overrides.cpu #=> String
13652
13708
  # resp.tasks[0].overrides.inference_accelerator_overrides #=> Array
13653
13709
  # resp.tasks[0].overrides.inference_accelerator_overrides[0].device_name #=> String
@@ -13928,6 +13984,8 @@ module Aws::ECS
13928
13984
  # resp.task.containers[0].gpu_ids[0] #=> String
13929
13985
  # resp.task.containers[0].neuron_device_ids #=> Array
13930
13986
  # resp.task.containers[0].neuron_device_ids[0] #=> String
13987
+ # resp.task.containers[0].gpu_sharing_strategy.nvidia_mps.memory #=> Integer
13988
+ # resp.task.containers[0].gpu_sharing_strategy.nvidia_mps.max_compute_percent #=> Integer
13931
13989
  # resp.task.cpu #=> String
13932
13990
  # resp.task.created_at #=> Time
13933
13991
  # resp.task.desired_status #=> String
@@ -13957,6 +14015,8 @@ module Aws::ECS
13957
14015
  # resp.task.overrides.container_overrides[0].resource_requirements #=> Array
13958
14016
  # resp.task.overrides.container_overrides[0].resource_requirements[0].value #=> String
13959
14017
  # resp.task.overrides.container_overrides[0].resource_requirements[0].type #=> String, one of "GPU", "InferenceAccelerator", "NeuronDevice"
14018
+ # resp.task.overrides.container_overrides[0].resource_requirements[0].sharing_strategy.nvidia_mps.memory #=> Integer
14019
+ # resp.task.overrides.container_overrides[0].resource_requirements[0].sharing_strategy.nvidia_mps.max_compute_percent #=> Integer
13960
14020
  # resp.task.overrides.cpu #=> String
13961
14021
  # resp.task.overrides.inference_accelerator_overrides #=> Array
13962
14022
  # resp.task.overrides.inference_accelerator_overrides[0].device_name #=> String
@@ -15185,6 +15245,12 @@ module Aws::ECS
15185
15245
  # resp.container_instance.health_status.details[0].status_reason #=> String
15186
15246
  # resp.container_instance.health_status.details[0].last_updated #=> Time
15187
15247
  # resp.container_instance.health_status.details[0].last_status_change #=> Time
15248
+ # resp.container_instance.gpu_devices #=> Array
15249
+ # resp.container_instance.gpu_devices[0].gpu_id #=> String
15250
+ # resp.container_instance.gpu_devices[0].sharing_mode #=> String, one of "IDLE", "NVIDIA_MPS", "DEDICATED"
15251
+ # resp.container_instance.gpu_devices[0].total_memory_in_mi_b #=> Integer
15252
+ # resp.container_instance.gpu_devices[0].remaining_memory_in_mi_b #=> Integer
15253
+ # resp.container_instance.gpu_devices[0].container_count #=> Integer
15188
15254
  #
15189
15255
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerAgent AWS API Documentation
15190
15256
  #
@@ -15513,6 +15579,12 @@ module Aws::ECS
15513
15579
  # resp.container_instances[0].health_status.details[0].status_reason #=> String
15514
15580
  # resp.container_instances[0].health_status.details[0].last_updated #=> Time
15515
15581
  # resp.container_instances[0].health_status.details[0].last_status_change #=> Time
15582
+ # resp.container_instances[0].gpu_devices #=> Array
15583
+ # resp.container_instances[0].gpu_devices[0].gpu_id #=> String
15584
+ # resp.container_instances[0].gpu_devices[0].sharing_mode #=> String, one of "IDLE", "NVIDIA_MPS", "DEDICATED"
15585
+ # resp.container_instances[0].gpu_devices[0].total_memory_in_mi_b #=> Integer
15586
+ # resp.container_instances[0].gpu_devices[0].remaining_memory_in_mi_b #=> Integer
15587
+ # resp.container_instances[0].gpu_devices[0].container_count #=> Integer
15516
15588
  # resp.failures #=> Array
15517
15589
  # resp.failures[0].arn #=> String
15518
15590
  # resp.failures[0].reason #=> String
@@ -17482,7 +17554,7 @@ module Aws::ECS
17482
17554
  tracer: tracer
17483
17555
  )
17484
17556
  context[:gem_name] = 'aws-sdk-ecs'
17485
- context[:gem_version] = '1.250.0'
17557
+ context[:gem_version] = '1.252.0'
17486
17558
  Seahorse::Client::Request.new(handlers, context)
17487
17559
  end
17488
17560
 
@@ -370,7 +370,10 @@ module Aws::ECS
370
370
  GatewayTestTrafficHeader = Shapes::StructureShape.new(name: 'GatewayTestTrafficHeader')
371
371
  GetTaskProtectionRequest = Shapes::StructureShape.new(name: 'GetTaskProtectionRequest')
372
372
  GetTaskProtectionResponse = Shapes::StructureShape.new(name: 'GetTaskProtectionResponse')
373
+ GpuDevice = Shapes::StructureShape.new(name: 'GpuDevice')
374
+ GpuDevices = Shapes::ListShape.new(name: 'GpuDevices')
373
375
  GpuIds = Shapes::ListShape.new(name: 'GpuIds')
376
+ GpuSharingMode = Shapes::StringShape.new(name: 'GpuSharingMode')
374
377
  HealthCheck = Shapes::StructureShape.new(name: 'HealthCheck')
375
378
  HealthStatus = Shapes::StringShape.new(name: 'HealthStatus')
376
379
  HealthyPercentInteger = Shapes::IntegerShape.new(name: 'HealthyPercentInteger')
@@ -508,6 +511,9 @@ module Aws::ECS
508
511
  NetworkMode = Shapes::StringShape.new(name: 'NetworkMode')
509
512
  NeuronDeviceIds = Shapes::ListShape.new(name: 'NeuronDeviceIds')
510
513
  NoUpdateAvailableException = Shapes::StructureShape.new(name: 'NoUpdateAvailableException')
514
+ NvidiaMpsAllocation = Shapes::StructureShape.new(name: 'NvidiaMpsAllocation')
515
+ NvidiaMpsAllocationMaxComputePercentInteger = Shapes::IntegerShape.new(name: 'NvidiaMpsAllocationMaxComputePercentInteger')
516
+ NvidiaMpsAllocationMemoryInteger = Shapes::IntegerShape.new(name: 'NvidiaMpsAllocationMemoryInteger')
511
517
  OSFamily = Shapes::StringShape.new(name: 'OSFamily')
512
518
  PidMode = Shapes::StringShape.new(name: 'PidMode')
513
519
  PlacementConstraint = Shapes::StructureShape.new(name: 'PlacementConstraint')
@@ -631,6 +637,7 @@ module Aws::ECS
631
637
  SettingName = Shapes::StringShape.new(name: 'SettingName')
632
638
  SettingType = Shapes::StringShape.new(name: 'SettingType')
633
639
  Settings = Shapes::ListShape.new(name: 'Settings')
640
+ SharingStrategy = Shapes::UnionShape.new(name: 'SharingStrategy')
634
641
  SortOrder = Shapes::StringShape.new(name: 'SortOrder')
635
642
  StabilityStatus = Shapes::StringShape.new(name: 'StabilityStatus')
636
643
  StartTaskRequest = Shapes::StructureShape.new(name: 'StartTaskRequest')
@@ -944,6 +951,7 @@ module Aws::ECS
944
951
  Container.add_member(:memory_reservation, Shapes::ShapeRef.new(shape: String, location_name: "memoryReservation"))
945
952
  Container.add_member(:gpu_ids, Shapes::ShapeRef.new(shape: GpuIds, location_name: "gpuIds"))
946
953
  Container.add_member(:neuron_device_ids, Shapes::ShapeRef.new(shape: NeuronDeviceIds, location_name: "neuronDeviceIds"))
954
+ Container.add_member(:gpu_sharing_strategy, Shapes::ShapeRef.new(shape: SharingStrategy, location_name: "gpuSharingStrategy"))
947
955
  Container.struct_class = Types::Container
948
956
 
949
957
  ContainerDefinition.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "name"))
@@ -1023,6 +1031,7 @@ module Aws::ECS
1023
1031
  ContainerInstance.add_member(:attachments, Shapes::ShapeRef.new(shape: Attachments, location_name: "attachments"))
1024
1032
  ContainerInstance.add_member(:tags, Shapes::ShapeRef.new(shape: Tags, location_name: "tags"))
1025
1033
  ContainerInstance.add_member(:health_status, Shapes::ShapeRef.new(shape: ContainerInstanceHealthStatus, location_name: "healthStatus"))
1034
+ ContainerInstance.add_member(:gpu_devices, Shapes::ShapeRef.new(shape: GpuDevices, location_name: "gpuDevices"))
1026
1035
  ContainerInstance.struct_class = Types::ContainerInstance
1027
1036
 
1028
1037
  ContainerInstanceFieldList.member = Shapes::ShapeRef.new(shape: ContainerInstanceField)
@@ -2136,6 +2145,15 @@ module Aws::ECS
2136
2145
  GetTaskProtectionResponse.add_member(:failures, Shapes::ShapeRef.new(shape: Failures, location_name: "failures"))
2137
2146
  GetTaskProtectionResponse.struct_class = Types::GetTaskProtectionResponse
2138
2147
 
2148
+ GpuDevice.add_member(:gpu_id, Shapes::ShapeRef.new(shape: String, location_name: "gpuId"))
2149
+ GpuDevice.add_member(:sharing_mode, Shapes::ShapeRef.new(shape: GpuSharingMode, location_name: "sharingMode"))
2150
+ GpuDevice.add_member(:total_memory_in_mi_b, Shapes::ShapeRef.new(shape: BoxedInteger, location_name: "totalMemoryInMiB"))
2151
+ GpuDevice.add_member(:remaining_memory_in_mi_b, Shapes::ShapeRef.new(shape: BoxedInteger, location_name: "remainingMemoryInMiB"))
2152
+ GpuDevice.add_member(:container_count, Shapes::ShapeRef.new(shape: BoxedInteger, location_name: "containerCount"))
2153
+ GpuDevice.struct_class = Types::GpuDevice
2154
+
2155
+ GpuDevices.member = Shapes::ShapeRef.new(shape: GpuDevice)
2156
+
2139
2157
  GpuIds.member = Shapes::ShapeRef.new(shape: String)
2140
2158
 
2141
2159
  HealthCheck.add_member(:command, Shapes::ShapeRef.new(shape: StringList, required: true, location_name: "command"))
@@ -2688,6 +2706,10 @@ module Aws::ECS
2688
2706
  NoUpdateAvailableException.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
2689
2707
  NoUpdateAvailableException.struct_class = Types::NoUpdateAvailableException
2690
2708
 
2709
+ NvidiaMpsAllocation.add_member(:memory, Shapes::ShapeRef.new(shape: NvidiaMpsAllocationMemoryInteger, required: true, location_name: "memory"))
2710
+ NvidiaMpsAllocation.add_member(:max_compute_percent, Shapes::ShapeRef.new(shape: NvidiaMpsAllocationMaxComputePercentInteger, location_name: "maxComputePercent"))
2711
+ NvidiaMpsAllocation.struct_class = Types::NvidiaMpsAllocation
2712
+
2691
2713
  PlacementConstraint.add_member(:type, Shapes::ShapeRef.new(shape: PlacementConstraintType, location_name: "type"))
2692
2714
  PlacementConstraint.add_member(:expression, Shapes::ShapeRef.new(shape: String, location_name: "expression"))
2693
2715
  PlacementConstraint.struct_class = Types::PlacementConstraint
@@ -2844,8 +2866,9 @@ module Aws::ECS
2844
2866
  ResourceNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
2845
2867
  ResourceNotFoundException.struct_class = Types::ResourceNotFoundException
2846
2868
 
2847
- ResourceRequirement.add_member(:value, Shapes::ShapeRef.new(shape: String, required: true, location_name: "value"))
2869
+ ResourceRequirement.add_member(:value, Shapes::ShapeRef.new(shape: String, location_name: "value"))
2848
2870
  ResourceRequirement.add_member(:type, Shapes::ShapeRef.new(shape: ResourceType, required: true, location_name: "type"))
2871
+ ResourceRequirement.add_member(:sharing_strategy, Shapes::ShapeRef.new(shape: SharingStrategy, location_name: "sharingStrategy"))
2849
2872
  ResourceRequirement.struct_class = Types::ResourceRequirement
2850
2873
 
2851
2874
  ResourceRequirements.member = Shapes::ShapeRef.new(shape: ResourceRequirement)
@@ -3173,6 +3196,12 @@ module Aws::ECS
3173
3196
 
3174
3197
  Settings.member = Shapes::ShapeRef.new(shape: Setting)
3175
3198
 
3199
+ SharingStrategy.add_member(:nvidia_mps, Shapes::ShapeRef.new(shape: NvidiaMpsAllocation, location_name: "nvidiaMps"))
3200
+ SharingStrategy.add_member(:unknown, Shapes::ShapeRef.new(shape: nil, location_name: 'unknown'))
3201
+ SharingStrategy.add_member_subclass(:nvidia_mps, Types::SharingStrategy::NvidiaMps)
3202
+ SharingStrategy.add_member_subclass(:unknown, Types::SharingStrategy::Unknown)
3203
+ SharingStrategy.struct_class = Types::SharingStrategy
3204
+
3176
3205
  StartTaskRequest.add_member(:cluster, Shapes::ShapeRef.new(shape: String, location_name: "cluster"))
3177
3206
  StartTaskRequest.add_member(:container_instances, Shapes::ShapeRef.new(shape: StringList, required: true, location_name: "containerInstances"))
3178
3207
  StartTaskRequest.add_member(:enable_ecs_managed_tags, Shapes::ShapeRef.new(shape: Boolean, location_name: "enableECSManagedTags"))
@@ -1394,6 +1394,12 @@ module Aws::ECS
1394
1394
  # The IDs of each Neuron device assigned to the container.
1395
1395
  # @return [Array<String>]
1396
1396
  #
1397
+ # @!attribute [rw] gpu_sharing_strategy
1398
+ # The GPU sharing strategy that the task definition specifies for the
1399
+ # container. This field is present only for containers whose resource
1400
+ # requirements include `sharingStrategy`.
1401
+ # @return [Types::SharingStrategy]
1402
+ #
1397
1403
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Container AWS API Documentation
1398
1404
  #
1399
1405
  class Container < Struct.new(
@@ -1414,7 +1420,8 @@ module Aws::ECS
1414
1420
  :memory,
1415
1421
  :memory_reservation,
1416
1422
  :gpu_ids,
1417
- :neuron_device_ids)
1423
+ :neuron_device_ids,
1424
+ :gpu_sharing_strategy)
1418
1425
  SENSITIVE = []
1419
1426
  include Aws::Structure
1420
1427
  end
@@ -2567,6 +2574,12 @@ module Aws::ECS
2567
2574
  # An object representing the health status of the container instance.
2568
2575
  # @return [Types::ContainerInstanceHealthStatus]
2569
2576
  #
2577
+ # @!attribute [rw] gpu_devices
2578
+ # The state of each GPU on the container instance, including its
2579
+ # sharing mode and available memory. This field is present only for
2580
+ # container instances that support GPU sharing.
2581
+ # @return [Array<Types::GpuDevice>]
2582
+ #
2570
2583
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ContainerInstance AWS API Documentation
2571
2584
  #
2572
2585
  class ContainerInstance < Struct.new(
@@ -2587,7 +2600,8 @@ module Aws::ECS
2587
2600
  :registered_at,
2588
2601
  :attachments,
2589
2602
  :tags,
2590
- :health_status)
2603
+ :health_status,
2604
+ :gpu_devices)
2591
2605
  SENSITIVE = []
2592
2606
  include Aws::Structure
2593
2607
  end
@@ -9607,6 +9621,61 @@ module Aws::ECS
9607
9621
  include Aws::Structure
9608
9622
  end
9609
9623
 
9624
+ # The state of a GPU on a container instance, including its sharing mode
9625
+ # and the memory that's available for new containers.
9626
+ #
9627
+ # @!attribute [rw] gpu_id
9628
+ # The ID of the GPU. This ID matches the GPU IDs in the `gpuIds` of
9629
+ # the containers that Amazon ECS assigned to the GPU.
9630
+ # @return [String]
9631
+ #
9632
+ # @!attribute [rw] sharing_mode
9633
+ # How the GPU is shared between containers.
9634
+ #
9635
+ # Valid values:
9636
+ #
9637
+ # * `IDLE` - No containers are assigned to the GPU, and all of its
9638
+ # memory is available.
9639
+ #
9640
+ # * `NVIDIA_MPS` - One or more containers share the GPU by using
9641
+ # NVIDIA Multi-Process Service (MPS).
9642
+ #
9643
+ # * `DEDICATED` - One container has exclusive use of the GPU.
9644
+ # @return [String]
9645
+ #
9646
+ # @!attribute [rw] total_memory_in_mi_b
9647
+ # The total amount of GPU memory, in MiB, that the Amazon ECS
9648
+ # container agent reported for the GPU. This is the memory that's
9649
+ # available to containers, and it can be less than the nominal memory
9650
+ # of the GPU.
9651
+ # @return [Integer]
9652
+ #
9653
+ # @!attribute [rw] remaining_memory_in_mi_b
9654
+ # The amount of GPU memory, in MiB, that's available to allocate to
9655
+ # new containers that use the `nvidiaMps` sharing strategy. Amazon ECS
9656
+ # calculates this value from the memory that it allocated to
9657
+ # containers on the GPU, not from the memory that the containers use.
9658
+ # @return [Integer]
9659
+ #
9660
+ # @!attribute [rw] container_count
9661
+ # The number of containers that Amazon ECS assigned to the GPU. This
9662
+ # value is `0` when the sharing mode is `IDLE` and `1` when the
9663
+ # sharing mode is `DEDICATED`. Amazon ECS counts the containers that
9664
+ # it assigned to the GPU, not the processes that are running on it.
9665
+ # @return [Integer]
9666
+ #
9667
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/GpuDevice AWS API Documentation
9668
+ #
9669
+ class GpuDevice < Struct.new(
9670
+ :gpu_id,
9671
+ :sharing_mode,
9672
+ :total_memory_in_mi_b,
9673
+ :remaining_memory_in_mi_b,
9674
+ :container_count)
9675
+ SENSITIVE = []
9676
+ include Aws::Structure
9677
+ end
9678
+
9610
9679
  # An object representing a container health check. Health check
9611
9680
  # parameters that are specified in a container definition override any
9612
9681
  # Docker health checks that exist in the container image (such as those
@@ -13685,6 +13754,43 @@ module Aws::ECS
13685
13754
  include Aws::Structure
13686
13755
  end
13687
13756
 
13757
+ # The GPU memory and compute limits for a container that shares a GPU by
13758
+ # using NVIDIA Multi-Process Service (MPS). Amazon ECS assigns the
13759
+ # container a single GPU that has enough memory available. Other
13760
+ # containers that use MPS can share the same GPU.
13761
+ #
13762
+ # @!attribute [rw] memory
13763
+ # The amount of GPU memory, in MiB, to allocate to the container.
13764
+ # Amazon ECS assigns the container a GPU that has at least the
13765
+ # specified amount of memory available, and sets the
13766
+ # `CUDA_MPS_PINNED_DEVICE_MEM_LIMIT` environment variable in the
13767
+ # container to limit its memory to this amount. The memory must be
13768
+ # available on a single GPU. If more than one container in a task uses
13769
+ # `nvidiaMps`, Amazon ECS assigns them the same GPU, which must have
13770
+ # enough memory available for all of them.
13771
+ # @return [Integer]
13772
+ #
13773
+ # @!attribute [rw] max_compute_percent
13774
+ # The maximum percentage of the GPU's compute capacity that the
13775
+ # container can use. Amazon ECS sets the
13776
+ # `CUDA_MPS_ACTIVE_THREAD_PERCENTAGE` environment variable in the
13777
+ # container to this value. This value is a limit, not a reservation.
13778
+ #
13779
+ # If you don't specify this parameter, Amazon ECS doesn't set
13780
+ # `CUDA_MPS_ACTIVE_THREAD_PERCENTAGE`, and the active thread
13781
+ # percentage of the MPS server on the container instance applies. By
13782
+ # default, this is 100 percent.
13783
+ # @return [Integer]
13784
+ #
13785
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/NvidiaMpsAllocation AWS API Documentation
13786
+ #
13787
+ class NvidiaMpsAllocation < Struct.new(
13788
+ :memory,
13789
+ :max_compute_percent)
13790
+ SENSITIVE = []
13791
+ include Aws::Structure
13792
+ end
13793
+
13688
13794
  # An object representing a constraint on task placement. For more
13689
13795
  # information, see [Task placement constraints][1] in the *Amazon
13690
13796
  # Elastic Container Service Developer Guide*.
@@ -15366,6 +15472,9 @@ module Aws::ECS
15366
15472
  # @!attribute [rw] value
15367
15473
  # The value for the specified resource type.
15368
15474
  #
15475
+ # You must specify this parameter unless the type is `GPU` and you
15476
+ # specify `sharingStrategy`.
15477
+ #
15369
15478
  # When the type is `GPU`, the value is the number of physical `GPUs`
15370
15479
  # the Amazon ECS container agent reserves for the container. The
15371
15480
  # number of GPUs that's reserved for all containers in a task can't
@@ -15392,11 +15501,26 @@ module Aws::ECS
15392
15501
  # The type of resource to assign to a container.
15393
15502
  # @return [String]
15394
15503
  #
15504
+ # @!attribute [rw] sharing_strategy
15505
+ # The strategy that the container uses to share a GPU with other
15506
+ # containers. Specify a sharing strategy only when the type is `GPU`.
15507
+ # For a GPU resource requirement, specify either `value` or
15508
+ # `sharingStrategy`, but not both. If you don't specify a sharing
15509
+ # strategy, the container has exclusive use of each GPU that Amazon
15510
+ # ECS assigns to it. The containers in a task that request GPUs must
15511
+ # all use the same option.
15512
+ #
15513
+ # You can use GPU sharing with tasks that run on Amazon EC2 instances
15514
+ # or Amazon ECS Managed Instances. Task definitions that require
15515
+ # `EXTERNAL` compatibility don't support GPU sharing.
15516
+ # @return [Types::SharingStrategy]
15517
+ #
15395
15518
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ResourceRequirement AWS API Documentation
15396
15519
  #
15397
15520
  class ResourceRequirement < Struct.new(
15398
15521
  :value,
15399
- :type)
15522
+ :type,
15523
+ :sharing_strategy)
15400
15524
  SENSITIVE = []
15401
15525
  include Aws::Structure
15402
15526
  end
@@ -17919,6 +18043,33 @@ module Aws::ECS
17919
18043
  include Aws::Structure
17920
18044
  end
17921
18045
 
18046
+ # The strategy that a container uses to share a GPU with other
18047
+ # containers. Specify exactly one member.
18048
+ #
18049
+ # @note SharingStrategy is a union - when making an API calls you must set exactly one of the members.
18050
+ #
18051
+ # @note SharingStrategy is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of SharingStrategy corresponding to the set member.
18052
+ #
18053
+ # @!attribute [rw] nvidia_mps
18054
+ # Shares a GPU between containers by using NVIDIA Multi-Process
18055
+ # Service (MPS). You specify the GPU memory to allocate to the
18056
+ # container and, optionally, the maximum percentage of the GPU's
18057
+ # compute capacity that the container can use.
18058
+ # @return [Types::NvidiaMpsAllocation]
18059
+ #
18060
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SharingStrategy AWS API Documentation
18061
+ #
18062
+ class SharingStrategy < Struct.new(
18063
+ :nvidia_mps,
18064
+ :unknown)
18065
+ SENSITIVE = []
18066
+ include Aws::Structure
18067
+ include Aws::Structure::Union
18068
+
18069
+ class NvidiaMps < SharingStrategy; end
18070
+ class Unknown < SharingStrategy; end
18071
+ end
18072
+
17922
18073
  # <zonbook />
17923
18074
  #
17924
18075
  # <xhtml />
data/lib/aws-sdk-ecs.rb CHANGED
@@ -55,7 +55,7 @@ module Aws::ECS
55
55
  autoload :EndpointProvider, 'aws-sdk-ecs/endpoint_provider'
56
56
  autoload :Endpoints, 'aws-sdk-ecs/endpoints'
57
57
 
58
- GEM_VERSION = '1.250.0'
58
+ GEM_VERSION = '1.252.0'
59
59
 
60
60
  end
61
61
 
data/sig/client.rbs CHANGED
@@ -1506,10 +1506,7 @@ module Aws
1506
1506
  }
1507
1507
  ]?,
1508
1508
  resource_requirements: Array[
1509
- {
1510
- value: ::String,
1511
- type: ("GPU" | "InferenceAccelerator" | "NeuronDevice")
1512
- }
1509
+ Params::resource_requirement
1513
1510
  ]?,
1514
1511
  firelens_configuration: {
1515
1512
  type: ("fluentd" | "fluentbit"),
data/sig/params.rbs CHANGED
@@ -319,6 +319,17 @@ module Aws
319
319
  }?
320
320
  }
321
321
 
322
+ type resource_requirement = {
323
+ value: ::String?,
324
+ type: ("GPU" | "InferenceAccelerator" | "NeuronDevice"),
325
+ sharing_strategy: {
326
+ nvidia_mps: {
327
+ memory: ::Integer,
328
+ max_compute_percent: ::Integer?
329
+ }?
330
+ }?
331
+ }
332
+
322
333
  type task_override = {
323
334
  container_overrides: Array[
324
335
  Params::container_override
@@ -357,10 +368,7 @@ module Aws
357
368
  memory: ::Integer?,
358
369
  memory_reservation: ::Integer?,
359
370
  resource_requirements: Array[
360
- {
361
- value: ::String,
362
- type: ("GPU" | "InferenceAccelerator" | "NeuronDevice")
363
- }
371
+ Params::resource_requirement
364
372
  ]?
365
373
  }
366
374
 
data/sig/types.rbs CHANGED
@@ -241,6 +241,7 @@ module Aws::ECS
241
241
  attr_accessor memory_reservation: ::String
242
242
  attr_accessor gpu_ids: ::Array[::String]
243
243
  attr_accessor neuron_device_ids: ::Array[::String]
244
+ attr_accessor gpu_sharing_strategy: Types::SharingStrategy
244
245
  SENSITIVE: []
245
246
  end
246
247
 
@@ -322,6 +323,7 @@ module Aws::ECS
322
323
  attr_accessor attachments: ::Array[Types::Attachment]
323
324
  attr_accessor tags: ::Array[Types::Tag]
324
325
  attr_accessor health_status: Types::ContainerInstanceHealthStatus
326
+ attr_accessor gpu_devices: ::Array[Types::GpuDevice]
325
327
  SENSITIVE: []
326
328
  end
327
329
 
@@ -1704,6 +1706,15 @@ module Aws::ECS
1704
1706
  SENSITIVE: []
1705
1707
  end
1706
1708
 
1709
+ class GpuDevice
1710
+ attr_accessor gpu_id: ::String
1711
+ attr_accessor sharing_mode: ("IDLE" | "NVIDIA_MPS" | "DEDICATED")
1712
+ attr_accessor total_memory_in_mi_b: ::Integer
1713
+ attr_accessor remaining_memory_in_mi_b: ::Integer
1714
+ attr_accessor container_count: ::Integer
1715
+ SENSITIVE: []
1716
+ end
1717
+
1707
1718
  class HealthCheck
1708
1719
  attr_accessor command: ::Array[::String]
1709
1720
  attr_accessor interval: ::Integer
@@ -2379,6 +2390,12 @@ module Aws::ECS
2379
2390
  SENSITIVE: []
2380
2391
  end
2381
2392
 
2393
+ class NvidiaMpsAllocation
2394
+ attr_accessor memory: ::Integer
2395
+ attr_accessor max_compute_percent: ::Integer
2396
+ SENSITIVE: []
2397
+ end
2398
+
2382
2399
  class PlacementConstraint
2383
2400
  attr_accessor type: ("distinctInstance" | "memberOf")
2384
2401
  attr_accessor expression: ::String
@@ -2576,6 +2593,7 @@ module Aws::ECS
2576
2593
  class ResourceRequirement
2577
2594
  attr_accessor value: ::String
2578
2595
  attr_accessor type: ("GPU" | "InferenceAccelerator" | "NeuronDevice")
2596
+ attr_accessor sharing_strategy: Types::SharingStrategy
2579
2597
  SENSITIVE: []
2580
2598
  end
2581
2599
 
@@ -2945,6 +2963,17 @@ module Aws::ECS
2945
2963
  SENSITIVE: []
2946
2964
  end
2947
2965
 
2966
+ class SharingStrategy
2967
+ attr_accessor nvidia_mps: Types::NvidiaMpsAllocation
2968
+ attr_accessor unknown: untyped
2969
+ SENSITIVE: []
2970
+
2971
+ class NvidiaMps < SharingStrategy
2972
+ end
2973
+ class Unknown < SharingStrategy
2974
+ end
2975
+ end
2976
+
2948
2977
  class StartTaskRequest
2949
2978
  attr_accessor cluster: ::String
2950
2979
  attr_accessor container_instances: ::Array[::String]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-ecs
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.250.0
4
+ version: 1.252.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
@@ -18,7 +18,7 @@ dependencies:
18
18
  version: '3'
19
19
  - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: 3.258.0
21
+ version: 3.260.0
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -28,7 +28,7 @@ dependencies:
28
28
  version: '3'
29
29
  - - ">="
30
30
  - !ruby/object:Gem::Version
31
- version: 3.258.0
31
+ version: 3.260.0
32
32
  - !ruby/object:Gem::Dependency
33
33
  name: aws-sigv4
34
34
  requirement: !ruby/object:Gem::Requirement